Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NEW][Enterprise] Omnichannel On-Hold Queue #20945

Merged
merged 42 commits into from
Mar 22, 2021
Merged

Conversation

murtaza98
Copy link
Contributor

@murtaza98 murtaza98 commented Mar 1, 2021

Proposed changes (including videos or screenshots)

About this feature

This feature has been introduced to deal with Inactive chats. A chat is considered Inactive if an Omnichannel End User (aka Visitor) has not replied back to an agent in some time. These types of inactive chats become very important when an organisation has a limit set for Max Simultaneous Chats per agent which is defined by the following setting 👇 , as more number of Inactive chats would directly affect an agent's productivity.
image

Before this feature, we only had one option to deal with such Inactive/Abandoned chats - which was to auto close abandoned chats via this setting 👇
image

however closing a chat isn't a best option for some cases. Let me take an example to explain a scenario

An agent is assisting a customer for installing a very huge software which is likely to take more than 20-30 minutes to download. In such scenarios closing a chat isn't the best approach since even after the lengthy download the customer might still need some assist from the agent.
So basically this chat is going to block the agent's queue until the customer is able to finish his time-consuming download task in which he/she doesn't require any agent's assistance. Due to the Max Simultaneous Chats per agent limit, the agent is also not able to use this extra time to help other customer thus affecting his overall productivity.

So how does the On-Hold feature solve this problem?
With the On-Hold feature, an agent is now able to place a chat on-hold. On-Hold chats don’t count towards the maximum number of concurrent chats an agent can have. So in our above example, the agent can simply now place the customer on-hold for 20-30 minutes until the customer downloads the software and within this time, the agent can serve other customers - hence increasing the productivity of an agent.


Working of the new On-Hold feature

How can you place a chat on Hold ?

A chat can be placed on-hold via 2 means

  1. Automatically place Abandoned chats On-hold
    image
    Via this 🔝 option you can define a timer which will get started when a customer sends a message. If we don't receive any message from the customer within this timer, the timer will get expired and the chat will be considered as Abandoned.
    image
    The via this 🔝 setting you can choose to automatically place this abandoned chat On Hold
  2. Manually place a chat On Hold
    As an admin, you can allow an agent to manually place a chat on-hold. To do so, you'll need to turn on this 👇 setting
    image
    Now an agent will be able to see a new On Hold button within their Visitor Info Panel like this 👇 , provided the agent has sent the last message
    image

How can you resume a On Hold chat ?

An On Hold chat can be resumed via 2 means

  1. If the Customer sends a message
    If the Customer / Omnichannel End User sends a message to the On Hold chat, the On Hold chat will get automatically resumed.
  2. Manually by agent
    An Agent can manually resume the On Hold chat via clicking the Resume button in the bottom of a chat room.
    image

What would happen if the agent already reached maximum chats, and a On-Hold chat gets resumed ?

Based on how the chat was resumed, there are multiple cases are each case is dealt differently

  • If an agent manually tries to resume the On Hold chat, he/she will get an error saying Maximum Simultaneous chat limit reached
  • If a customer replies back on an On Hold chat and the last serving agent has reached maximum capacity, then this customer will be placed on the queue again from where based on the Routing Algorithm selected, the chat will get transferred to any available agent

Issue(s)

Steps to test or reproduce

Further comments

@murtaza98 murtaza98 marked this pull request as draft March 1, 2021 10:05
- Start manual On-Hold timer after agent reply
- Stop manual On-Hold timer on visitor message
- Show manual On-Hold Option when timer expires
@renatobecker renatobecker added this to the 3.13.0 milestone Mar 15, 2021
Copy link
Contributor

@renatobecker renatobecker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The first part of my review.

app/authorization/server/startup.js Outdated Show resolved Hide resolved
app/authorization/server/startup.js Outdated Show resolved Hide resolved
app/livechat/client/views/app/livechatOnHold.js Outdated Show resolved Hide resolved
app/livechat/client/views/app/livechatOnHold.js Outdated Show resolved Hide resolved
app/livechat/client/views/app/livechatOnHold.js Outdated Show resolved Hide resolved
ee/app/livechat-enterprise/server/hooks/afterOnHold.ts Outdated Show resolved Hide resolved
ee/app/livechat-enterprise/server/hooks/afterOnHold.ts Outdated Show resolved Hide resolved
ee/app/livechat-enterprise/server/hooks/afterOnHold.ts Outdated Show resolved Hide resolved
@renatobecker renatobecker changed the title [NEW][Omnichannel] On-Hold Feature [NEW][Omnichannel On-Hold Queue Mar 15, 2021
@renatobecker renatobecker changed the title [NEW][Omnichannel On-Hold Queue [NEW][Enterprise] Omnichannel On-Hold Queue Mar 15, 2021
@murtaza98 murtaza98 marked this pull request as ready for review March 16, 2021 11:14
@renatobecker
Copy link
Contributor

@murtaza98 are you planning to describe how this feature works?
There is no detail or additional information that can be useful for users who wants to know a bit more about this feature.

app/livechat/client/views/app/livechatOnHold.html Outdated Show resolved Hide resolved
app/livechat/server/lib/QueueManager.js Show resolved Hide resolved
app/ui-message/client/messageBox/messageBox.js Outdated Show resolved Hide resolved
client/sidebar/hooks/useRoomList.ts Show resolved Hide resolved
definition/IRoom.ts Outdated Show resolved Hide resolved
ee/app/livechat-enterprise/server/hooks/afterOnHold.ts Outdated Show resolved Hide resolved
ee/app/livechat-enterprise/server/lib/Helper.js Outdated Show resolved Hide resolved
server/modules/watchers/publishFields.ts Outdated Show resolved Hide resolved
ee/app/livechat-enterprise/server/settings.js Show resolved Hide resolved
definition/IRoom.ts Outdated Show resolved Hide resolved
app/ui-message/client/messageBox/messageBox.js Outdated Show resolved Hide resolved
ee/app/livechat-enterprise/server/api/on-hold.js Outdated Show resolved Hide resolved
ee/app/livechat-enterprise/server/api/on-hold.js Outdated Show resolved Hide resolved
ee/app/livechat-enterprise/server/api/on-hold.js Outdated Show resolved Hide resolved
packages/rocketchat-i18n/i18n/en.i18n.json Outdated Show resolved Hide resolved
packages/rocketchat-i18n/i18n/en.i18n.json Outdated Show resolved Hide resolved
packages/rocketchat-i18n/i18n/en.i18n.json Outdated Show resolved Hide resolved
packages/rocketchat-i18n/i18n/en.i18n.json Outdated Show resolved Hide resolved
server/startup/migrations/v219.js Show resolved Hide resolved
- From now on, the On-Hold option will appear within visitor Info panel, provided the agent has sent the last message
renatobecker
renatobecker previously approved these changes Mar 20, 2021
@renatobecker
Copy link
Contributor

The PR is approved and ready to be merged.
I wasn't able to merge it due to tests that didn't pass, but those errors weren't caused by this implementation.

…events

- Returning chat to the queue
- Forwarding chats
- Closing chats
renatobecker
renatobecker previously approved these changes Mar 22, 2021
@renatobecker renatobecker merged commit 297dc06 into develop Mar 22, 2021
@renatobecker renatobecker deleted the omnichannel/on-hold branch March 22, 2021 22:10
@sampaiodiego sampaiodiego mentioned this pull request Apr 3, 2021
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants