Support/ForumRedesignPRD: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
 
(43 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{DRAFT}}
==Problems with current system==
==Problems with current system==


Line 9: Line 7:
* Users don't realize that the other contributors are also users and it doesn't build a community.
* 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.
* 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
* We don't identify the original poster unless they log in or return via email
** Email generally isn't good.
* The email notifications are not very good -- hard to read, missing opportunities to set the right expectations
* We don't group threads in any way
* We don't group related threads in any way
* Lacks a way for a user to get back to their stuff


==Priorities==
==Priority descriptions==
* P1 = Must be implemented before launch
* P1 = Must be implemented before launch
* P2 = Should be implemented before launch, or top priority after launch
* P2 = Should be implemented before launch, or top priority after launch
Line 20: Line 18:
* P4 = Nice to have, but not a significant benefit
* P4 = Nice to have, but not a significant benefit


==Ideas:==
==Individual Question View==
* Look at Get Satisfaction or Stack overflow -- those are systems designed to answer user questions with a community.
Mockups:
* 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)
*[https://bug556285.bugzilla.mozilla.org/attachment.cgi?id=441873 Logged out]
* 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)
*[https://bug556285.bugzilla.mozilla.org/attachment.cgi?id=441880 Logged in, administrator]
* 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)
*[https://bug556285.bugzilla.mozilla.org/attachment.cgi?id=441879 Logged in, original poster]
* 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)
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.''
 
==Features by priority (question view)==


''P1'' Needs to have for launch:
''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
* Somewhere to say "me too" for users and make the counts visible.
** Votes should be for "votes in the most recent X days" and not all-time.  
** '''Motivation:''' This will motivate users with the same problem to vote up since that will get that thread answered faster
* 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.
** Only show the "votes in the most recent X days" -- store the full vote count for internal metrics.
* Have an area for asking followup questions -- this is a key part of the troubleshooting process that we can't leave out
** 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.
* Have an area for posting solutions (and keep those two separate)
*** 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.
* Let people vote up solutions. -- 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.
** We need to provide a way to unsubscribe from emails
* Solutions should be displayed in order of vote.
* 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.
* The solution that the OP marked as solving his problem should get a special notification (Yahoo answers has a "This solution chosen by the asker and "top solution chosen by the community")
** '''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.
* 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.
* 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.
* Thread metadata (OS, tags, plug-ins, parsed about:troubleshooting if possible (raw if not)) and stats (votes, total solution votes) should be easy to get at from the DB.
** '''Motivation:''' Minimize the risk of a frustrated user posting comments in a thread he shouldn't be in.
* Data per contributor (number of upvotes of each type, number of followup questions asked, number of solutions proposed) should be stored in a way that can be tracked over time.  (For future Karma system use... but displaying this stuff is not in this scope)
* Rich text replies (WikiMedia markup)
* Make sure this is easily expandible for many languages (localizable strings, tracking the language of posts)
** '''Motivation:''' Enhance readability and allow for pretty links to articles and otherwise.
* 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)
* Replies shown chronologically.
** Also send an email after you post a new question with "thank you for posting" and setting the right expectations (community forum etc).
** '''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.
** 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
* 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.
** 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.
* Ability to upload (and veiw and moderate) screenshots
* 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.
* 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.
** '''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.
* Moderator controls -- delete, edit other people's solutions as well as editing question titles and details
** Computer skill level will be stored per user so that if the user comes back in the future, this question will not be there.
* Some what to report things (threads, followup questions, solutions) as needing moderation
* 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
* Up for debate: Comments on solutions. We'd like to get feedback from the community to see if this is important and how important.
* 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.
''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 solution  
* 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
** '''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 by can wait for future releases
''P3'': Major features/functionality that we'd like to implement but can wait for future releases
* Flag threads for specific contributors
* Flag threads for specific contributors
* Canned strings for common followup questions or solution steps
** '''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
* 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)
* 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.
** '''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.
* 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.
** 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
''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
* 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==
 
* [https://bug556287.bugzilla.mozilla.org/attachment.cgi?id=441156 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==
 
* [https://bug556287.bugzilla.mozilla.org/attachment.cgi?id=441176 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:
 
# 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.
# You will be sent an email every time someone posts in your thread -- there will be a link to turn it off.
# 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
# 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==
==Usecases==
Line 121: Line 208:
# Finds one that matches his problem
# Finds one that matches his problem
# Sees that there are 3 solutions
# Sees that there are 3 solutions
# Tries the best one.  It doesn't help
# Tries the best one according the the community.  It doesn't help
# Tries the next one.  It helps but with a small caveat.
# Tries the next one.
# Upvotes that solution so that the next user knows and adds a comment about the caveat.
# Upvotes that solution so that the next users know.
# Tweets this solution so his friends knows how helpful JoeContributor is.
# Tweets this solution so his friends knows how helpful JoeContributor is.


Line 129: Line 216:
# Searches and finds a thread
# Searches and finds a thread
# Sees no solution
# Sees no solution
# 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
# 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
# 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"''
# A solution is posted.  An email is sent notifying the user of the solution.  # User clicks through to the thread and says it helped.
# 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)
# +1 vote for the post that helped.
# 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'''
'''A user with an uncommon issue'''
Line 139: Line 225:
# Checks the related threads with no success (there's a strong incentive to do this because of the above)
# Checks the related threads with no success (there's a strong incentive to do this because of the above)
# Starts a new thread with the detailed Ask-a-question form.
# Starts a new thread with the detailed Ask-a-question form.
# Gives email address at end.
# Gets email with link to click on to post the thread and saying this is all community help.
# A reply is posted.
# User gets an email.  Clicks through to read it.
# User writes reply to thread.
# Another reply is posted.
# User clicks through and find this helpful, clicks "this helped"
# Thread is marked has having a solution!


'''Contributors who want to help others'''
'''Contributors who want to help others'''
# Starts the day, checks the to see if any threads are flagged for him.
# Looks for threads in the contributor thread listing view -- can choose various filters and various sorting methods or pick by tag
# 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.
# 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.)
# Looks for threads tagged "Facebook" because that's what he's good at answering.
# Clicks through to answer threads.
# Looks at the top issues by vote to make the biggest impact and earn the most karma
 
'''Contributors who want to do something lighter'''
# Has a dashboard of untagged threads
# It shows suggested tags but he reads the question and selects better tags and removes bad ones


'''Metrics gathering'''
'''Metrics gathering'''
# 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.
# 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.
# It's really easy to segment the data -- by version, by OS, etc.
# 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:[[File:Threadview.png|200px|thumb|right]]

Latest revision as of 00:14, 8 June 2010

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.