Omnichannel routing is a highly configurable routing solution that can route new and open tickets from email (including web form, side conversations, and API), calls, and messaging. Omnichannel routing provides the most sophisticated routing logic, which can increase agent efficiency and effectiveness. It works out of the box, but you'll get the most value if you take your time planning your routing configuration. Your routing configuration applies to all omnichannel routing queues.
Planning your routing configuration
Omnichannel routing works out of the box. As long as you already have a mechanism in place to assign incoming tickets to groups, such as triggers, omnichannel routing can start routing calls and messaging conversations as soon as it's turned on and email tickets as soon as the auto-routing tag is added to them. Therefore, when you set up omnichannel routing or adjust your routing configuration, it's best to have a detailed plan ahead of time.
To plan out your omnichannel routing configuration
- (Optional) To make the most informed decisions about your routing configuration settings, you might want to consider the questions posed in Best practices: Planning your routing workflow.
- On all plan types, do the following:
- Email (including web form, side conversations, and API) must have a unique routing tag to be routed through the standard omnichannel routing queue. However, the auto-routing tag isn't needed to route email tickets through custom routing queues, unless they don't match to any custom queues and you want them to get picked up by the standard omnichannel routing queue. You can use the default auto-routing tag (auto-routing) or you can specify a different one.
- You probably already use triggers to assign tickets to groups. If you're using the standard omnichannel routing queue, you need to ensure one or more triggers have an action to add the routing tag to any email tickets you want routed by omnichannel routing. The group assignment and auto-routing tag aren't required for tickets that are routed through custom queues. See Requirements for the routing triggers. Decide if you are going to modify existing triggers to function as routing triggers, or create new ones.
- Omnichannel routing uses capacity rules to control how much work is assigned to each agent at a given time. There is a built-in capacity rule that is enabled by default, but you can define alternative rules that better meet your unique needs. Decide what capacity rules you will need. For each rule, decide what the capacities will be for each channel and which agents will be assigned to the rule.
- Decide whether you want to assign work to agents based on who has the most spare capacity for the channel (the standard configuration) or based on who hasn't been routed work from the channel in the longest time (round robin)
- Review the standard unified agent statuses. When omnichannel routing is on, standard agent statuses are automatically available for agents to use across channels. The standard agent statuses can't be edited, but it's important to understand how they're configured.
- Decide how you want to handle the situation when messaging conversations and calls are routed to agents but they don't accept them. Are you going to turn on messaging reassignment timing, where a messaging ticket is reassigned to a different team member if not addressed within the specified timing? Would you prefer to auto-accept messaging tickets for agents?
- How do you want agents to see the email tickets they've been assigned by omnichannel routing? Should they use a view to see what's been assigned to them, or should the email tickets open in a new tab automatically, similar to messaging conversations?
- On Professional and Enterprise plans, you'll also need to decide the
following:
- When you turn on omnichannel routing, it's configured to use a the
standard omnichannel routing queue that routes work from all
channels to the ticket's assigned group. However, we recommend creating custom queues to
route tickets that meet specific conditions to multiple primary and
secondary (fallback) groups. Decide if you need additional queues,
what their conditions will be, and which groups will be primary and
secondary. See Understanding how omnichannel
routing uses queues to route work to
agents.Note: Creating additional queues might require adjustments to your triggers for them to continue working correctly to help you route work into the appropriate queues.
- What unified agent statuses are you going to use? Just the standard agent statuses or custom statuses, too? For each custom status, what will be the name of the status and what will be the per-channel statuses?
- Are you routing based on ticket priority? If so, what triggers are you going to use to add and manage priority on tickets?
- Are you using skills? If so, what skills are you going to define and which agents have them? What routing rules or triggers are you going to use to add and manage skills on tickets? Do you want to fallback to routing without regard to skills if agents with the skills aren't available? If so, how long should it take for optional skills to timeout? Which skills are always required, and which are optional?
- (Enterprise plans only) Are you going to turn on call offering time limits, which acts as a reassignment time threshold for incoming calls?
- How do you want to handle reopened email and messaging tickets if the agent has certain statuses? For which statuses would you want to reassign email tickets? For which statuses would you want to reassign messaging tickets?
- How do you want to handle reassigning tickets? Do you want new tickets to be prioritized over them and therefore rely on the standard queue for reassignment, or would you like them to be prioritized equally against new work and reassigned through custom queues?
- When you turn on omnichannel routing, it's configured to use a the
standard omnichannel routing queue that routes work from all
channels to the ticket's assigned group. However, we recommend creating custom queues to
route tickets that meet specific conditions to multiple primary and
secondary (fallback) groups. Decide if you need additional queues,
what their conditions will be, and which groups will be primary and
secondary. See Understanding how omnichannel
routing uses queues to route work to
agents.
Editing the routing configuration
After you set up omnichannel routing, you can use the default configuration or review and modify how omnichannel routing distributes the messages. You can edit your routing configuration at any time.
To set up a routing configuration
-
In Admin Center, click
Objects and rules in the sidebar, then select Omnichannel routing > Routing configuration.
- On the Routing Configuration page, click Edit next to the Initial routing configuration.
- On the Initial routing configuration page, you can see the name and description for the routing configuration.
- Configure the following Global routing options, which apply to tickets
from emails, messaging conversations, and calls across all omnichannel routing
queues:
- Ticket sorting: (Growth plans and above for Zendesk Suite; Professional plans and above for Support, Talk, and Chat) Determines whether tickets are ordered in the queues and assigned by priority and date created or by nearest SLA breach.
- Assignment method: Determines whether omnichannel routing assigns work to agents with the highest spare capacity or agents who have gone the longest without being assigned work for the channel. Regardless of the method you select, agents must have an eligible status and spare capacity for the channel to be routed work.
- Turn on skills-based routing: (Professional plans and above for Zendesk Suite, Support, Talk, and Chat) Routes tickets to agents with matching skills who also have an eligible status and spare capacity. When using skills to route tickets, we recommend also configuring a skills timeout.
- Turn on focus mode: Assigns an agent work from one real-time channel at a time. Email tickets aren't included in this restriction.
- Reassign reopened tickets: (Professional plans and above for Zendesk Suite, Support, and Chat) Reassigns email and messaging tickets if the assigned agent has a specified status when the ticket status changes from Solved, Pending, or On-hold back to Open.
- Reassign tickets through queues: (Professional plans and above for Zendesk Suite, Support, and Chat) Use custom queues to reassign tickets that have been assigned to an agent and are then assigned back to a group. When not selected, tickets are re-assigned through the standard queue.
- Under Email routing, configure whether to Automatically open email tickets. This determines whether newly assigned email tickets are opened in a new tab for the agent. Regardless of this setting, agents receive a notification that a new ticket has been assigned to them.
- Configure the following Messaging routing options:
- Choose whether to Wait until the agent accepts offered tickets or auto-accept for the agent. Determines whether messaging tickets are offered to agents or automatically assigned to them by omnichannel routing.
- Reassign if agent doesn't accept within time limit: (Professional plans and above for Zendesk Suite, Support, and Chat) Reassigns work to a different team member if it isn’t addressed in the time you specify.
- Turn on messaging activity routing: Determines whether inactive messaging tickets are counted toward agent capacity and how inactive tickets are routed to agents.
- When you are finished, click Save.
Global routing options
Global routing configuration settings affect all channels.
Ticket sorting
The standard omnichannel routing logic assigns work to agents in order of priority and routing eligibility timestamp (commonly when the ticket is created). However, in some cases, it's preferable to assign work in order of least time until an service level agreement (SLA) breach. Sorting tickets by SLA is available on Growth plans and above for Zendesk Suite, and Professional plans and above for Zendesk Support, Talk, and Chat.
If you decide to order work by SLA breach times, tickets are ordered by nearness to SLA breach, beginning with those that have already breached and followed by tickets with upcoming breach times. All tickets with an SLA are prioritized over those without; tickets that aren't subject to an SLA are sorted behind all SLA-related tickets based on their priority and routing eligibility timestamp.
- Under Ticket sorting, select Prioritize tickets with a service level agreement (SLA).
Assignment method
The standard omnichannel routing configuration uses a combination of agent statuses and capacity to predict which agent is most available to handle each ticket. However, the complex interactions of how capacity is counted, having multiple capacity rules for different agents, and custom statuses, means it can sometimes be challenging for Zendesk admins and team leads to understand why tickets are being routed the way they are. If you want all the other benefits of omnichannel routing, but would like to increase the predictability of which agent will receive work, you can configure omnichannel routing to use the round robin method.
When you configure round robin assignment, omnichannel routing identifies all agents with spare capacity and eligible statuses to receive work for the channel. Then, it assigns the work to the agent who has gone the longest period of time since last receiving work for that channel. Omnichannel routing considers any ticket assignment, whether manual or by omnichannel routing, as an assignment event. Additionally, omnichannel routing counts offering a call or messaging conversation to an agent and the reopening of a ticket as assignment events.
- Under Assignment method, either leave Highest spare capacity selected to use the standard configuration or select Round robin.
See Using round robin routing for email, messaging conversations, and call tickets.
Skills-based routing
On Professional plans and above, you can route tickets to agents with matching skills who also have an eligible status and spare capacity. To use this feature you must have defined skills for your account and a way to assign skills to tickets. When using ticket triggers to assign skills to tickets, you have the ability to specify whether each skill is required or optional. Skills marked as required can't time out and are always part of the criteria for routing the ticket to an agent, but optional skills stop being considered for routing purposes when a skills timeout occurs.
If you turn on skills-based routing, we recommend also configuring a skills timeout. When a timeout is configured, work may be assigned to agents without the optional skills if none of the agents with all of the skills are available. For email tickets, which are always assigned to agents by omnichannel routing, a skills timeout occurs when a ticket reaches the front of the queue and no agent with all of the matching skills is available for a specified duration. However, for messaging and calls, a skills timeout can occur only if no agents with the matching skills are available (online, with spare capacity) for the timeout duration. If any agent with matching skills is available, omnichannel routing will continuously offer the ticket to them until either they accept it or all agents with matching skills become unavailable for the specified timeout duration.
If you don't turn on the skills timeout, email and messaging tickets with skills remain in the queue indefinitely until an agent with all of the matching skills becomes available, and calls remain in the queue until the maximum queue wait time is reached and the call is sent to voicemail.
See About using skills to route tickets.
- Select Turn on skills-based routing.
- (Recommended) Select Turn on skills timeout and configure
your timeout thresholds per channel.
- Email: The skills timeout threshold for email tickets. The default is one hour.
- Messaging: The skills timeout threshold for messaging conversations. The default is 30 seconds. This also applies to chats in some circumstances.
- Talk: The skills timeout threshold for calls. The default is 30 seconds.
Focus mode
On Team plans and above, you can configure omnichannel routing to help agents focus when handling tickets from real-time channels (calls, messaging conversations, and live chats). When you turn on focus mode, omnichannel routing only routes an agent work from one real-time channel at a time. Ticket priority is compared across channels to ensure the highest priority real-time ticket is assigned first. For more information, see About focus mode.
Email tickets aren't included in this restriction and can still be assigned while agents address more time-sensitive tickets from other channels.
- Select Turn on focus mode.
Reassign reopened tickets
On Professional plans and above, you can reassign email and messaging tickets if the assigned agent has a specified status when a ticket's status changes from Solved, Pending, or On-hold back to Open. If you are using custom ticket statuses, this applies to all custom ticket statuses in the Solved, Pending, or On-hold status categories. Depending on your other routing configuration settings, ticket reassignment can be to another agent in the ticket's assigned group or through custom queues.
- Select Turn on reassignment for reopened tickets.
- Select the agent statuses for which you want to reassign reopened
Email tickets.
If reassigment through queues is also on, all reopened email tickets are reassigned regardless of the routing tag. Otherwise this reassignment behavior applies to email tickets with the routing tag only, even if the ticket wasn't originally assigned by omnichannel routing.
- Select the agent statuses for which you want to reassign reopened Messaging tickets. This also applies to chats in some circumstances.
Reassign email and messaging tickets through custom queues
- Select Reassign tickets through queues.
Email routing options
The following setting applies only to how omnichannel routing assigns email tickets to agents.
Automatically opening email tickets
You can choose whether a newly assigned email ticket is automatically opened in a new tab for the assigned agent, similar to messaging conversations. Regardless of this setting, the agent receives a notification of the assignment. If you choose not to automatically open email tickets, it's a good idea to have agents use views to monitor the tickets assigned to them.
- Select Automatically open assigned email tickets.
Messaging routing options
The following settings apply only to how omnichannel routing offers and assigns messaging conversations to agents.
Auto-accept messaging tickets for the agent
Typically, messaging conversations are offered to agents rather than automatically assigned. On Team plans and above, you can configure omnichannel routing to automatically assign messaging tickets to agents instead of offering them. This also applies to chats in some circumstances.
This feature can't be used at the same time as messaging reassignment timing.
- Select either Wait until the agent accepts (the standard configuration) or Auto-accept for the agent.
Messaging reassignment timing
On Professional plans and above, you can configure omnichannel routing to reassign messaging tickets to a different team member if the assigned agent hasn't addressed it in the time you specify. When messaging reassignment timing is enabled, a specified time, in seconds, can elapse before work is reassigned to another agent. Depending on your other routing configuration settings, ticket reassignment can be to another agent in the ticket's assigned group or through custom queues. The timing is 30 seconds on Professional plans, and customizable on Enterprise plans. This also applies to chats in some circumstances.
This feature can't be used at the same time as auto-accept for messaging.
- Select Reassign if agent doesn't accept within the time
limit.
The timing is 30 seconds on Professional plans.
- (Enterprise plans only) Enter the Messaging timing in seconds.
Count inactive conversations towards agent capacity
On Team plans and above, you can choose whether to count all open active and inactive messaging tickets towards an agent's capacity or only active messaging tickets. This setting was previously referred to as messaging activity routing.
When selected, active and inactive messaging tickets are counted and offered to agents through the Accept button.
When not selected, only active messaging tickets are counted towards capacity and offered to agents through the Accept button. Inactive messages are automatically assigned to a previously-offered agent or other available agent. See Understanding how capacity rules work for messaging conversations and live chats.
- Select Count inactive conversations towards an agent's capacity.
Configuring omnichannel routing to route tickets based on priority
On Professional and Enterprise plans, omnichannel routing automatically considers ticket priority if it's set. All you have to do is set a ticket's priority before it is assigned to an agent. We recommend using triggers to automatically set the ticket's priority when it enters the queue. This can be done with the same routing triggers you're already using to assign groups and the routing tag, or separate triggers.
- Create a new trigger or edit an existing one.
- Add conditions to define the tickets you want to set the priority for.
- Add an action Ticket > Priority and select the priority value you want to assign.
Evolving your routing configuration
- Are your reassignment timeouts correct? If your agents often have spare capacity, you could try reducing these thresholds. If they are typically at capacity with a large queue of work waiting for an available agent, reducing the threshold probably isn't a great idea.
- Is your ticket prioritization working for each channel? Are any adjustments needed?
- Are your unified agent statuses still meeting your needs? Have you noticed any trends in agent productivity based on their status usage? If you aren't using custom agent statuses, would they be helpful to you?
- Has anything changed for you organizationally that should be reflected in our routing configuration, triggers, or other business rules?
When you need to adjust your routing configuration, see Editing the routing configuration.
140 comments
Zach Gilbert
Thanks Barry Neary. What is the timelines for voicemails?
0
Tim M
Skills timeout for messaging needs more work. It should evaluate if there is anyone online with the skill and if not automatically drop the skill before even using omnichannel to assign to an agent.
3
Barry Neary
Hi Tim M
Just to confirm, you want there to be no delay between there being no available agent with the right skill and the dropping of that skill? If so, I believe you can reduce the skills timeout down to a sec or two?
We are addressing the limitation that an agent needs to do something after the skill is dropped to be assigned the ticket
0
Barry Neary
Hi Zach Gilbert
I am not sure, Rohan Gupta can perhaps answer that one....
0
Tim M
Barry Neary,
That is exactly it. we set it to 1 second, but unless an agent makes a change after the skills drop for the ticket to get assigned is the issue.
We also tested with the only agent being assigned the skill and 2 other agents without the skill being online and the ticket sits until an agent makes a change.
The goal would be when the ticket is created and it has a skill, if it checks and 0 agents online with the skill, the ticket would automatically assign to any agent. Then if the agent with the skill is online and is at capacity, the skills automatically drop and assigns to the next available agent without agent interactions required currently with skills being dropped.
Another suggestion, when the skill drops, can there be an event in the event log, maybe when it drops the skill, the skill is completely removed from the ticket, or a tag goes into the tags field of something like "skills_dropped"
3
Jahn
Barry Neary Rob Stack - just a feedback in relation to Messaging and Capacity Rules under Omni-channel routing.
The "Turn on messaging activity routing" on our instance are disabled last time as we technically wants the active messaging only to be counted against the agents capacity but we had an influx of messaging ticket last night hence majority of those becomes inactive unassigned messaging and to our surprise this was bulk assigned to 2 of our agents working that night. They were assigned 100+ messaging tickets in total.
Hope you can check this behavior of Zendesk messaging please if this "Turn on messaging activity routing" is disable.
1
Barry Neary
Hi Tim M
We are actively working on the limtation that agent needs to do something when skills timeout to get the ticket. This should be in place by end of Q2
2
Barry Neary
Hi Jahn
If you switch off the message activity routing setting then each message after 10 mins in queue will be set to inactive and will no longer take up capacity. Then when agents come online they can be assigned these inactive messages over their max capacity as the messages are not taking up capacity.
The trigger below will detect when the message goes from active to inactive and then the action could be to assign the message to an empty group, where agents can manually assign the inactive tickets to themselves via a view. In that way the messaging queue only contains active messages
0
D.Fitz
Are there any plans to allow a tailored skills timeout per Skill Type?
For instance, we have a Language Skill Type and a Specialism Skill Type set up. The Specialism must be routed to a relevant agent, but the Language is more of a nice-to-have, so it would be ideal if we could set a Skills Timeout for our Language Skill Type without needing to also turn this on for the Specialism Skill type.
0
Lauren Benkov
Hey Barry Neary any update on SMS getting added to OCR?
Thanks!
0
Barry Neary
Hi D.Fitz
We dont plan to do that , but we do plan in Q3 to have different skills priority levels - so language skill could be added to a ticket and given an lower priority level than the specialism. When the skills timeout elapses and no agent with both the right language and specialism is available, the system will drop the language skill and just look for an agent with the correct specialism
0
Bobby Koch
Are there any plans to have capacity rerouting? Suppse an agent has 3 active chats, 1 goes in active, then a new chat comes in. Then, the inactive chat is now active again for whatever reason and the agents capacity is 3. Is there a world where this can be reassigned to another available agent especially if the status is not open?
0
Barry Neary
Hi Bobby Koch
Currently we have the ability to automatically reassign tickets that reopen while the agent is a certain status e.g. offline.
What we dont have is the ability to take into account is the agent at max capacity or not, and only reassign if they are at max. This is on the long term roadmap
Barry
0
Danielle
Hi Barry Neary , I'm also curious about updates on the ability for SMS tickets to be assigned via Omnichannel routing. Is there an expected date for this? Thank you
0
Barry Neary
Hi Danielle
Looking like early Q3
1
Tobias Hermanns
HI Ahmed,
I have same trouble, we have trigger with Agent Direct Assignment on VIP contracts, OOO is ignoring these assignments, and ticket stay in queue forever. I´ll ~around Q3 try Skill Routing to achieve a better fulfill, but you are right OOO App was more convinient in regulate this compare to Omni Channel in Zendesk. I hope they fix the gaps in future.
0
Brett Bowser
Ahmed Zaid and Tobias Hermanns I would recommend sharing this feedback in the following topic: Feedback - Ticketing system (Support)
Keeping track of feedback across all of our articles can get a bit messy and I want to make sure our PM's have visibility. Thank you!
0
Barry Neary
Hi Ahmed Zaid
When using the reassign reopened tickets feature, tickets will only be routed to available agents. Just to confirm: you dont want tickets to reassigned if there are no available agents?
0
Rachel G.
FEEDBACK: I was experiencing an issue where messaging tickets created outside of our business hours would flood the first agent to set themselves Online and capacity rules would be ignored by the system. After contacting support, it was suggested that I turn on Messaging Activity Routing which I did. Messaging Activity Routing eliminates that issue I was experiencing initially but creates another one: if all/most of the message tickets created outside of our business hours haven't been resolved yet, new LIVE messaging tickets cannot be assigned. Are there any workarounds? What I want to achieve is 1) First online agent does NOT get flood with ALL messaging tickets 2) LIVE messaging conversations are prioritized over any messaging tickets that were submitted outside of our business hours since those customers are no longer live. Messaging tickets submitted after hours should be treated/routed link email tickets.
0
Barry Neary
HI Rachel G.
Are you using omnichannel routing queues? If so one approach is to have two separate queues - one for active messaging tickets and one for inactive.
The conditions on the active messages queue is simple, the ticket must be a message and it must have the ‘active’ tag. The inactive messages queue is similar, except that messaging tickets must have an inactive tag.
The active and inactive tags used by these queues are set using triggers. The active message queue can be assigned to a group that deals with live messages, while the inactive one could be assigned to an offline group that deals with email tickets. Alternatively, you could have both queues being worked by the same group, but as the active messages queue is higher priority, agents will be dealing with active messages first before being assigned any inactive ones.
Creating the triggers
First, you should create a trigger that adds an active tag to all new messages.
Then create another trigger that is designed to fire when the active message becomes inactive after 10 minutes of no conversation in the message thread. The below trigger fires when this occurs and removes the active tag, replacing it with the inactive tag.
This trigger relies on the fact that when a messaging ticket transitions from being active to inactive, that counts as a ticket update and a chat transcript is added to the ticket.
There is no way currently to detect a message going from inactive to active using a trigger. The best you can do is to use another trigger which detects an update to an inactive message. Note that this update could be due to a change from inactive back to active, but it could also be due to any update to the ticket (e.g. tag being added to the ticket) and hence it's not recommended.
1
Ahmed Zaid
Hello Barry Neary ,
My agents alerted me to an issue where they come back from vacation and they have reopened tickets still assigned to them despite having Reassign reopened tickets
option turned on and them being on the correct OOO status.
To investigate, I did the following:
I attached screenshots for verification. Did I do anything wrong?
0
Tobias Hermanns
Ahmed Zaid Does this tickets belong to Talk Channel? Voicemail, Inbound Phone … are not part of Omni Channel Routing and Re-Routing.
0
Barry Neary
Hi Ahmed Zaid
Do you have idle timeout switched on? If so that will set your agents to offline when they are out of office. Are you excluded from the disconnection service? If not, that will set your agents to offline.
Another thing to check is how long is your Zendesk session expiry set to? That will also set agents to offline when it expires
Barry
0
Ahmed Zaid
Tobias Hermanns ,
All tickets are email/web and were assigned using omnichannel routing. They were part of a Queue and I have the option to evaluate queue conditions again upon ticket re-opening enabling.
Barry Neary ,
I have idle timeout disabled and although the session duration is only 8 hours, the report shows that the unified status persisted all week
0
Tobias Hermanns
Ahmed Zaid
Did you may verify in Event Log of Ticket it´s not a manual assignment to OOO Agents from another Agent?
0
Ahmed Zaid
Hi Tobias Hermanns,
Yes I confirmed that all the tickets were already assigned to the agents in pending/on-hold/solved status before the agent went O.O.O. Then the tickets got reopened while the assignee was O.O.O for various reasons. Some due to triggers (based on reply to side conversation) and others due to reply from requester.
0
Barry Neary
Hi Ahmed Zaid : if you're still having issues, perhaps raise a ticket with our customer advocacy team?
0
Ahmed Zaid
Barry Neary ,
Austin from support helped me find the root cause. When I moved to queue based routing, I stopped adding a routing tag for email tickets because I found it redundant. That is what disabled Reopened ticket reassignments for email tickets. I appreciate everyone's help.
0
Harrison Meesschaert
I'm sure I'm missing something very basic but after flipping on Omnichannel routing for our Email tickets we're getting feedback that they're being assigned to agents in “Away” statuses. I'd expect email tickets to only assign to “Online” agents. Haven't found a setting for this except the “Reassign reopened tickets” which is a different issue entirely. What am I missing?
As an example we had an agent in an “Away” status for training but they were assigned 5 new tickets by Omnichannel when we flipped it on.
0
Barry Neary
Hi Harrison Meesschaert
Email tickets (which include those created from an email, web form or API) require that an agent be online or in away status to be routed to. This is different for messaging or voice tickets, which require an agent to be online. The thinking here is that as email tickets are typically not as time critical, an agent can be assigned an email ticket even if they are temporarily not at their desk.
1