canmove, Confirmed users
382
edits
No edit summary |
|||
Line 34: | Line 34: | ||
===Chatting with an agent=== | ===Chatting with an agent=== | ||
When the user's chat is accepted by an agent, both the user and the agent | When the user's chat is accepted by an agent, both the user and the agent should join a multiuser chat. Other agents may join this chat if they are invited or have "room monitor" access. | ||
*'''Both sides must be able to type messages to each other''' | *'''Both sides must be able to type messages to each other''' | ||
*Both sides should see when the other is typing (P2 requirement) | *Both sides should see when the other is typing (P2 requirement) | ||
Line 59: | Line 59: | ||
===Before accepting chats=== | ===Before accepting chats=== | ||
* | *Set his/her status to available or away (optional, may be dropped) | ||
* | *Set his/her maximum number of chats (optional, may be dropped) | ||
*'''See questions in the queue, ideally on | *'''See questions in the queue, ideally on the chat dashboard''' | ||
*'''Get notifications upon chat offers, invitations, and messages''' | *'''Get notifications upon chat offers, invitations, and messages''' | ||
===Upon receiving a chat offer=== | ===Upon receiving a chat offer=== | ||
* | *Receive a notification that a chat is being offered, showing the question details and time remaining to accept. (optional, may be dropped) | ||
*'''Automatically join a multiuser chat room when accepting a chat.''' | *'''Automatically join a multiuser chat room when accepting a chat.''' | ||
Line 76: | Line 76: | ||
===Other=== | ===Other=== | ||
*'''Handle up to 50 | *'''Handle use cases of different numbers of chats. (Most helpers will have ~5 open, room monitors may have up to 50 open)''' | ||
** why exactly 50? it seems like a really big number if this is per agent. needs clarification on what kind of UI misbehaving we want to avoid -djst | ** why exactly 50? it seems like a really big number if this is per agent. needs clarification on what kind of UI misbehaving we want to avoid -djst | ||
*** Matthew's record for most chats at one time in Spark is 50, so this seems like an upper bound. | |||
*See notifications showing which chats need attention. (eg. chat tabs should appear red if they have an unread response and blink red if gone unanswered for X seconds) (P2 requirement) | *See notifications showing which chats need attention. (eg. chat tabs should appear red if they have an unread response and blink red if gone unanswered for X seconds) (P2 requirement) | ||
*Be able to communicate with other helpers via a contributors conference (eg. integrate #sumo) and/or by private instant message (P2 requirement) | *Be able to communicate with other helpers via a contributors conference (eg. integrate #sumo) and/or by private instant message (P2 requirement) | ||
Line 84: | Line 85: | ||
==Chat queue== | ==Chat queue== | ||
'''All questions that make it through the chat ask-a-question process must be added to a queue, so we can answer older ones first.''' | '''All questions that make it through the chat ask-a-question process must be added to a queue, so we can answer older ones first.''' | ||
*'''The maximum number that can be in the queue is set | *'''The maximum number that can be in the queue is set to a configurable multiplier times the number of active agents''' | ||
*The entire queue should be displayed on the chat dashboard | *'''The entire queue should be displayed on the chat dashboard''' | ||
*Offers from the top of the queue should be offered to available agents with chats below their limit. The agent must have an exclusive period of time (20-30sec) during the offer where only he/she can take that chat. (optional, may be dropped entirely) | |||
*'''Questions in the queue for more than X minutes should time out, and the user should be informed that we regrettably couldn't chat with them.''' | *'''Questions in the queue for more than X minutes should time out, and the user should be informed that we regrettably couldn't chat with them.''' | ||
**Note: messaging on /chat/ should set user expectations appropriately | |||
== | ==Permissions== | ||
''' | ===Unregistered users=== | ||
*'''Ask a question''' | |||
*'''See number of helpers online, number of users waiting, and the estimated wait time (via dashboard)''' | |||
===Logged in users=== | |||
*'''See the chat dashboard''' | |||
*"Knock" (request to join) on a question being answered (P3) | |||
*'''If invited to a chat session, see the full history and question details of that session''' | |||
*Join #sumo via the Live Chat interface (P2) | |||
===Live Chat helpers group=== | |||
*'''Pick any question from the queue to answer''' | |||
*'''Invite any registered user to any chat session''' | |||
*Private message other online contributors (P3) | |||
*Apply tags to chats (P2) | |||
===Room monitors=== | |||
*'''Watch any chat without the user or agent knowing''' | |||
*'''Join any chat''' | |||
*'''Talk in any chat''' | |||
*'''Kick the agent out of any chat, to handle abuse''' | |||
*'''Open and close the chat queue''' | |||
*'''Temporarily prevent an agent from accepting more chats''' (currently controlled via chat limit, but we'll need a new method) | |||
== | ===Administrators=== | ||
*'''Assign people to room monitors and live chat helpers groups''' | |||
*'''Edit canned responses''' | *'''Edit canned responses''' | ||
*Edit templates used on | *Edit templates used on /chat/ and in the queue waiting page | ||
*Set agents' chat limits | *Set agents' chat limits (may be dropped) | ||
*See chat metrics and be able to search the chat logs (P5 requirement) | *See chat metrics and be able to search the chat logs (P5 requirement) | ||
==Metrics== | |||
We must store data for collecting metrics, but a frontend for the metrics isn't part of our requirements | |||
'''Questions we ''must'' be able to answer''' | |||
# How many chats did we solve in a given week? | |||
# Given a range of chats, what percentage were successful? | |||
# Of the people entering the queue, what percentage did we answer at all? | |||
# What was the median wait time in the queue? | |||
# Which tags and tag groups were most common in a time range? (if we have tag support) | |||
# Which chat helpers helped the most users? | |||
# Which chat helpers were most/least successful according to post-chat surveys? | |||
'''Chat session database record in DB''' (created when the question is created, regardless of whether it gets an answer) | |||
*Unique ID (key) | |||
*Question fields (title, OS, version, etc) | |||
*Tags | |||
*Transcript | |||
*ID's of all participating helpers | |||
*Date/time | |||
*Wait time in the queue | |||
*Was the chat answered by an agent (yes/no)? | |||
'''Survey result in DB''' | |||
*Chat's unique ID (key) | |||
*Helper username | |||
*Customizable question/answer pairs. | |||
**Was the problem solved? | |||
***If yes, rate your experience from 1-5. | |||
***If no, tell us why. | |||
***If there was no Firefox problem to begin with, abort survey. |