Support/ForumRedesignPRD

DRAFT
The content of this page is a work in progress intended for review.

Please help improve the draft!

Ask questions or make suggestions in the discussion
or add your suggestions directly to this page.


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 identify the original poster unless they log in or return via email
    • Email generally isn't good.
  • We don't group threads in any way
  • Lacks a way for a user to get back to their stuff

Priorities

  • 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


Features by priority (question view)

Possible mockup (treat as illustration to help understand the features, not as how this will look at all) P1 Needs to have for launch:

  • Somewhere to say "me too" for users and make the counts visible. -- This will motivate users with the same problem to vote up since that will get that thread answered faster
    • Votes displayed should be for "votes in the most recent X days" and not all-time. But store historical votes.
  • Make it easy to start a new question if the current one doesn't match or find the one that does. Something like a related questions feature with a link to start a new one. -- Populate this by looking for top-voted threads with similar tags.
  • Rich text replies shown chronologically.
  • Let people vote up replies. -- We decided on three options "Yes this helped solve my problem" "Yes, this was helpful but didn't actually solve my problem" "No, this wasn't helpful". We're only going to display the SUM of the first two but moderators will be able to see each stat so we can quickly ID bad solutions etc. -- The three tiers helps us ID contributors who are genuinely trying to help and also find troubleshooting steps that may seem to work in theory but less in practice.
  • The reply that the OP marked as solving his problem should get a special highlight (Yahoo answers has a "This solution chosen by the asker and "top solution chosen by the community")
  • The reply that has the most 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.
  • Use cookies to track the original poster in addition to special links in emails. That way if someone 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.
  • Need to store: thread metadata (OS, tags, plug-ins, user agent, parsed about:troubleshooting if possible (raw if not)) and stats (votes for each thread, total solution votes by thread or contributor) should be easy to get at from the DB.
  • Make sure this is easily expandible for many languages (localizable strings, tracking the language of posts)
  • Email notification system so you can be notified whenever there's activity in threads you're in or threads you're me-too'd on (with different text for both) (P1)
    • Also send an email after you post a new question with "thank you for posting" and setting the right expectations (community forum etc).
    • 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
  • Should be able to add links, formatting, lists etc to solutions and if it needs markup to have a toolbar for it.
  • Ability to upload (and view and moderate) screenshots
  • Ability to edit and delete your post -- if other people have acted on your post (vote up, posted solutions) you should be given a warning.
  • Moderator controls -- delete, edit other people's solutions as well as editing question titles and details
  • Some way to report things (threads, followup questions, solutions) as needing moderation
  • HTTPS support for views that required logging in as well as form submission
  • Support threads should be tag-able.

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.
  • Rich text formatted 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)

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

  • Flag threads for specific contributors
  • Canned strings for common followup questions or solution steps
  • Language autodetection and warn users that they'd get better help if posting in English
  • Full functionality in different locales (contributors can find questions in their language, people can choose a language when posting, possible autotranslate)
  • Ask about computer skill level (novice to expert) and indicate this somehow so users and contributors can talk on the right level.
  • 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.

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

Features by priority (thread listing -- users)

  • 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 of the description
    • Number of me too votes obtained in the last X days (order on this)
    • Author
    • Date of last activity (post)
    • Icons to indicate: if there are "helpful" solutions AND if there is a solution that's marked helpful by the OP.
  • A search/filter box
  • A link to ask a new question
  • Short URL

Features by priority (threadlisting -- contributors)

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

P1:

  • Listing of threads that show:
    • Title
    • First line of the description
    • OS/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 AND if there is a solution that's marked helpful by the OP
    • Tags
    • Number of replies
  • 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
  • UI for moderators to delete/lock/report threads

P2:

  • Filters for show only threads with certain tags -- allow customization

P3:

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

Metrics stuff

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

  • OS
  • Version
  • 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

Registration and emails

Here's how we expect registration to work out.

  1. 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.
  2. 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. Your display name will show and we'll be clear that the email is protected.
  3. You will be sent an email every time someone posts in your thread
  4. 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 ONE email reminder to say "hey you should let us know if we helped!"
  5. You need to be logged in to post to threads, tag threads (and obviously to moderate.)

Ideas and discussion:

  • Look at Get Satisfaction or Stack overflow -- those are systems designed to answer user questions with a community.
  • We want to motivate users to "me too" if their question matches -- we can do that by allowing people to up-vote. Up-voted threads get more attention so if they want a thread started by someone else to get an answer, they should upvote (P1)
  • We want to motivate users to start a new thread when their question doesn't match -- we do this by downplaying comments on the original post. We gear the UI towards followup questions (top section) and possible solutions (bottom section) with no obvious space for adding your question to the mix. (P1)
  • We want to make it easier to find a matching thread if the current one isn't good -- using tags and a "see these related threads" feature. (P1)
  • We want to provide an obvious space to ask followup questions from contributors and keep that distinct from possible solutions (P1)
  • We want to let everyone grade solutions (vote up). What may work for one user (even the OP) may not work for someone else, but feedback from every user with the problem is useful in deciding which solutions are best. (P1)
  • When a solution exists, make sure the user can see right away without having to scroll. (P2)
  • Comments on solutions will allows people to refine steps etc. (P3)
  • We want to track who the OP is with cookies as well as by using keyed links in emails. (P1)
    • Generally make emails better with things like rich text. (P2)
  • We want to let people Tweet or Facebook status solutions they liked with links as a way of giving the helper more recognition and re-enforcing that this is a community effort. (P4)
  • We should add a way to flag threads for other "expert" contributors -- but find a way to make sure that's not abused. (P3)
  • We can improve contributor workflow by letting they see custom "dashboard" views: Top issues (P1), top unanswered issues (P1), threads that they're active in (P2), threads other people have flagged for them (P3), new issues (P2) -- as well as custom views like certain tags (P3) or OSes or Firefox versions (P3).
  • We need to keep metadata accessible and easy to query so we can do things like "top issue by OS" or "top tag by version" (P1)
  • Store data per contributor (for future Karma stuff) (P1)
  • If a user arrives from an article, the OP should display that article URL.
    • P3 if easily possible.
  • Email notification system (P1)
  • Guided AAQ form (P1)
  • Rich text (links, list, bolding etc) editing for posting solutions (P1)
  • Ability to upload screenshots (P1)
  • Ability to browse questions for not-logged in users (not just a dashboard) (P1)
  • Ability to edit and delete your post. (P1)
  • Moderator controls -- delete, edit other people's solutions (P1)
  • Report solutions as needing moderation (P1)
  • Canned strings for solutions/followup questions. (P3)
  • If a KB article is renamed, links in the forum should automatically be updated.

Additional ideas by David (need categorization, motivation, and priority) -- comments added by Cww:

  • Language auto detection (http://code.google.com/apis/ajaxlanguage/)
    • When someone posts in a non-English language, an automatic notification could appear notifying the user that he/she will have a greater chance of getting a response if he/she posts in English -- can't we point instead to the appropriate local forum if we know it?
    • Cool idea! (P3)
    • Ability for contributors to see only questions asked in their own language (P3)
    • Auto-translation of non-mother-tongue questions? E.g. if a contributor speaks English and Swedish, and a forum question is asked in French, auto-translate that French question on the fly and allow the contributor to answer in English or Swedish and auto-translate back to French again. Obviously notify contributor of the process and warn about degradation of language.
      • P3 -- I really want the en forums working and develop a good workflow and figure out bugs before we sell this to locales. However, we SHOULD make sure that the system is expandable in this direction (P1).
  • In the AAQ form, ask for the computer skill level on a scale of 1-x. This can then be used to segment our users ("what's the most common problem for new users of Firefox?") and allow contributors to focus on the type of questions they are most interested in (beginner/advanced).
    • A good idea but as it adds another layer to the workflow, P3.
  • Look at how Aardvark solved the "Was this helpful?" questions for some inspiration; they provide three responses: Yes; Kind of, but not for me; and No. This sends a clear message to users: a post can be helpful even if it's not solving the problem for yourself. (Added this because of our recent discussion where Cheng didn't want an ability to downvote an answer because people will misuse it and think it's a No if the answer doesn't solve the problem. In this case, "Kind of, but not for me" would be the response in those situations.)
    • (P1?) I actually didn't want a downvote because people will whine about perfectly good solutions if it's not the kind of answer they're looking for like "use this extension instead" if they want that feature baked into Firefox or "talk to X third party" I'm not sure how this addresses that but I think it's a good idea anyway. -- P1 because it refines an existing P1.
  • Aardvark also allows commenting on answers, which is another thing we discussed. They present each answer on the same page, and then the comments under each answer. For really long discussions under a particular answer, we could use clever overflow with an expander to load the full discussion in its own page.
    • (P3 -- I think all commenting on solutions should be P3 since the system will function without it and we can judge the need after it is running)
  • Send an e-mail notification immediately when posting a question to thank the user for using the forum and inform about the fact that we're community-based to set the right expectations.
    • (P1)
  • Send an e-mail reminder to the OP after x days of no response after an answer was provided in the posted thread, to encourage the user to confirm whether the problem was solved or not.
    • (P2)
  • Automatically close threads with answers that haven't received a confirmation from the OP after y days. (This is going to be necessary if we want to scale forum support and ensure that contributors focus on the active threads with or without responses.)
    • Alternately: Digg's way of doing this, "this thread has X upvotes in the past 2 weeks" if it ends up having zero, it's going to naturally fall off the radar.
  • Automatically send an e-mail notification after 2-3 days of no answers to give the user a heads up that no one has yet responded to the thread. Inform the user that he/she might have a better chance of getting a response if he/she provides more detailed information.
    • Give the user an opportunity to provide more information about the problem. When this info is provided, the thread should be bumped up as if it was newly created and as such more easily discoverable by the community.
    • I like the motivation behind this idea -- help people get better answers by having them provide more info -- but I think an alternate way of having the same effect that feels less spammy is a combo of two things:
      • 1) Give bonus karma for fixing unanswered threads (This was proposed during the design lunch and is kinda cool)
      • 2) For threads that need more info, suggest that a contributor ask followup questions if they can't provide a solution (you get karma for that too!). Maybe even have some "built-in" followup questions so it's easy for a contributor to get the kind of followup needed specifically for the 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. It doesn't help
  5. Tries the next one. It helps but with a small caveat.
  6. Upvotes that solution so that the next user knows and adds a comment about the caveat.
  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 a solution posted
  4. A follow up question is posted and an email is sent: JoeContrib asked you a follow up question about "Firefox is having problems with the kittens"
  5. User replies to this email with an answer OR clicks on the link and fills out the form. (We should give both options) --- This is going to be somewhat of a problem because if we have rich text email, it's going to be super hard to parse out their reply from all the extra rich text junk. (We don't want to post an email signature with personally identifiable data for example)
  6. A solution is posted. An email is sent notifying the user of the solution. It asks the user to give feedback by clicking a link if it solved the problem (like we do now). This gives them the option to provide feedback as well as the social networking UI.

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.

Contributors who want to help others

  1. Starts the day, checks the to see if any threads are flagged for him.
  2. Then checks the "threads with me" view to see if any "thankyous" were posted or if any comments were left on his solutions or replies were made to his followup questions -- flags a few threads for one of his fellow contributors because he's stuck.
  3. Looks for threads tagged "Facebook" because that's what he's good at answering.
  4. Looks at the top issues by vote to make the biggest impact and earn the most karma

Contributors who want to do something lighter

  1. Has a dashboard of untagged threads
  2. It shows suggested tags but he reads the question and selects better tags and removes bad ones

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.


Neil Lee's ideas: Support:UX_Ideas_2009

Cheng Wang's ideas for threadview: