Support/Live Chat/Requirements: Difference between revisions

Jump to navigation Jump to search
no edit summary
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 should join a multiuser chat.  Other agents may join this chat if they are invited or have "room monitor" access.
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'''
*Set his/her status to available or away (optional, may be dropped)
*'''Set his/her maximum number of chats (chat limit) (default: 2)'''
*Set his/her maximum number of chats (optional, may be dropped)
*'''See questions in the queue, ideally on a chat dashboard'''
*'''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.'''
*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 chats at a time without the UI misbehaving.'''
*'''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 by the sum of all agents' chat limit'''
*'''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 (P3 requirement)
*'''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.'''
*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


==Room monitoring==
==Permissions==
'''Trusted helpers in the Room Monitors group must be able to click any current chat from the chat dashboard (or other location where current chat sessions are listed) and monitor or join the chat.  When monitoring, neither the agent nor the user should see the monitor's presence.
===Unregistered users===
*'''Ask a question'''
*'''See number of helpers online, number of users waiting, and the estimated wait time (via dashboard)'''


These trusted users must also be able to open/close the chat queue.  If the P3 feature for sending messages to everyone in the queue is implemented, these users should have access to do so.'''
===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)


==Administration==
===Administrators===
Administrators should be able to
*'''Assign people to room monitors and live chat helpers groups'''
*'''Edit canned responses'''
*'''Edit canned responses'''
*Edit templates used on the chat landing page and waiting in queue page
*Edit templates used on /chat/ and in the queue waiting page
*Set agents' chat limits
*Set agents' chat limits (may be dropped)
*'''Have all Room Monitor permissions'''
*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)
** needs spec on which metrics to store -- this implies that a metrics data warehouse/backend is a P1, too? -djst
 
==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.
canmove, Confirmed users
382

edits

Navigation menu