Support/ForumRedesignPRD

From MozillaWiki
Jump to: navigation, search

Problems with current system

  • Users have a hard time finding others with the same problem so they start lots of redundant threads
  • Users don't realize their problem is different so they hijack other open threads.
  • In a given thread, the only thing that lets other users sort through the possible solutions is if the original poster comes back and marks a post.
  • Solutions are intermingled with more info from the people with problems or people saying "me too"
  • Users don't realize that the other contributors are also users and it doesn't build a community.
  • Contributors don't have easy tools to prioritize which threads need responses or good workflow.
  • We don't have a reliable communication channel with users as most users never get back to the thread they posted.
  • We don't identify the original poster unless they log in or return via email
  • The email notifications are not very good -- hard to read, missing opportunities to set the right expectations
  • We don't group related threads in any way

Priority descriptions

  • P1 = Must be implemented before launch
  • P2 = Should be implemented before launch, or top priority after launch
  • P3 = Significant benefit for users/contributors, but not needed for launch
  • P4 = Nice to have, but not a significant benefit

Individual Question View

Mockups:

P1 Needs to have for launch:

  • Somewhere to say "me too" for users and make the counts visible.
    • Motivation: This will motivate users with the same problem to vote up since that will get that thread answered faster
    • Only show the "votes in the most recent X days" -- store the full vote count for internal metrics.
    • Clicking the "me too" button should increase the number of votes, and pop up a form asking for the user's e-mail address so we can send notifications whenever a reply to the thread is posted.
      • If the problem is already marked as solved by the original poster, we should instead pop up an info box explaining that the question already has a solution and offer a link to that solution. We should also tell the user to post a new question if that solution doesn't help.
    • We need to provide a way to unsubscribe from emails
  • A list of related questions should be visible in close proximity to the OP post -- Populate this by looking for top-voted threads with similar tags.
    • Motivation: Reduce the problem of other users hi-jacking a thread because they think they have the same problem when in fact they have a related problem.
  • Make it easy to start a new question if the current one doesn't match. Something like a link immediately under the related questions feature to ask a new question.
    • Motivation: Minimize the risk of a frustrated user posting comments in a thread he shouldn't be in.
  • Rich text replies (WikiMedia markup)
    • Motivation: Enhance readability and allow for pretty links to articles and otherwise.
  • Replies shown chronologically.
    • Motivation: Chronological order encourages discussions which is an essential part of building forum communities.
  • Let people vote up replies.
    • Motivation: Use crowd-sourcing to identify the best answers to a question so other users have an easy way to find the solution.
    • "Was this helpful?" "Helpful" "Not Helpful"
    • Only display the number of people who found a solution helpful, but moderators will be able to see each stat so we can quickly identify bad solutions.
    • The reply that has the most helpful votes should get a special highlight to make it stand out of the rest.
  • Any replies from the original poster of the question should be also highlighted differently -- e.g. they should use the same background color as the original question at the start of the thread.
    • Motivation: The OP is the one who asked the original question. He should be treated specially because that's the person who actively asked for help.
  • Use a cookie to track the original poster in addition to special links in emails.
    • Motivation: That way if the OP bookmarks a page, he can still act on it as the OP without having to check his email. This will also help reduce voter fraud.
  • The whole forum needs to be easily expandable for many languages in the future (localizable strings, tracking (and storing) the language of posts)
  • Metrics we need to store per user account:
    • Real name (Display name)
    • E-mail address
    • Computer skill level (number of 1-5?)
    • How long they've been using Firefox (possibly stored as date based on a number of radio option choices like "Less then a month", "1 - 6 months", "6 - 24 months", "Over 2 years")
  • Email notification system (see separate section in this PRD) so you can be notified whenever there's activity in threads you're in or threads you've me-too'd (with different, localizeable text templates for all types of responses)
    • Send an email immediately after a question is submitted to confirm e-mail address before publishing question in the forum. Also ability to set the right expectations about us being a volunteer community, and a "thank you for posting". More on this Registration and Emails below.
    • Send email a few days after the first solution is posted to remind them to come back and rate the solution.
  • Guided AAQ form -- we have that now, shouldn't lose it
    • Will ask for a few more details from the user compared to today: computer skill level, and how long the user has been using Firefox. Alternatively, a way to log in to an existing account for returning users asking more questions.
  • Ask about computer skill level (novice to expert) and how long they've used Firefox and indicate this somehow so users and contributors can talk on the right level.
    • Motivation: We need to segment our incoming user questions to get a better understanding of what the most common problems are per type of user (new, novice, experienced, etc). Allow contributors to specialize on what they're interested in.
    • Computer skill level will be stored per user so that if the user comes back in the future, this question will not be there.
  • The compose box (both in AAQ form and when composing a reply) should have ability to add links, formatting, lists etc to solutions and if it needs markup to have a toolbar for it.
    • Use the same markup language as the future wiki for consistency
  • Auto-linkification of URLs in all posts
  • Ability to upload (and view and moderate) screenshots
  • Ability to edit and delete your own posts -- if other people have acted on your post (vote up, posted replies) you should be given a warning.
  • Moderator controls -- delete (move to a Spam forum?), edit other people's solutions as well as editing question titles and details
  • Some way to report a post as needing moderation
    • Moderators should be able to search for (or list) reported posts. (Ideally, their forum "dashboard" would have a section for posts in need of moderation, but this is not a requirement for launch).
    • Everyone should be able to report a thread, including logged out users.
  • HTTPS support for views that require logging in as well as form submission
  • Support threads should be tag-able. For moderators/trusted contributors with the right permission, it should be possible to add/remove tags in close proximity of the OP post in a straightforward Flickr fashion.
    • Motivation: Tags would act as a way to connect relevant threads, and also be searchable, e.g. a search for unanswered forum threads with the tag "crash".
    • Tagging should be a privilege that only trusted contributors get, i.e. a Tiki permission group. The OP shouldn't be able to add/remove tags.
    • Tags apply to threads only, not posts
  • When a user votes "This was helpful" on a solution to the thread, we should increment the me too votes (behind the scenes) if: 1) they aren't the OP and 2) They haven't already said "me too" before (including via this method)
    • Once they've voted me too by any method, we shouldn't count them twice.
  • We should be able to have multiple support forums on the same DB instance (to handle things like mobile-only forums if needed).

P2: We should have these in the initial launch but they can slip to "top priorities after launch" if resources are limiting.

  • Top-of-page Notification of whether a thread has a best solution as well as whether the OP had his question answered.
    • Motivation: Make it easy for other users to find the solution if they have the same problem.
    • Let contributors know that this post is solved.
  • Rich text formatted notificaiton emails
  • Anchors on solutions so they can be directly linked to
  • Avatars for contributors (will help make the whole thing feel more personal and friendly)
  • Feeds of new questions for specific tags
    • Motivation: Some community members (like developers) may want to keep up specific subsets of the questions (like just beta or just mobile).
  • Feeds per question for when new solutions/responses are posted
    • Motivation: For following along to specific questions without email spam.

P3: Major features/functionality that we'd like to implement but can wait for future releases

  • Flag threads for specific contributors
    • Motivation: strengthens the bonds between people in the community. Encourages people to get to know each other.
    • Use case: ContribA sees a question that he knows ContribB is an expert at. They are friends, so he flags the question for ContribB with a simple actions/dropdown UI.
  • Canned strings for common followup questions or solution steps. Should be 1) global canned responses that admins set up, and individual, customizeable responses per contributor.
    • Motivation: Speeds up the process of responding to common questions for contributors.
    • Use case: ContribA sees a question he's been answering before. Instead of typing it up, he selects from a simple actions/dropdown UI a canned string and then submits.
  • Language autodetection and warn users that they'd get better help if posting in English
    • Motivation: In the future, we should be able to auto-translate using Google Translate API so it would be (mostly) transparent which language the user posts in or the contributor answers in. But in the short term, we want to warn those users who are posting in a foreign language since they likely won't get help.
    • Use case: UserA starts to write a question in German. A notification box appears above the compose box warning him that he might not receive an answer if he doesn't write in English.
  • Full functionality in different locales (contributors can find questions in their language, people can choose a language when posting, possible autotranslate)
    • Motivation: There are a lot of locales with no local community support today, e.g. Swedish. SUMO should allow users and contributors to help in their preferred languages, and it should offer the ability to auto-translate back and forth whenever possible.
    • Use case: UserA posts a question in Swedish. ContribA speaks Swedish and English and is able to see the user's question in Swedish and respond to it (in Swedish).
    • Use case: UserA posts a question in Swedish. ContribB only speaks English, but sees UserA's question auto-translated to English and responds to it in English. SUMO auto-translates the answer back to Swedish for the user (but the original answer is kept in English).
  • Send askers an email after Y days if their question is unanswered apologizing that it hasn't gotten attention and suggesting that they provide more details and update their question. If the user posts in the thread again, the thread should "bubble up" again in the thread list's default sort for contributors.
    • Motivation: We want to show our users that we care and haven't forgotten about them. Also, we want to encourage them to ask clear/detailed questions to increase the likeliness of it receiving an answer.


P4: Minor features/functionality for future releases

  • Social network integration. If someone votes that "yes this solved my problem" give them the ability to tweet it. E.g. "I just got helped with a Firefox problem on support.mozilla.com. Try it yourself!"
    • Motivation: Spread the word about our community-powered support and generally spread positive buzz about Firefox.

Thread List View -- User perspective

  • Mockup
  • Shown to: logged out users, people seeking to self-help by looking at existing questions as well as people seeking to ask a question.

Needs:

  • Some kind of listing of threads that show the following for each thread:
    • Title
    • First line (or few words) of the description
    • Number of me too votes obtained in the last X days (order on this)
    • Author
    • Date of last activity (post)
    • Indicate: If there is a solution marked by the OP OR (if not) Number of replies marked helpful OR (if none) Number of replies
  • A search/filter box
  • A button to ask a new question
  • Short URL (we want the same URL as today, right? I.e. support.mozilla.com/%locale%/forum) -- should we call it supportforum rather than forum so we can keep the pretty urls for the regular forums distinct?
    • Short URLs are readable so support.mozilla.com/%locale%/support/firefox/12345 rather than support.mozilla.com/%locale%/support/1/12345

Thread List View -- Contributor perspective

  • Mockup
  • Shown to logged in contributors or people explicitly trying to help others.

P1:

  • Listing of threads that show:
    • Title
    • First line (or few words) of the description
    • OS and Firefox version
    • Number of me too votes obtained in the last X days
    • Author
    • Date of last activity (and person who did this)
    • Icons to indicate: if there are "helpful" solutions OR if there is a solution that's marked helpful by the OP OR if there are replies
    • Tags
    • Indicate if you've contributed in a thread
  • Various default filter/sorts:
    • Unanswered questions vs All questions vs Questions with no solutions marked helpful
    • Sort by number of me-too votes in the last X days vs Date of last activity vs Date of original post
    • Filters on computer expertise or firefox experience level
  • UI for moderators to delete/lock/report threads
  • Views (sort + filters) should be bookmarkable

P2:

  • Filters for show only threads with certain tags
  • You should be able to save views in your profile and easily switch between saved views

P3:

  • Ability to add tags from this view
  • Ability to flag threads for others from this view

Metrics

The following things need to be accessible via queries (actually displaying summary queries is outside scope but a possible future project):

  • OS
  • Version
  • Threads by users with a certain Firefox experience
  • Threads by users with a certain computer expertise
  • Number of me too votes in a given time period for a given thread (and total)
  • Number of "this helped solve my problem" "this was helpful but didn't solve" "this didn't solve" votes per post and per thread and per contributor for a given time period
  • Thread titles, description, troubleshooting info (for full text searches)
    • If we get to a point where the troubleshooting info is parseable, we'd like to be able to break it out in the future
  • Tags
  • User profile data, including user's computer skill (as ranked by user herself when asking her first support question), how long she has been using Firefox, etc.
    • Example: Show only questions posted by new Firefox users running Windows 7 with minor computer skills

Administrators should be able to see the following info :

  • Number of replies per contributor
  • Number of helpful votes per contributor
  • The average number of "Yes", "Yes, but didn't solve my problem", and "No" votes/reply for each contributor -- this would also flow into a future karma system, but the use case here is to identify helpers that are not actually being helpful to users so we can reach out and improve their quality and motivation.

Registration and emails

Here's how we expect registration to work out.

  • You don't need to be registered or logged in to vote for anything (me too, sign up for notifications from threads, or vote up solutions). You also don't need to be logged in to report an offensive post to a moderator.
  • You need to be logged in to post to threads, tag threads (and obviously to moderate.)

The workflow:

  1. When posting a new question, you'll be asked for your email address and a display name at the end of the process. This email will have a random password and a link. Click the link to get your question posted.
    • The question will not show up in the forum until the user verifies his/her e-mail address. This means that a contributor can be sure that there is a working communication path back to the original poster (something which has been a huge problem on the existing forum).
    • It will also set the right set of expectations for the user as it will be an opportunity to mention that we're a volunteer community and that they're using their free time to respond to questions.
  2. You will be sent an email every time someone posts in your thread -- there will be a link to turn it off.
  3. If someone has posted in your thread and you haven't come back to say "this solved" or "this didn't solve" then you'll be given an email reminder after x days encouraging the user to verify whether the question was solved or not. This email will:
    • Increase the response rate on threads
    • Give us an opportunity to ask for CSAT even if no solution was found
  4. If no one has responded to the OP after x days, he will be given an email reminder after x days encouraging him to clarify the question or provide more details. If he responds to that, the forum thread should bubble up in the default contributor sort again. This email will:
    • Increase the chance of a question being responded if the OP really needs an answer (as opposed to having already found the answer himself without letting us know)
    • Allow the OP to tell us if the question is already solved
    • Send a positive signal to the OP that we're being proactive and that we haven't just ignored his question.

Usecases

A user with a common issue

  1. Searches for threads
  2. Finds one that matches his problem
  3. Sees that there are 3 solutions
  4. Tries the best one according the the community. It doesn't help
  5. Tries the next one.
  6. Upvotes that solution so that the next users know.
  7. Tweets this solution so his friends knows how helpful JoeContributor is.

A user with an unsolved common issue

  1. Searches and finds a thread
  2. Sees no solution
  3. Clicks "I have this problem too" and adds his email address so that it'll be more likely that someone notices this problem and so he'll be notified when there's activity in the thread
  4. A solution is posted. An email is sent notifying the user of the solution. # User clicks through to the thread and says it helped.
  5. +1 vote for the post that helped.

A user with an uncommon issue

  1. Searches and finds a similar thread
  2. Wants to post to it saying "I have this BUT it's not quite the same" -- but there's no place to do this.
  3. Checks the related threads with no success (there's a strong incentive to do this because of the above)
  4. Starts a new thread with the detailed Ask-a-question form.
  5. Gives email address at end.
  6. Gets email with link to click on to post the thread and saying this is all community help.
  7. A reply is posted.
  8. User gets an email. Clicks through to read it.
  9. User writes reply to thread.
  10. Another reply is posted.
  11. User clicks through and find this helpful, clicks "this helped"
  12. Thread is marked has having a solution!

Contributors who want to help others

  1. Looks for threads in the contributor thread listing view -- can choose various filters and various sorting methods or pick by tag
  2. Views can be saved and customized (for the first pass, maybe have the last view stored in a cookie and picked or have it just be bookmarkable.)
  3. Clicks through to answer threads.

Metrics gathering

  1. We can track top tags as well as look at the top 20-30 issues by vote to get a really good picture of what the top questions are. Votes provide numeric data.
  2. It's really easy to segment the data -- by version, by OS, etc.