Omnichannel routing allows you to direct new and open tickets from email (including web form, side conversations, and API), calls, and messaging to agents based on their availability and capacity. On Growth plans and above, tickets can be routed based on time to service level agreement breaches. On Professional plans and above, tickets can also be routed based on priority and skills.
Using omnichannel routing means agents can set a single unified status for all channels, and important tickets are assigned to the agents who are most available to work on them. This provides the following benefits:
- Agents can respond to tickets faster
- You can prioritize work from high-value customers, including calls
- Agents are automatically assigned tickets and don’t have to go looking for them
- Agents can’t "cherry pick" the tickets they want to work on
- Agents can work on multiple ticket channels at once
- You can route calls to specific groups of agents based on the caller's country code of callers or other attributes
You can use capacity rules to limit the amount of work that’s assigned to agents at one time. However, regardless of these rules, agents can assign themselves work in excess of these limits if they want to (see Creating capacity rules to balance agent workloads).
With omnichannel routing, instead of setting status individually by channel, agents can set a single unified status for Support, Talk, and Messaging. On Professional plans and above, admins can also define their own custom statuses such as “Out to lunch” or “In a meeting.” This can assist you when deciding how you want to route work items (calls, tickets, and messages) based on the agent status and capacity. See Adding unified agent statuses.
This article contains the following sections:
Requirements and limitations of omnichannel routing
To use omnichannel routing, you have to set it up and configure it. If you decide to stop using it, you can turn it off.
There are a few requirements for using omnichannel routing, as well as some limitations you should consider.
Requirements
- The Agent Workspace must be activated for your account.
- If your account has a Chat subscription, native messaging or Sunshine Conversations must also be activated.
- Messaging must be activated to turn on omnichannel routing while using live chat. Limited support for Chat is provided for accounts migrating to Messaging and omnichannel routing.
Limitations
Omnichannel routing with unified agent status currently has the following limitations:
- It is not recommended to turn on omnichannel routing if you are using department spaces (also known as restricting agent ticket access by brand). Doing so can cause routing issues. See Using department spaces with omnichannel routing (not recommended).
- Omnichannel routing can't be activated if you’re using only live chat. Messaging must be activated, too.
- At the time omnichannel routing is activated, agent statuses are automatically set to offline initially, then agents are prompted to set their own status after that.
- Only tickets with a status of new or open are routed by omnichannel routing.
- Broadcast and hybrid modes for messaging aren't supported.
- When using unified agent statuses, operating hours won't automatically set an agent's status.
- Light agents can't be assigned tickets and can't set a status.
- The ability to change a Talk agent’s status from the Talk dashboard, mobile apps, or by using the Talk APIs isn't supported. Integrations that use Talk APIs to change agent statuses might also be impacted.
- When using custom queues, work routed through your custom queues are prioritized over all work routed through the standard queue, regardless of the individual ticket priority.
- Tickets are created for all calls received during business hours
as soon as they enter the queue. The tickets are routed to agents only if the call is
active. Abandoned calls and calls that exceed the maximum queue waiting time are considered inactive,
and therefore aren't routed by omnichannel routing. The channel for calls received during business hours, whether the
call is answered or goes to voicemail, is inbound call.
Calls received outside of business hours go directly to voicemail and their tickets have a channel of voicemail. Tickets generated by voicemails can't be routed by omnichannel routing. Tickets for calls that go to voicemail, regardless of when they're received, have a subject beginning with "Voicemail from."
- The setting “Create tickets for abandoned calls” is no longer
available. Tip: You can create a workflow to automatically close tickets created for abandoned calls.
- If call forwarding is enabled and the status of an agent is automatically set to offline because the agent has been disconnected, calls to the agent will no longer be forwarded to the agent’s phone.
- When using priority phone numbers in Talk, calls that reference a priority line are assigned to agents first. Then, calls are assigned to agents in order based on the associated tickets' priority and timestamp. Tickets associated with calls on priority lines have a priority of High.
- Talk Partner Edition isn't supported. The way you route calls for Talk Partner Edition depends on the integration you're using.
- When offering messaging conversations (and sometimes live chats) to agents, only 20 offered to events are recorded per ticket. Omnichannel routing will continue to offer the ticket beyond 20 times as needed, until an agent accepts the ticket, but any offers after the first 20 aren't recorded in the ticket event log.
- Omnichannel routing only considers skills added to calls by triggers when the ticket for the call is first created. Changes made to the call's ticket afterward aren't considered.
- After a Talk ticket has been assigned to an agent, omnichannel routing won't reassign it, even if the ticket becomes unassigned or gets assigned back to a group. For email and messaging channels, ticket reassignment depends on your plan and routing configuration. On Team and Growth plans, email and messaging tickets can be reassigned through the standard omnichannel routing queue, but they can't re-enter custom queues. On Professional plans and above, you can choose to reassign email and messaging tickets through custom queues or rely on the standard queue.
How omnichannel routing works
When you use omnichannel routing, tickets are generated for all channels of work as soon as they are received, enabling you to run triggers on them, including incoming calls. For brevity, channels of work are labeled as Email (including tickets generated from email, web form, side conversations, and API), Messaging (sometimes including tickets from Chat), and Talk. Omnichannel routing classifies tickets based on the original channel through which they are received, even if other channels are used in the course of resolving the ticket.
As soon as a ticket becomes eligible for routing, omnichannel routing attempts to assign it to the first eligible and available agent. If no eligible agents are available at the time, the ticket is inserted into a queue and routed based on the following:
- Queue: This is defined by the omnichannel routing queue the ticket is inserted into. Omnichannel routing uses one or more queues to order and assign tickets to agents: a single, standard omnichannel routing queue (default) or custom omnichannel routing queues. The queue assignment determines which groups of agents are eligible to be assigned to each ticket. If you aren't using custom queues, all tickets are inserted into the standard omnichannel routing queue.
- Availability: This is defined by the single unified status the agent sets across channels.
- Capacity for each work channel: You define the maximum capacity for each channel and decide which email tickets are eligible for routing.
- Assignment method: This is defined by the assignment method in your routing configuration and applies to all channels and queues.
- Skills: This is defined by the skills assigned to agents and tickets and applies to all channels.
Then triggers are used to assign the tickets to groups, assign a ticket priority, and add tags to the ticket. After triggers run on a ticket, custom omnichannel routing queues are evaluated, and the ticket is inserted into the first queue it meets the conditions for. When using the standard omnichannel routing queue, messaging conversations and calls enter the queue as soon as they are received, but email tickets must have a routing tag added to them before they can enter the queue. Tickets in the standard queue rely on the ticket's assigned group to identify eligible agents. If you create custom omnichannel routing queues, email tickets are treated the same as messaging conversations and calls, and are evaluated and matched to a queue as soon as they are received, regardless of tags. If a ticket doesn't meet the conditions for any of your custom queues, it's inserted into the standard omnichannel routing queue and routed to an agent in the ticket's assigned group.
After a ticket is assigned to an agent, it is removed from the omnichannel routing queues.
The following table shows the order in which tickets are routed to agents:
Plan | Order in which tickets are routed |
---|---|
Suite Team |
The ticket with the oldest eligible-for-routing timestamp within the queue is routed first. |
Suite Growth and above | Admins can configure whether the ticket with the oldest eligible-for-routing timestamp within the queue or the ticket with the soonest service level agreement breach is routed first. |
Suite Professional and above |
Admins can configure whether the ticket with the highest priority and oldest eligible-for-routing timestamp or the ticket with the soonest service level agreement breach is routed first. Although skills don't influence the order of tickets within a queue, they can cause tickets to remain in the queue awaiting an agent with the matching skills while tickets of lower priority and newer timestamps get assigned. |
When a ticket makes it to the front of the queue, it's assigned to agents based on the following:
- The ticket's group or queue's groups:
- If you're not using custom queues, a ticket must be assigned to a group to be eligible for routing with omnichannel routing.
- Custom queues can be used to route work to multiple groups of agents with omnichannel routing. Tickets in queues are routed to the queue's groups, ignoring the ticket's assigned group.
- When using custom queues, work is assigned to agents in the primary groups first. If no agents from those groups are available when a ticket reaches the front of the queue, omnichannel routing looks for available agents in the secondary or "fallback" groups.
- If an agent can receive work from more than one queue, omnichannel routing assigns work from the queue with the highest priority first.
- If a ticket doesn't match a custom queue, it's inserted into the standard omnichannel routing queue and routed to an agent based on the group assigned to the ticket. Tickets from all channels that don't meet the conditions for your custom queues must have a group assigned to be routed through the standard omnichannel routing queue. Furthermore, email tickets that don't meet the conditions for any custom queues must also have the auto-routing tag.
- An agent's status for the channel:
- Email tickets: An agent must have a status of online or away to receive email tickets.
- Messaging conversations: An agent must have a status of online to receive messaging tickets.
- Calls: An agent must have a status of online to receive incoming call tickets.
Agents are automatically set to offline or away, as defined by an admin, when they are idle for longer than the idle status threshold. Additionally, if an agent forgets to set their status to offline, the status of the agent is automatically set to offline when one of the following events is detected:
- An agent closes the Agent Workspace without signing out (by closing down their computer or browser window or putting their computer to sleep)
- An agent’s connection is lost due to a network outage
See Setting your unified agent status with omnichannel routing.
- Assignment method:
-
Highest spare capacity: The standard omnichannel routing
configuration assigns work to the available agent with the most spare
capacity for the channel.
- Agents must have spare capacity to be eligible to receive work through omnichannel routing. Spare capacity is defined as having fewer open tickets assigned than their maximum capacity for that channel. See Creating capacity rules to balance agent workload.
- If more than one agent has an eligible status and spare capacity, the agent with the highest spare capacity for the relevant channel is assigned.
- If more than one agent has an eligible status and the same spare capacity for the relevant channel, the ticket is assigned to the agent who hasn't been assigned a ticket from the relevant channel in the longest time. Omnichannel routing treats re-opened tickets as assignment events.
- To be assigned an inactive messaging ticket (more than 10 minutes without a reply), an agent must have spare capacity. Whether inactive messaging tickets count towards an agent's capacity depends on your routing configuration.
- Round robin: Assigns the work to the available agent who's gone the longest time without being assigned work for the channel. Agents still must have spare capacity to be assigned work.
-
Highest spare capacity: The standard omnichannel routing
configuration assigns work to the available agent with the most spare
capacity for the channel.
- An agent's skills:
- An agent must have the same skills as the ticket in addition to having an eligible status and spare capacity.
- If you configure a skills timeout, tickets are assigned without regard to optional skills if an agent with all of the matching skills is unavailable for a specified duration after a ticket reaches the front of the queue. If a skills timeout isn't configured, all skills are treated as required and tickets will sit in the queue until an agent with the matching skills becomes available or a call reaches the maximum time in queue and is sent to voicemail. See Using skills with omnichannel routing.
Here's an example of a scenario for omnichannel routing:
- An important VIP end user has an urgent issue that needs to be resolved.
- They submit a ticket using the email channel.
- The account admin has set up a trigger for the account to add the auto-routing tag to these tickets and then assign a group, priority, and skills.
- After the triggers fire, the end user's ticket is matched to an omnichannel routing queue and inserted based on the ticket's priority of Urgent and it's eligible-for-routing timestamp.
- Omnichannel routing now assesses the ticket based on agent skills, status, and capacity.
- The routing system first understands that three agents are available for work.
- Second, it identifies that two of the agents have the skill (German language) required for the ticket.
- Finally, it finds which of those two agents has the most spare capacity for emails and assigns the ticket to this agent.
Reassigning messages and calls in omnichannel routing
Messaging conversations and calls require time-sensitive responses. Therefore, omnichannel routing has special reassignment logic for each. For more information about how tickets enter and leave the queue to be routed by omnichannel routing, see Understanding how omnichannel routing orders tickets in a queue.
Reassigning messaging conversations and chats
With reassignment timing, a message or chat can be reassigned to another agent in the group if the original agent does not accept the work within a specific time threshold. The default threshold is 30 seconds. On Enterprise and above, that threshold can be customized.
The reassignment timing setting must be turned on during configuration to reassign messages automatically if they aren’t accepted within the specified time. If that setting isn’t enabled, the routing engine will keep trying the same agent.
Reassigning incoming calls
When a call is offered to an agent, they can choose to accept or decline it. If the agent declines the call or doesn't answer within 30 seconds, the call is returned to the queue and assigned to another available agent. The call will continue to be offered to available agents in a round-robin fashion until the maximum queue waiting time expires. When using skills-based routing for calls, you can leverage the skills timeout settings to "overflow" the calls to agents without the matching skill when needed; you can also use custom queues with primary and secondary groups to accomplish this "overflow" behavior.
- Hours since created > (calendar) Less than >1
- Status > Less than >Solved
- Channel > is > Phone call (incoming)
After a call ends, the ticket generated by the call is removed from the omnichannel routing queue. If an agent needs to add more information to the ticket after a call ends, they must manually find the ticket, either by searching or using a view.
Summary of features
Omnichannel routing has a broad scope, so here's a quick reference of features and functionality.
Channels supported by omnichannel routing
At a high level, omnichannel routing can be used to route tickets from email,
messaging, and calls. However, in business rules, these categories of tickets
are broken down into via
types. The
following lists show the supported via types (referred to as channels) as they appear in
Admin Center business rule conditions.
- Web form
- Web service (API)
- Closed ticket
- Ticket sharing
- Facebook post
- X (formerly Twitter)
- Web widget
- Mobile SDK
- Side conversation
- Merge
- Legacy channel framework (any_channel)
- SMS texts (through Talk)
- Native messaging
- LINE
- SMS (through Sunshine Conversations only)
- Facebook Messenger
- Telegram
- X (formerly Twitter) Direct Message
- Google RCS
- Apple Messages for Business
- Google Business Messages
- KakaoTalk
- Instagram Direct Messenger
- Sunshine Conversations API
- Chat (only supported in some circumstances)
- Phone call (incoming)
- Phone call (outgoing)
Summary of features by plan
The availability of omnichannel routing features varies by plan level. The following applies to your Zendesk Suite plan level, or to the plan level of all individual products:
Team | Growth | Professional | Enterprise |
---|---|---|---|
Routing email, messaging and call tickets | Routing email, messaging and call tickets | Routing email, messaging, and call tickets | Routing email, messaging, and call tickets |
Routing based on capacity and agent status | Routing based on capacity and agent status | Routing based on capacity, agent status, skills, and queue | Routing based on capacity, agent status, skills, and queue |
Default unified agent statuses | Default unified agent statuses | Default and custom unified agent statuses | Default and custom unified agent statuses |
Focus mode for agents working on messaging and calls | Focus mode for agents working on messaging and calls | Focus mode for agents working on messaging and calls | Focus mode for agents working on messaging and calls |
Include or exclude inactive messaging tickets when calculating agent capacity | Include or exclude inactive messaging tickets when calculating agent capacity | Include or exclude inactive messaging tickets when calculating agent capacity | Include or exclude inactive messaging tickets when calculating agent capacity |
Automatic assignment of messaging tickets | Automatic assignment of messaging tickets | Automatic assignment of messaging tickets | Automatic assignment of messaging tickets |
Assignment based on spare capacity or round robin | Assignment based on spare capacity or round robin | Assignment based on spare capacity or round robin | Assignment based on spare capacity or round robin |
Message reassignment | Message reassignment | Message reassignment | Customizable reassignment time |
Routing in order of soonest SLA breach or highest priority | Routing in order of soonest SLA breach or highest priority | Routing in order of soonest SLA breach or highest priority | |
Reassignment of reopened tickets when the assigned agent is unavailable | Reassignment of reopened tickets when the assigned agent is unavailable | ||
Custom omnichannel routing queues | Custom omnichannel routing queues | ||
Up to 5 custom statuses | Up to 100 custom statuses |
Related articles
See the following articles for more information to help you get up and running with omnichannel routing and agent statuses:
- Turning on and setting up omnichannel routing
- Managing your omnichannel routing configuration
- Understanding queues in omnichannel routing
- Creating capacity rules to balance agent workload
- About unified agent statuses
- Adding unified agent statuses
- Managing unified agent statuses
- About using skills to route tickets
260 comments
Barry Neary
cc: Liv Tornquist
1
Stephen
Hi,
Is there reporting available or the ability to tag tickets that are assigned by omnichannel routing ?
The aim is to be able to see how many tickets are being manually assigned to an Agent (by themselves or by another Agent) vs how many are being auto-assigned.
0
James Molina
Isobel Petty. Yes! Well, there can be. Omni channel routing requires a tag on tickets to be eligible. So you can use the tag or create a custom attribute with that tag for a report!
0
Zach Gilbert
So a bit frustrated here. So some help would be great. I've put off enabling this feature for a bit, but took the plunge yesterday to turn it on for my team.
I understand that chats and calls will be routed and do not need the tag, but I'm stuck with voicemails. At first, I did not set a trigger for VM and noticed they would not trigger through Omni, cool, so I just need to tag my Omni tag on VM tickets, done. Omni still does not want to route VM tickets.
I've got a support ticket open but to be honest, not getting the advise or help I need, so hopefully a PM can help here.
Am I doing something wrong? Why isn't Omni routing VM tickets to my support team?
0
Barry Neary
cc: Rohan Gupta
In short, routing VM tickets is on the roadmap , Rohan: can you give a bit more detail here?
0
Zach Gilbert
Barry Neary thank you for this. I am not sure why on ticket #12304741 the agent didn't see this and let me know. The subject was "omnirouting not routing voicemail tickets, even with tag.". They then went to tell me I didn't have it set up correctly.
This is super important and not too sure why it wasn't part of the initial rollout.
Also, it appears that tickets made via API are not routed either. Any ETA on that?
0
Barry Neary
Hi Zachary
The API tickets should be routed today by the routing engine - can you create a ticket with our customer care with a ticket ID example?
0
Zach Gilbert
Thank you for confirming that, Barry Neary. Figured out the issue for the API ones, that was 100% on me.
0
Stephen
Hi James Molina,
Appreciate that feedback, but this isn't necessarily what I want to report on.
I want to see if a Ticket was assigned via the routing engine or if a ticket was assigned manually by an Agent. Even with the routing tag applied, an Agent can be manually assigned a ticket either via another Agent or by cherry-picking a Ticket from the queue.
What I would like to see is how many Tickets are being manually assigned. Potentially if I could create a Trigger to tag tickets that are manually assigned it would give me an idea on manual assignment, but I don't see a way to build a Trigger with that kind of function.
0
Ola Timpson
Stephen - I think you could do a trigger along the lines of "Current User is Agent" and "Assignee is changed" to get what you need
0
Tobias Hermanns
HI Stephen,
i have Ticket Created > Add Tag "Omni" > change / add to Group.
If Agents pick tickets without "Omni" Tag, they missing some Actions i.e. "Prio".
I have then a Trigger > Agent try to Solve > Prio missing > Flag some Ticket Field in backend.
This can give you an Report in Explore, which kind of Tickets go through engine and which kind of tickets picked by Agent.
----
Another One is simply to have two Trigger and 1 Ticket Field i.e. "Omni Routing"
You can say once Tag "Omni" is set > Omni Routing Filled: by Engine
If Agent Grab Ticket without this Tag > Omni Routing Field: "Self Pick".
I hope it bring you some idea direction :)
Tobi
0
Permanently deleted user
You said that the tickets need to be "Open" or "New" status to be automatically assigned.
But when I tried to set status as Pending & On-hold, the tickets still can be automatically assigned (how come)? is there any updates by Zendesk?
0
Permanently deleted user
Hi Anton Verhelst
Did you tried that Pending status on Messaging Channel?
Because we got the same issue.
0
Destiny
I will go ahead and open a support ticket for you so that we can delve deeper into the issue you're encountering with the automatic assignment of Pending and Onhold tickets.
0
BREANNE BROCK
Can we limit Omnichannel to only Messaging and Email? We do not want to include Talk in our omnichannel routing.
0
Destiny
The Talk product remains integrated within the Omnichannel routing system, but you can still accomplish your specific needs by utilizing Custom agent statuses. This feature allows you to set your agents' availability in Talk, as demonstrated in the provided sample screenshot:
I hope this helps.
0
Barry Neary
Hi Alan Yedid
Yes, it can
0
Stephanie Young
Is Omnichannel routing ever going to be available to users who still use live chat?
We have no intention of moving over to the messenger, and because of this, we cannot use this feature. It's pretty frustrating.
Does anyone feel the same?
0
Trudy Slaght
Stephanie Young Honestly? Not really. We enabled omnichannel for less than 24 hours and the serious issues it had led to us immediately disabling it. For starters it doesn't understand that one agent can't handle two live channels at the same time - so it was designed as if accounts don't use more than one live channel like chat and talk. Additionally, whoever logged in first in the morning would get dumped all the overnight messaging conversations.
Messaging and agent workspace has been a net positive once the adjustment period passed (though we hadn't customized chat much) but omnichannel routing was a big disappointment. We haven't trialed it again since the initial roll out because over a year later it still routes multiple live channels to an agent at the same time.
0
Jacquelyn Brewer
Trudy Slaght Thanks for this feedback. We've received a ton of feedback similar to yours since the initial release of omnichannel routing and now provide many additional configuration options to address these concerns.
Messaging activity routing enables omnichannel routing to account for inactive messaging tickets in an agent's capacity and, accordingly, not assign all of the overnight inactive conversations to the first agent online in the morning.
Focus mode is another setting we'll be releasing soon that configures omnichannel routing to allow agents to focus on a single live channel at a time. This would prevent someone currently working a call from being offered or assigned messaging conversations and vice versa.
If you have more concerns or product feedback, I'm sure Barry Neary would appreciate your perspective. We're working hard to continue improving this feature. You can create a post in the Zendesk community forum.
0
Nevo Pardess
Is there any way to ensure that a ticket is routed to an agent, but it won't open automatically on his screen? (Without turning auto routing off)
We have agents who are typing an answer on one Whatsapp for example, a new WhatsApp is routed to them, and it opens this new ticket. This might lead to mistakes.
0
Destiny
Thanks for getting in touch! It seems that you're looking to have tickets automatically directed to agents without the tickets popping open instantly—instead, you prefer them to sit quietly in the agent's queue.
Unfortunately, within the current framework of our Support Interface, there’s no built-in feature that assigns a ticket or WhatsApp message directly to an agent without prompting the agent to click an 'accept' button. Our system is purposefully designed this way. It allows agents to gauge their current workload and decide if they can handle another ticket. Automatic routing without this step could potentially lead to agents becoming swamped with too many tickets at once. We believe in giving the agents the freedom to either accept incoming tickets or let them be reassigned, ensuring a manageable flow via our routing and assignment mechanism.
I hope this explanation helps to shed some light on the matter. Should you have any more inquiries or need additional information, feel free to ask.
0
Emily Hillerman
How will omni-channel routing work with Tymeshift scheduling? I have Tymeshift setup to assign agents to different workflows based on forecasted volume. Will omni-channel pay attention to the Tymeshift scheduling and only assign them tickets within whatever workflow they are assigned at the time? I wouldn't want someone currently on the schedule to work emails or to work on outside of Zendesk tasks to have a phone call ring in, for example.
0
Barry Neary
Hi Emily Hillerman
The plan is to have whatever schedule you have setup in Tymeshift to be pushed down to the routing engine. So as you say if an agent is due to work on emails in the morning and calls in the afternoon then their agent status would automatically change to reflect that (in the morning status = ‘Email only’, afternoons change to ‘Calls only’)
0
Emily Hillerman
Barry Neary Thank you for that update. You state “the plan.” Is this a change that will be coming out later? If so, approximately when do we expect that feature to be available?
0
Robert Elliott
Barry Neary Would the routing work with, combined workstreams as well?
1
Barry Neary
No firm date yet - potentially end of year
0
Daniel Codesal
Hi, is there an update on when inbound call tickets will be treated the same as email and messaging tickets? We often have complex queries which means our agents are required to continue working on the ticket after the phone call has ended, so the ticket becomes a web form/email ticket, but isn't included in agent capacity totals.
1
Barry Neary
Hi Daniel
I dont have a firm date at present, but will revert when I do
cc: @...
1
Badirile Letloenyane
Barry Neary zendesk support Destiny I have a question, or a case in point. If I have not enabled omnichannel yet and plan to whilst I have a backlog of lets say 500 unassigned tickets under NEW status, how will omnichannel route and assign these tickets amongst my agents considering that I have a team of less than 20 agents which rotate occasionally in shifts?
I do not want to set them up for failure with flooding them with tickets to their names and affecting my SLA.
0