Omnichannel routing assigns new and open tickets from email (including web form, side conversations, and API), calls, and messaging directly to agents based on agent availability and capacity and, on some plans, can be configured to also factor in service level agreement (SLA) targets, ticket priority, and skills.
The standard omnichannel routing configuration directs all eligible tickets into a single queue, assigning work to agents based on the ticket's assigned group. If a single queue is insufficient for your use case, you can create additional custom omnichannel routing queues. You must have the Agent Workspace to use omnichannel routing.
Essential facts about omnichannel routing queues
- The omnichannel routing configuration settings apply to all of your queues.
- When a new ticket is created, ticket triggers fire first. Then omnichannel routing immediately attempts to assign it to an agent. If no agent is available to take it, the ticket is added to the appropriate queue.
- There are two types of queues in omnichannel routing:
- Standard omnichannel routing queue: This is the default queue used by omnichannel routing when you turn on omnichannel routing and haven't created custom queues or when tickets don't meet the conditions of your custom queues but are otherwise eligible to be routed by omnichannel routing. Sometimes this is referred to as group-based omnichannel routing because tickets routed through the standard queue go to agents in the group specified in the ticket's group field. The standard queue isn't listed on the Queues page in Admin Center.
- Custom omnichannel routing queues: These are custom queues defined by admins. When using custom queues, tickets are inserted into the first queue they match the conditions for. Custom queues can route tickets to multiple primary and secondary groups. If a ticket is routed through a custom queue, omnichannel routing ignores the ticket's group field and uses the queue's primary and secondary groups.
- The auto-routing tag isn't used by custom queues. Regardless of the presence of the auto-routing tag, all email tickets, messaging conversations, and calls are automatically evaluated for matches to custom queues. However, email tickets that don't match any custom queues must have the auto-routing tag if you want them to be routed through the standard omnichannel routing queue.
- Omnichannel routing matches tickets to queues in the order the queues appear on the Queues page. Tickets are added to the first queue they meet the conditions for.
- Tickets that don't match the conditions for any of your custom queues are inserted into the standard omnichannel routing queue. However, omnichannel routing prioritizes all tickets routed through custom queues over those routed through the standard omnichannel routing queue, regardless of the ticket's priority.
- The way your order tickets, whether by priority and timestamp or time to SLA breach, applies to both the standard omnichannel routing queue and custom queues.
- When an agent is eligible to receive work from multiple queues, tickets from the queue with the higher priority are assigned before tickets from a queue with a lower priority. See Creating custom omnichannel routing queues.
- After a ticket has been assigned to an agent, it leaves the queue.
- Talk tickets can’t be reassigned by omnichannel routing. Email and messaging
tickets can be reassigned, but your routing configuration determines whether
reassignments occur through custom queues or the standard queue.
- On Team and Growth plans, tickets can't re-enter a custom queue after being assigned to an agent. However, if a ticket becomes eligible for re-routing, it's inserted into the standard omnichannel routing queue based on its routing-eligibility timestamp and routed based on the ticket's assigned group.
- On Professional plans and above, you can configure omnichannel routing to reassign tickets through custom queues. When configured, tickets that are reassigned back to a group after being assigned to an agent are inserted into the first matching queue. If the ticket doesn't meet the conditions for any custom queues, it's inserted into the standard omnichannel routing queue and routed based on the ticket's assigned group.
- You can report on the performance of your custom queues in Explore. See Explore recipe: Reporting on custom omnichannel queue performance.
Using custom queues with omnichannel routing
Omnichannel routing is Zendesk's most sophisticated and complete routing solution. It provides consistent routing logic across channels and considers many factors when assigning work to agents. For many use cases, the single, standard omnichannel routing queue that's activated when you turn on omnichannel routing is sufficient. When relying on the standard omnichannel routing queue, tickets must be assigned to a group to be routed to an agent with omnichannel routing, and email tickets must have the auto-routing tag. Think of this as group-based omnichannel routing.
In some cases, it's not realistic or desirable to have your tickets routed to the single group assigned to the ticket. Creating custom queues allows you to route work to multiple groups based on the queue the tickets are assigned to. Multiple queues also give you the option to define secondary or "overflow" groups that receive tickets through a queue only if all agents in the primary groups are unavailable. When you assign multiple primary and secondary groups to a queue, omnichannel routing treats all primary groups as a single pool of agents, and when necessary, expands it to include all agents in the secondary groups as well. When you use queue-based routing, omnichannel routing uses the queue's primary and secondary groups to assign the ticket to an agent, ignoring any group that might be specified on the ticket itself.
For more information, see Creating additional omnichannel routing queues.
Understanding how omnichannel routing orders tickets within queues
As soon as a ticket is eligible for routing, omnichannel routing attempts to assign it to an eligible and available agent. If it can't be assigned immediately, the ticket is inserted into a queue. There are two ways you can configure omnichannel routing to insert and order tickets within queues: ticket priority and timestamp or time to SLA breach. The standard omnichannel routing configuration uses the time at which a ticket becomes eligible for routing and, on Professional plans and above, the ticket's priority.
When a new ticket is created or updated, ticket triggers automatically fire and then omnichannel routing evaluates how to insert it into a queue to be routed to an agent. If you've created custom queues, omnichannel routing evaluates queue conditions to find a match for the ticket and then inserts it based on SLA targets or ticket priority; if a ticket doesn't match any of the custom queues, it's inserted into the standard omnichannel routing queue on the same basis. If you haven't created custom queues or a ticket doesn't meet the conditions for any of your custom queues, it's inserted into the standard omnichannel routing queue.
Ordering tickets by priority and timestamp
- Ticket eligibility for routing
- Routing eligibility timestamps
- Routing ineligibility time
- Ticket priority (Professional plans and above)
Ticket eligibility for routing
Ticket eligibility for routing by omnichannel routing depends on whether the tickets are entering the standard queue or custom queues.
- Assigned to a group
- In a status or status category of New or Open
- Unassigned
- (Email tickets only) Has the auto-routing tag
- In a status or status category of New or Open
- Unassigned
- The ticket isn't assigned to a group and doesn't match a custom queue.
- The ticket is assigned to an agent.
- The ticket has a status (or status category) of Pending, On Hold, or Solved.
- The ticket has been soft deleted.
- (Email tickets and the standard queue only) The ticket doesn't have the auto-routing tag.
Routing eligibility timestamps
- The initial eligible for routing timestamp is when a ticket becomes eligible for routing through omnichannel routing for the first time.
- A subsequent eligible for routing timestamp is when a ticket becomes eligible again for routing through omnichannel routing after having already been eligible and ineligible previously.
Routing ineligibility time
Omnichannel routing tracks the time tickets spend being ineligible for routing and uses this to determine which routing timestamp to use when inserting a ticket back into the routing queue. This is referred to as the routing ineligibility time.
Checking ticket ineligibility for routing prevents performance issues caused by tracking an ever-growing number of timestamps and accounts for decreasing priority as tickets age.
Ticket priority
On Professional plans and above, omnichannel routing automatically orders tickets based on priority first and then by their routing eligibility timestamp. This sorting method prioritizes the oldest and most important tickets.
However, if you use SLAs, ticket priority and age might not be the most important metrics to use for ordering tickets within your queues.
Ordering tickets by time to SLA breach
Ordering tickets by time to SLA breach brings your routing logic into alignment with your service commitments and can improve your ability to meet those goals.
- The method of ticket ordering you use determines the order of tickets within any given queue, but doesn't influence the priority of ticket assignment across queues. If an agent can receive work from multiple queues, tickets from the queue with the higher priority are assigned to the agent before tickets from the lower priority queue. This is true regardless of how soon tickets in the lower priority queue will breach their SLA targets. Take this into consideration when creating and ordering custom queues.
- When ordering tickets based on the time to their next SLA breach, the setting is applied only to new and reopened tickets. Tickets already in the queue when this setting is turned on remain ordered by priority and timestamp as they were before.
- Ticket ordering is based on the SLA targets as they existed when the ticket entered the queue. If SLA policies are modified before the ticket is routed to an agent, the old SLA targets are still used for the purposes of routing.
- When ordering tickets based on the time to their next SLA breach, all tickets with SLA targets are ordered ahead of tickets without SLA targets, regardless of ticket priority and timestamp. Tickets without SLA targets are ordered based on their priority and routing eligibility timestamp.
If you want to order tickets based on SLA targets, update your omnichannel routing configuration to prioritize tickets with service level agreements.
Putting it together: Ordering tickets by priority and timestamp in a queue
The standard configuration orders and assigns tickets based on the ticket's priority and routing eligibility time. Let's walk through a ticket's life cycle with the standard omnichannel routing configuration:
- On January 1, 2024, a customer sends an email, and a ticket is created at 08:30.
- The creation of the ticket causes the triggers to run and then
omnichannel routing to evaluate queues for the ticket.
- When the triggers fire, the auto-routing tag is added and the
ticket is assigned to Group 1. These ticket updates occur
one minute after the ticket was created. (08:31)
The initial eligible for routing timestamp is 2024:01:01:08:31.
- Omnichannel routing recognizes the ticket as eligible for
routing and adds it to the queue using the ticket's initial
eligible for routing timestamp to determine its
order.
- If all tickets in the queue have the same priority, tickets with timestamps before 2024:01:01:08:31 will be ahead of this ticket in the queue, and those with timestamps after that will be behind it.
- If not all tickets have the same priority, tickets with the highest priority are all added to the front of the queue in timestamp order, followed by tickets with the next highest priority in timestamp order, and so on.
- When the triggers fire, the auto-routing tag is added and the
ticket is assigned to Group 1. These ticket updates occur
one minute after the ticket was created. (08:31)
- When the ticket reaches the front of the queue, omnichannel routing
looks for an agent in Group 1 that is available and has spare capacity.
It finds an agent at 08:37 and assigns the ticket to them.
The ticket becomes ineligible for routing as soon as it's assigned to the agent. The ticket's routing ineligibility time begins at 2024:01:01:08:37.
- After three days of working on the ticket, at noon (12:00) on January 4,
2024, the agent reassigns the ticket to Group 2.
The ticket becomes eligible for routing again because the new group assignment removes the previous agent assigned to the ticket. Because the ticket's routing ineligibility time was less than 15 days, it re-enters the queue and is ordered based on its initial eligible for routing timestamp (2024:01:01:08:31).
Assuming equal priority, this ticket is inserted ahead of all tickets that became eligible for routing after this ticket was initially added to the queue.
- Omnichannel routing assigns the ticket to an agent in Group 2 a few minutes after it's added to the queue.
- After 20 days of being assigned to the agent in Group 2, the agent
decides to reassign it to another group to which they don't belong.
(Timestamp: 2024:01:24:10:45)
Because the ticket's routing ineligibility time exceeded 15 days, the ticket is placed in the queue based on its priority and latest subsequent eligible for routing timestamp of 2024:01:24:10:45. Tickets of equal or greater priority that became eligible for routing prior to January 24, 2024, at 10:45 am and haven't had an ineligibility period of 15 days are ahead of this ticket in the queue.
- When the ticket reaches the front of the queue, omnichannel routing assigns it to another agent. This agent works on the ticket and changes the status to Solved.
107 comments
Danielle
Barry Neary It seems as if tickets that are reassigned, thus re-entering a custom routing queue, are being routed before the oldest tickets in that same custom queue. Is this expected, or should I open a support ticket for help?
0
Christopher Sciaretta
Barry Neary Hi Barry, my team would like to have the backend change made to our sandbox to allow us to test reassigned tickets flowing back through a custom queue.
Please let me know what information you will need!
0
Dayner Carry
No, Barry Neary, I simple have the conditions for Brand and Status Less than Solved
0
Leo Ostigaard
Barry Neary Along with Danielle and Dayner Carry, I want to know if reassigned tickets are routed before older tickets in the queue? If so, my team would like to have this backend change made.
Also, I've searched every article and comment but haven't found an answer to this scenario: Queue A holds only High priority tickets but has "Queue Priority" of 2, and Queue B holds only normal priority tickets but has a "Queue Priority" of 1. What tickets will get routed first?
0
test.zendesk
Hi Barry Neary ,
When the feature to support ordering within the queue by SLA would go live?
I have a question about the custom queue:
If ticket1 with urgent priority is added to the custom queue after ticket2 (normal priority) will the custom queue prioritise the assignation of ticket1 over ticket2 because ticket1 has an urgent priority?
1
Barry Neary
Hi Danielle
If we have the backend re-routing un-assigned tickets back to the omnichannel routing queue logic enabled, how does that impact when/how that ticket is routed the second time? Does it up the priority or something similar?
When the ticket is reassigned, it will go into whatever queue the ticket matches - e.g. if you have a escalation queue which has conditions that the ticket must be Open (i.e. not New) and have the esclataion tag, then you can set this queue's priority to be higher that the queue for new tickets
Secondly, which has the higher priority: the initial queue eligibility or the subsequent queue eligibility?
It depends on wheher you have created different queues for these differenty types of tickets
0
Barry Neary
Note: tickets that go through queues have priority over ones that dont. So for example, if a ticket is reassigned to a group and doesnt go back through queues , and if that group is also receiving new tickets from a queue, its those new tickets that will take priority, even if they are newer than the reassigned tickets.
We have the ability to ensure all your reassigned tickets go back through queues - you can create a ticket with our customer support to do that. By end of Sept, this option will appear on the admin centre UI
2
Barry Neary
Hi test.zendesk
Ordering by SLA is looking like Nov 2024
If ticket1 with urgent priority is added to the custom queue after ticket2 (normal priority) will the custom queue prioritise the assignation of ticket1 over ticket2 because ticket1 has an urgent priority?
Yes
0
Barry Neary
Hi Leo Ostigaard
I have DM you about your first request
Queue A holds only High priority tickets but has "Queue Priority" of 2, and Queue B holds only normal priority tickets but has a "Queue Priority" of 1. What tickets will get routed first?
Queue priority only becomes important if you have two or more queues allocated to the same agent or group of agents. If Queue A and B are both assigned to Group A, then Group A will receive tickets from Queue B first in your example because it has the higher queue priority
If Queue A is assigned to Group A and Queue B to Group B, then queue priority doesnt matter (as long as there are no agents that are in both groups) - agents in group A will get tickets in order of ticket priority and date created and in parallel group B will get tickets from Queue B
0
Andrew
Hi, we have talk set to Maximum queue wait time of 5 min and have custom queues setup for the talk channel. But it seems like nothing is being set to voicemail or I'm reading it wrong. When we look at the avg. time in queue, calls are in days. How exactly does that work? Are they being sent to VM after 5 min, but because no agent is assigned, the Avg time in queue still keeps ticking up?
0
Bobby Koch
Barry Neary are 3rd party telephony integrations available yet with OCR
0
Barry Neary
Hi Bobby Koch
We have a range of APIs that could be used by a 3rd party telephony tool to integrate with our routing engine. do you have a specific telephony provider in mind?
cc: Widson Reis
0
Maarten Coghe
Hi Barry Neary
If I'm not mistaken, I can't find an answer to Danielle's question:
It seems as if tickets that are reassigned, thus re-entering a custom routing queue, are being routed before the oldest tickets in that same custom queue. Is this expected, or should I open a support ticket for help?
This is something we struggle with as well at the moment.
- Ticket is created and enters a custom queue
- Ticket is assigned to an agent, is being worked on
- Ticket is unassigned from the agent and is assigned to a group
- Ticket enters the same custom queue it was originally in
- Newer tickets are being picked up first instead of this ticket
It seems as if omnichannel routing is looking at when a ticket has entered the queue and not when a ticket was created.
0
Barry Neary
Hi Maarten Coghe
Could you create a ticket with our support people and I can follow up? If you can include example ticket ids that would really help
Barry
0
Bobby Koch
Barry Neary Talkdesk. We need to use omni-channel routing, ideally in Zendesk and with Messenger..
0
Barry Neary
Hi Bobby Koch
Unfortunately Talkdesk would need to integrate with our omnichannel routing engine using the existing API endpoints that we have (they havent done so at this point). Alternatively , of course, you could switch to Zendesk Talk?
0
Bobby Koch
Talk does not have any way to do data lookups into the zendesk database, which is silly, and I have no idea what that roadmap looks like at all. It seems like it is better fit for ecommerce than it is enterprise support.. need to be able to use attributes about the person to present better option in the IVR Barry Neary → do you know, is there anything coming like this from Talk? Data look ups, data dips, any advancement of the IVR?
0