Understand how Gladly routes and prioritizes. To explain this process better, we’ll break down routing into four topics:
Units of Work #
The Routing Engine routes two kinds of Work about a Customer to Agents: Conversations and Tasks.
Keep in mind that open Conversations or Tasks that need to be assigned to an Agent are considered “routable.”
Conversations #
As you know, Customers can only have one Conversation at any given time, regardless of the Channel the Customer used to reach out to you. Because all communications are contained in a single Conversation in the Customer’s Conversation Timeline within their Customer Profile, Gladly can route the Customer’s Conversation and allow only one Agent to be assigned to a Conversation at one time.
Important things to keep in mind:
- Conversations begin and end. (Open > Waiting > Close status).
- Conversations can have multiple Contacts.
When a Conversation begins or ends #
Conversation Start
Conversations begin when: “0”
- A Customer initiates inbound Contact.
- An Agent sends an outbound Contact to a new Customer without previous Conversations in Gladly.
- An Agent sends an outbound Contact to an existing Customer and chooses to start a new Conversation.
Conversation End
Conversations stay open until the Agent or automation (e.g., a Rule) closes them. Typically, Conversations are closed when:
- The Agent feels a Customer’s issue(s) has been addressed.
- The Agent sees that a Customer has become unresponsive, and they will not be able to address the Customer’s issue(s).
- The company policy guides Agents to close Conversations.
- The company sees the message as SPAM (or similar noisy messages) and wants to reduce its impact on metrics by using Conversation Close Rules.
Conversation Re-Open
Closed Conversations cannot be edited, so they are sometimes manually re-opened for some of these reasons:
- To add Topics.
- To add a Note.
- To reassign the Conversation (to an Inbox or to another Agent).
- To send an outbound message to the Customer.
A period after the Conversation is closed can be set as an automatic through the Conversation re-open window. During this window, if the Customer reaches out to the company again, their previous Conversation is opened instead of starting a new Conversation. The latest inbound Contacts that re-open a Conversation will be routed as a new Contact and not necessarily assigned to the previous Agent, except for the Mail assignment configuration option.
This is an acknowledgment that the issue may not be resolved if the Customer is reaching out so soon after a Conversation was closed. Also, it is a way to reduce the number of “Thank you!” replies that create a new Conversation.
Contact Ending
A Contact can end in several ways:
- Closing a Conversation will end the Messaging or Mail Contact.
- Chat Contact can be ended by clicking End.
- Messaging and Mail Contacts can be ended using No Reply Needed action.
- Messaging and Mail Contacts will auto-end after a period of unresponsiveness from the Customer. The default timing for Messaging is 15 minutes unless otherwise specified. The default timing for Mail is 15 minutes.
- The auto-end timing regularly runs, sometimes varying between 0 to ~60 seconds after the configured timing.
- Auto-end message appears in the Customer feed for Agents to see, but only for Messaging Contacts.
- Chat Contact will auto-end after 24 hours of Agent unresponsiveness. This is not configurable at the moment.
Knowing when a Contact is over is more art than science.
- If the Conversation is clearly over, Agents can either click “End,” “No reply needed,” or close the Conversation.
- If the Agent is unsure whether the exchange is over, they can click “Next” to start helping the next Customer. Agents will be notified if the previous Customer responds. Otherwise, the Contact will end without interrupting them.
Conversations with several exchanges of messages #
A Conversation can sometimes span many days and multiple exchanges of messages with the Customer.
For example, a Customer can call on Monday, send an email on Tuesday, and follow up by SMS on Friday. In this example, those exchanges might happen between the Customer and different Agents at the company. While the Conversation is only assigned to one Agent at one time, Conversation can be passed around throughout the week — sort of like passing a baton from one runner to the next.
Tasks #
Similar to Conversations, a Task can only have one Agent assigned to it. There are no limits to the number of Tasks that can be created for a Customer. If a Customer does have many Tasks, those Tasks can be assigned to various Agents without needing to be assigned to the same Agent as the Customer’s Conversation.
Task Routing Window #
Through the Task Window Routing setting, you can set a time period (e.g., two days) so that Tasks are only routed during that period before the due date. For example:
- It’s October 1.
- An Agent wants to create a New Year’s card reminder Task due December 29.
- The company has set the Task Routing Window as two days.
- Therefore, the Task will not appear to be routed until December 27.
- Between October 1 to December 26, the Task is not routable. It becomes routable on December 27.
Routability #
To be “routable” means the Routing Engine tries to find a Conversation or Task to assign to an Agent.
Routable Conversation #
A Conversation is considered “routable” when:
- An inbound Contact that opens a Conversation.
- An inbound message that starts a new Contact in an already open Conversation if no other Contacts are ongoing.
- Note – For ongoing email Contacts (like an email that hasn’t been responded to) assigned to an Agent, and that Customer then chats in, that Conversation will not automatically be re-routed. Some set up Rules using the “New Contact” Condition to make sure that certain kinds of new Contacts make the Conversation routable again.
- Inbound phone calls, even if a Conversation has ongoing Contact and is already assigned.
- The Conversation is unassigned from an Agent.
Below are examples of situations that fit this definition for Conversations as “routable”:
- A Customer calls in.
- A Customer contacts in, and that message starts a new Messaging Contact.
- Subsequent messages in an ongoing Messaging Contact are not routable. Once the first SMS, Chat, etc., message is routed, the subsequent messages sent by the Customer are not routed — instead, they stay with the same Agent.
- A Customer emails in, and that email starts a new mail Contact.
- Similar to Messaging Contacts, subsequent messages in an ongoing mail Contact are not routable. Once the first email message is routed, the subsequent messages sent by the Customer during the open mail Contact are not routed — instead, they stay with the same Agent.
- A Customer emails in, and the ongoing/re-opened Conversation is not assigned to an Agent already. This depends on the mail routing settings.
- A phone Conversation is “cold transferred” (i.e., transferred without a specific Agent assigned) to an Inbox.
- A Messaging or Mail Conversation is reassigned to an Inbox manually (without a specific Agent assigned).
- A Messaging or Mail Conversation is reassigned to an Inbox by Reassignment Rules (without a specific agent assigned).
- A Customer is merged with another Customer who has no agent assigned.
- Conversations not yet routed with an existing Contact could be reassigned to a different Inbox when the Customer reaches out through a new Channel set (Voice, Messaging, Mail) directed to a different Inbox than the Conversation is currently in.
Routable Tasks #
A Task is considered “routable” when:
- A Task is created with no Agent assigned.
- An open Task is reassigned to an Inbox manually (without a specific Agent assigned).
- An open Task is reassigned to an Inbox by Reassignment Rules (without a specific Agent assigned).
Inbox Assignment #
All Conversations and Tasks in Gladly need to be in an Inbox. While they can move between Inboxes, a Customer is only ever in one Inbox at a time, but their Tasks can be in the same Inbox or in other Inboxes.
Once something (like a Conversation or Task) is in an Inbox, it can be reassigned manually.
Conversation #
Conversations are assigned to Inboxes based on the Entry Point. These are configured in the Entry Points setting page.
IVR and Inboxes #
For Customers calling, navigating through the IVR will eventually get to an Exit node where the phone call is sent into an Inbox. Along the way, things like Customer input and Data Dips can help guide the Customer to the proper exit node. For example, a Data Dip can pull information about a Customer’s VIP status and then guide them to an Exit node for VIPs. An Administrator can set up their Channels so that the VIP Exit nodes point to a VIP Inbox.
If a phone number has an IVR, the Administrator will see the phone number (what the Customer initially dials) and the Exit node (the final selection the Customer makes before transferring them to an Agent), which looks like the configuration on the Entry Point below.
Rules #
Inbound communications are first placed in the Inbox specified on the Entry Points setting. After that, the Rules are evaluated, and if the Conversation matches a Rule that specifies a different Inbox, then the Customer will be routed to that new Inbox.
- Note – Rules before routing do not apply to the Voice Channel/phone calls and may route ahead before Rules execute.
When a Conversation matches multiple Rules, the highest priority Rule decides which Inbox the Conversation goes to.
Initial Routing rules #
Rules can be applied to inbound communications on various Channels.
- Assign Inbox Rules moves the Customer to a different Inbox.
- Assign Agent Rules assign a specific Agent. The Conversation is assigned, and the Routing Engine will not look to assign a different Agent at that time.
- Mark No Reply Needed Rules, if applied, will end the Contact and stop the Routing Engine from looking for an Agent to assign. These Rules will not close the Conversation.
- Mark Conversation as Closed Rules, if applied, Closes a Conversation and stops the Routing Engine from looking for an Agent to assign.
Task #
Tasks are assigned to an Inbox upon creation. Tasks in any Inbox are routed to Agents.
Agent Assignment #
Once Work is placed in an Inbox, the Routing Engine will look to assign it to an Agent in that Inbox. The Routing Engine is looking for the right Agent to match with the Customer.
To find the right Customer, it will look to:
- Prioritization (of Conversations and/or Tasks)
To find the right Agent, it will look to:
- Channel Availability
- Capacity/Workload
- Agent Ordering (if many Agents could help the same Customer)
- Prioritization (through People Match)
Once a pair is established, that’s not guaranteed that they will become the assignee who helps that Customer. Remember that sometimes, Agents must accept the offered Contact before it is assigned.
Assignment exceptions #
There are two exceptions to the Agent Assignment model:
- Dedicated Hero is an exception to the Agent Assignment.
- Another exception is for email, depending on the mail routing setting.
- When a Conversation is open (or re-opened), and an Agent is already assigned, when the Customer sends a new email, it will be immediately assigned to the same Agent. It will be placed in their My Customer list as an “unread email.” This assignment will happen regardless of whether the Agent is busy with other Customers or even logged out of Gladly. Review the mail routing setting to learn more.
And remember that Contacts are somewhat of an “exception” here because inbound messages in an ongoing Contact don’t cause that Customer to be re-routed.
Reassignment #
If the Agent is assigned but does not help the Customer in a timely fashion, their Work can be unassigned, making the Work routable to another Agent. This can happen manually, but more often than not will happen through automated Reassignment Rules.
Prioritization #
Customers are prioritized based on a Channel tier:
- Voice: phone calls
- Messaging: chat, SMS, FB Messenger, etc.
- Mail and Tasks: email, voicemail, and Tasks
These categories correspond with the Availability Controls.
Let’s look at an example where Voice is prioritized.
Transfers and Priority #
Within those Channels, transferred phone calls are prioritized because Customers who are “cold transferred” have already waited to be helped the first time and shouldn’t have to wait back at the end of the line just because the first Agent couldn’t help them.
The priority of transfers for Messaging and Mail Channels is controlled through People Match, though the default setup is configured to prioritize Transfers. Transferred Conversations in this context refer to Conversations that have been assigned to an Agent already, then moved to an Inbox without a specific Agent assigned. This applies to Reassignment Rules (for messaging) as well.
Unread Work and Priority #
In the case of Mail and Tasks, when the Agent clicks Next for more Work, they’ll first be reminded of any unread mail or Tasks that are already assigned to them in their My Customers list. This includes any email replies that were immediately assigned to them, as well as any unread emails or Tasks that were assigned to the Agent by other Gladly users.
If the Agent has read all the Mail and Tasks in their My Customers list, then they will be given new Mail or tasks when clicking Next (as long as there is new Work to be assigned).
People Match and Priority #
People Match still respects the Prioritization tier described above. In addition:
- In the Messaging Channel, People Match is used to prioritize Customers with messaging Contacts. If the top Contacts have the same total boost score, or if no Contacts have a score, then the Due Date is used to determine priority.
- In the Email, Task, Voicemail Channel, due dates are used to determine first whether to assign a Task or Mail item. For example, if the oldest email is overdue by 24 hours, and the oldest Task is overdue by 2 hours, an email will be routed. However, the email that is routed is not necessarily the most overdue email.
- For Mail, People Match is used to prioritize Customers. Similar to messaging Contacts, the due date is used as a tiebreaker between Customers with the same total boost score or if no Customers have a score.
- For Tasks, the due date is used to prioritize Tasks.
Due Dates and Priority #
As mentioned above, the due date can be set for Tasks and is calculated for Conversations. If there is only one piece of Work that requires routing, then the decision of priority is easy. Otherwise, People Match and/or due dates are used to compare routable Work. Due dates are measured down the millisecond, so there’s normally no ambiguity about which Work to prioritize.
The diagram below describes how due dates are compared across Customer communications within a Channel when the People Match scores are the same.
Remember, the Routing Engine is looking for the earliest due date.
Channel Availability #
Agents in Gladly can have one of three main statuses:
- Logged Out
- Away
- Logged In
With the exceptions of Mail replies, Dedicated Hero, Mail, ongoing Contacts, manual assignment, and Rules-based assignment, statuses 1 & 2 (Logged Out and Away) automatically disqualify the Agent from getting routed new Work.
When Agents are logged in (status 3), they will need to be available for a Channel set in order to be routed Work by the Routing Engine. Keep in mind that this is for automatic assignment of Work, so Agents can be manually assigned Work even if they aren’t available for a Channel.
Type of Work Agents can receive #
Channel Availability is not a guarantee of getting Work, however. The first reason is that there may not be Work to distribute. The second reason is that working on Conversations in some Channels will preclude the Agent from getting routed new Work in other Channels (even if the Agent has their Availability set to green). Specifically, those interactions are:
- Messaging
- Agents can continue to receive messages until they reach the Standard Messaging Capacity per Agent. Once an Agent hits the standard capacity, they must click Next to route new messaging Contacts until they reach the Maximum Messaging Capacity. If the Agent is at the maximum capacity for Messaging, or there aren’t any messages left, they’ll be routed Mail & Tasks*.
- *Note – The above occurs only if the Agent is available for Mail & Tasks and Messaging Channels. If an Agent is unavailable for the Mail & Tasks Channel, they will not be routed to Mail or Tasks.
- Agents can continue to receive messages until they reach the Standard Messaging Capacity per Agent. Once an Agent hits the standard capacity, they must click Next to route new messaging Contacts until they reach the Maximum Messaging Capacity. If the Agent is at the maximum capacity for Messaging, or there aren’t any messages left, they’ll be routed Mail & Tasks*.
- Voice
- If they are on an active call, they won’t be routed any new messaging Contacts from different Customers unless the inbound message is from the same Customer.
- They won’t be routed any new Mail from different Customers or Tasks.
- Mail & Tasks
- They can be routed a phone call from internal routing activities (e.g., warm transfer, manual assignment, joining a conference call) but not from the Routing Engine (i.e., Customers calling in waiting for assistance).
- They can be routed new messaging Contacts.
Note that while Agents aren’t able to change their Availability while on a phone call.
Capacity/Workload #
Capacity is the number Work an Agent can take on at one time.
For Voice, an Agent can only be pushed one call at a time.
For Messaging, the Routing Engine will try to push Work up to the Agent’s general threshold. Once there, the Agent will need to request/pull additional messaging Work by clicking Next. Remember that active Contacts count towards the Agent’s messaging capacity, so new Work will not be pushed until a Contact is ended.
For Mail and Tasks, the Agent’s capacity is not currently limited. However, it’s important to note that Agents will be pushed one piece of Work when they set their Availability to green, provided that there is Work to be distributed.
After that, the Agent must click Next to get new Mail or Tasks. Two exceptions:
- If the Agent is available for Mail & Tasks, and there is no new Work to distribute, and the Agent clicks Next but doesn’t receive any Work; when new Mail or Tasks come in, the Agent will be pushed that Work (without having to request it) if the Routing Engine selects them.
Regarding routing capacity, the Routing Engine will count a cross-Channel Conversation (one in which the Customer is using multiple Channels to communicate) as one Conversation. The “heaviest” Channel (Voice > Messaging > Mail & Tasks) will be counted so that:
- A Conversation via voice and messaging is counted as Voice.
- A Conversation via email and messaging is counted as Messaging.
When we talk about an Agent’s capacity, we’re talking about what the Routing Engine will assign to an Agent. Agents can still be manually assigned Work (by themselves or others) that will make them go beyond their configured capacity.
Joining or participating in Work that is assigned to other Agents counts towards the Agent’s capacity.
Agent routing prioritization when many Agents are eligible #
When many Agents are eligible to be routed a Conversation or Task, the Routing Engine will use a round-robin approach. The Agent available the longest and not at capacity for a certain Channel is routed the Conversation or Task.
In the case of Voice, if the previously assigned Agent is among those Agents who are eligible, then they will be routed the phone call.
Assignment Scenarios #
Once the Routing Engine finds an Agent to assign, it’s not always guaranteed that the Agent will be assigned to that Work. The way Work gets assigned varies by Channel and, in some cases, can be changed by certain settings.
Voice
- For Gladly Voice, Agents are offered the call, and they can choose to accept or decline the call. They can also “miss” the call by not accepting or declining within a configurable window (a configuration handled by Gladly). If they decline or miss it, the call is offered to the next available Agent.
- For some Customers’ Voice setups, Agents do not have the choice to accept or decline and are instead automatically assigned.
Messaging
- Administrators can choose between two options:
- Option 1 is to show the Accept/Decline banner. This will work much like Voice, where Agents can choose to accept or decline the message. They can also “miss” the message by not accepting or declining within a configurable window (a configuration handled by Gladly). If they decline or miss it, the message is offered to the next available Agent. Administrators can choose to hide the message preview if they feel that Agents will cherry-pick Work by reading the preview text before choosing to accept or decline.
- Option 2 is to assign messaging Conversations directly. If the Administrators toggle the Accept/Decline banner off, then the Agents will be automatically assigned as soon as the Routing Engine pairs them with a Customer.
Mail and Tasks
- Agents do not have the ability to accept or decline these. As soon as the Routing Engine finds Work for the Agent, they will be assigned.
When directly transferring Messaging or Voice Contacts to a specific Agent, the receiving Agent may have the ability to accept or decline (depending on the settings). If the receiving Agent chooses to decline the message or call, the sending Agent will remain assigned.
Reassignment #
Sometimes, after Work has been assigned to an Agent, it needs to be reassigned. Manual transfer of Work from one Agent to another will bypass the Routing Engine — in this case, the assigning Agent performs the act of routing.
When Work is reassigned to an Inbox (when the current Agent is “unassigned”), either manually or automatically, this begins the routing process again. The Routing Engine will begin looking for an Agent to assign.