
- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
on 08-25-2021 01:55 AM
Overview
The use case in subject is about replacing an entire Live Agent Support where the end user had to select a language from a checklist field, then click a “Connect” button to know whether the selected language was available or not based on a working hour schedule. Since a language represents a queue, there was no way to know whether the queue was open or not until the end user was trying to connect. Sometimes, the end user had to try their native language and then try to connect to any other languages (usually the English queue was second attempt).
After understanding better what we must improve, we decided to implement a new approach by using Virtual Agent and Advanced Work Assignment functionalities where we created a Custom Live Agent Support topic on the Virtual Agent module and with AWA we implemented 1 Service Channel and 7 Queues (one per language) which are going to be dynamically displayed beforehand in the Chatbot based on the Schedule set for each Queue. Therefore, the end user will only see the current open queues to receive support from specialised agents.
High-level design
Based on the High-Level design, this is going to be the approach:
- Create a Service Channel and define the default capacity for all the Queues. NOTE: In the Agent Capacity Override related list, it is possible to override the default capacity for 1 or multiple agents. This action ensure that the more experienced agents can receive more chats simultaneously than the value set in the Default Capacity field or the other way around, new agents can receive less chats.
- For this use case, 7 queues are needed to receive chats in different languages (ITSM English, ITSM Spanish and so on).
- Create an Assignment Rule from the Advanced Work Assignment > Assignment Rules sub-module
- For each Queue, create an Assignment Eligibility to associate the Support Group with the Assignment Rule and the Queue itself. All the queues are using the same Agent Assignment Rule but only one Support Group per queue. NOTE: I would not recommend to use the same Support Group for more than one queue.
- Create a Custom Live Agent Topic by duplicating the read-only Live Agent Support topic.
Create Service Channel
Create Queue
The same configuration applies for the other 6 queues and do not forget to add their corresponding Schedule
Create Assignment Rule
Create Assignment Eligibility
Custom Live Agent Support Topic
Now, let’s break down this topic into pieces!!
In the Reference Choice User Input “Search Queues”, the following actions were developed:
- Verify that the Queues are active and order by the “Order” field so that they can be displayed in the right order in the chatbot. First the English Queue and alphabetically the rest of the queues.
- Query the schedule related to the Queue to validate which Queues are within the schedule (isInSchedule function).
- Push the list of available Queues to display them in the chatbot + a cancel button in case the end user does not want to proceed with the activity.
NOTE: This is a scalable piece of code, therefore, you should not change the logic of it when creating new Queues
The Decision Utility marks the decision done by the end user to proceed contacting the live Agent or cancel the topic.
For the “Selected Queue” path:
- Capture the option selected by the end user by using the vaInputs.search_queues.getValue(),
- Capture the name of the selected queue by using the vaVars.Queuename = gr.getValue('name’);
For the “Cancel” path:
- The Conversation flow goes through this path only if the end user selects the “Cancel” option and the conversation ends.
The Action Script Utility “Dynamically Set Queue” assign the name of the queue selected by the end user to the LiveAgent_queue Virtual Agent context variable and then trigger the vaSystem.connectToAgent() to route the chat to the right support group.
This liveAgent_queue VA context variable can be found in the Chat Setup module > Context Related list and it is used to store chat related information and control how chats are routed to live agents. Therefore, the queue selected by the end user is routed to the right ITSM Queue defined in the Advanced Work Assignment > Queues and each queue has a condition builder pointing to the Context.Queue variable.
Example:
For ITSM English Queue > Condition builder = context.portal is ITSM English.
For ITSM Arabic Queue > Condition builder = context.portal is ITSM Arabic.
Once, the topic is ready, make sure to do the following configurations:
- Save the topic and publish it.
- Do not forget to set this new Live Agent support topic as a Setup topic in the General Settings module, Live Agent topic field.
- In the AWA > Presence States, add the Support group to the existing presence states (Available, Away, Offline) in the Apply to Groups field.
Test my solution
- In one browser, impersonate an end user
- In a different browser, impersonate an agent who is part of a support group, open the Agent Workspace, and make the agent available from the Inbox module
- As an end user, go to the Service Portal, open the Chatbot and when you initiate the new Live Agent Support topic you will be able to see and select only the open queues based on the schedule defines for each queue.
- As an agent, ONLY if he/she is part of the Queue support group, he/she is supposed to get a chat notification as follow:
In the example below, one of the Queue is out of schedule, therefore, the Chatbot displays only 6 Queues. Also, the Agent belongs to the English Queue and in the first attempt, a different queue was selected and the chatbot prompts the message "There are no agents available at the moment, please try later" and in the second attempt, the chat is routed correctly to the agent.
My main goal of this implementation was to create a scalable and easy to maintain Live Agent Solution, where you can create as many queues as your business needs with ServiceNow OOTB functionalities and the custom Live Agent Support topic logic will be able to work with upcoming queues without editing a piece of code.
As the result, you will have a Live Agent Support topic with dynamic queues and ready to support your end users with IT technical issues.
In ServiceNow World this might be only one way to go. So, if you have had a similar Use Case, do not hesitate to share it. 🙂
- 3,658 Views