Skills can be used as a standalone routing method for Support tickets, or as one of several factors considered for omnichannel routing and applied to tickets from email (including web form, side conversations, and API), calls, and messaging. This article explains more about each of these options.
Understanding skills
Skills are agent attributes that determine their suitability to work a ticket that requires them. They can be something the agent is able to do, as we'd typically think of a skill, or another type of attribute, such as the agent's location, timezone.
When adding skills, you'll create skill types to categorize the skills. For example, you could have agents dedicated to supporting specific products; in this scenario you could create a Product skill type and add ProductA, ProductB, and ProductC as the skills.
You can define up to 10 skill types. Each skill type can contain up to 30 skills.
- A name
- A way to add that skill to tickets
- A set of agents who have that skill
Setting up skills-based routing
After that, you either need to configure skills as part of your omnichannel routing configuration, which automatically assigns tickets to agents, or define one or more views for your agents to pull tickets from based on their skills.
Using skills with omnichannel routing
Omnichannel routing with unified agent status allows you to direct tickets from email (including web form, side conversations, and API), messaging conversations, calls, and chats in some circumstances to agents based on their availability and capacity. On Professional plans and above, tickets from all of these channels can also be routed based on priority and skills. Turning on skills in omnichannel routing means you're routing based on agent status, capacity, skills, and ticket priority all at once.
When using skills in omnichannel routing, agents must have skills that match the ticket in addition to having an eligible status and spare capacity for that channel of work. You have the option to enforce the skill matching, meaning you wait for an agent with the matching skill to become available, or to let skills time out and "fall back" to the omnichannel routing model without optional skills if agents with the matching skills aren't available within a specified amount of time after the ticket is created. This flexibility gives admins the most control possible over their workflow without requiring their manual intervention.
Skill timeouts work as you'd expect for email tickets, which are always assigned to agents by omnichannel routing. If an email ticket can't be assigned to an available agent that has all of the matching skills, after a specified time, the optional skills are dropped in order of priority from low to high. 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.
However you decide to configure skills in omnichannel routing, tickets from all channels are automatically assigned (email) or offered to (messaging and calls) to the best-suited available agent. This has many benefits, including faster response times and more equitable workloads for your agents, and can also improve your end users' experience since they're more likely to interact with agents with specialized skills to meet their needs.
For more information, see About omnichannel routing, Turning on omnichannel routing, and Managing your omnichannel routing configuration.
Using skills with Messaging and Talk tickets
Unlike standalone skills-based routing, you can use omnichannel routing to route messaging conversations, calls, and sometimes chats based on skills, too. For all channels, tickets are created as soon as the request enters the queue. That means triggers can run on them. This is how skills are applied to tickets in the queue so that omnichannel routing can match the best agent to the ticket. Skills added to the ticket after the initial ticket creation and triggers firing aren't considered when routing calls.
Configuring the skills timeout setting for omnichannel routing is particularly important for calls, messaging conversations, and chats. Doing so means omnichannel routing first attempts to assign the work to an eligible agent with all of the matching skills. However, if an agent with the matching skills is unavailable for a specified amount of time after the ticket reaches the top of the queue, omnichannel routing stops considering the optional skills, in order of priority from low to high, and assigns the ticket to the first available agent in the appropriate groups that has spare capacity.
For calls, omnichannel routing treats all skills as low-priority optional. For email and messaging tickets, the priority level specified by the triggers is respected.
- All skills on tickets are considered required.
- Talk tickets remain in the queue until they reach the maximum queue wait time and are sent to voicemail.
- Messaging conversations, chats, and email tickets remain in the queue indefinitely until an agent with all of the ticket's skills becomes available.
Using triggers to add and update skills on tickets
When omnichannel routing is turned on, you can use triggers to assign skills upon ticket creation and ticket updates. This provides significantly more flexibility and responsiveness than the skill-specific routing rules, which can only apply skills when a ticket is created. When using triggers to apply skills to a ticket, you can mark each skill as optional or required. Optional skills are dropped from consideration, in order of priority from low to high, when a skills timeout occurs, while required skills never time out. Each skill that is dropped from consideration increases the number of agents eligible to receive the ticket and, in turn, increases the likelihood of it being assigned. For more information about adding and updating skills with triggers, see Adding and managing skills on tickets.
Using standalone skills-based routing
Skills-based routing is a great option if you're only receiving tickets via email, web form, side conversations, and the API. However, it functions more as a way to sort incoming tickets by skills rather than actually routing them directly to agents. When you use skills as a standalone routing solution, agents rely on Views based on skills to manually assign tickets to themselves.
For more information, see Using standalone skills-based routing.
45 comments
Chad Susa (Gravity CX - Zendesk Partner)
Great article thank you so much.
The point above says:
I could be wrong but this is a little confusing to me...or maybe a touch misleading.
AFAIK, a call will not sit in a queue until the wait time is reached. It will sit in a queue as long as there's at least one available agent still to be offered the call.
For example:
If a call enters the queue, the call will be offered to agent 1. If agent 1 declines or misses the call it will be offered to agent 2. If agent 2 declines or misses the call, the call will wait in the queue until agent 3 becomes available (finishes their current call). The call will then be offered to agent 3.
Let's say that the incoming call already offered to agents 1 and 2 has been waiting in the queue for 5 minutes until agent 3 becomes available. The call is offered to agent 3 but agent 3 also declines or misses the call.
As I understand it, the call will not wait in the queue for the remainder of the timeout period (20 mins) and instead will go to Voicemail (if configured) or the next step in the queue (overflow etc etc). This is because the call has been offered to all agents in the queue but none have accepted the call. (ie: the call will not be re-offered to agents it has already been offered to and declined/missed by those agents)
So in this scenario, the call is only in the queue for 5 mins, not the queue timeout period, before going to the next point in the flow as all agents in the queue have declined or missed the call.
Have I understood that correctly? Or maybe it's different when using Omnichannel routing - which would be awesome.
0
Barry Neary
cc: Rohan Gupta
0
Rohan Gupta
Hi Chad,
We have indeed improved this functionality with Omnichannel routing.
In the case mentioned - rather than the call going to voicemail after trying all the available agents, it will keep on getting routed in the round robin fashion to available agents till the maximum queue waiting time expires - increasing the chances of call getting answered.
Article for more details.
Thanks
Rohan
0
Chad Susa (Gravity CX - Zendesk Partner)
Hi Rohan Gupta
This is awesome.
Thanks so much for clearing this up. This is a great feature and I'll be advocating for customers to move to Omnichannel routing for sure, especially when they use Talk.
Cheers
Chad
PS: And thank you Barry Neary for passing this on and being so involved on the article comments!
0
Dana Royle
Hi,
I hope you are well.
Can you please advise if Skills Based Routing based on language is available for Talk?
When testing, it works as required if the End User profile already has the correct language in. But, what if there is no existing EU profile or they call from another number. We have found that they will go to English as our default language which is not going be as required.
Is there something we have not considered for this to work as needed?
Thanks,
D
0
Jacquelyn Brewer
Dana Royle You could define triggers that looks for ticket comments containing the string "Call from: +1" or whichever country codes you might need to specify, and use those to make educated guesses about the caller's preferred language. For example, "Call from: +33" indicates the call is coming from France, so you might want to add the French language skill to that call's ticket.
Using skills in omnichannel routing to overflow calls to other agents is a workflow example that describes what the conditions might look like to assign language skills based on a call's country code more detail, and Using skills to route calls to specific agents describes the basic flow of using skills to route calls to agents. I hope this helps!
0
Stephen Whyte
My tier 2 support techs were set as overflow on Talk when no tier 1 techs were .available. This is especially important in the evenings when staffing is light due to call volume. Since that functionality is not supported in OCR, what is the workaround?
0
Barry Neary
Hi Stephen Whyte
The current workaround is to give a skill to the tier 1 techs (could call it 'Tier1') that they have but the tier 2 techs dont.
Then have both sets of agents in the same group. When a tier 1 call comes in, add the 'Tier1' skill and assign it to the group. Set the skill timer so that it will look for a tier 1 agent for a certain amount of time, then drop the skill and give it to the next available agent.
With the release of routing queues in Q1 this overflow will be supported without the use of skills
Barry
0
Stephen Whyte
Barry Neary Thanks for the reply Barry!
If I add my tier 2 techs to the tier 1 group, will they also get emails as well (based on the capacity rules of the group)? Our tiered system is setup so that our T2 & T3 techs only received escalated email requests, not initial contact emails.
0
Barry Neary
Hi Stephen, if the tier 1 tickets have 'Tier1' skill and tier 2 agents dont have that skill then they wont receive tier 1 tickets unless there are no tier 1 agents available....
One thing to be aware of, currently when you set the skills expiration timer, that will remove the skills requirement from the ticket and give it to the next available agent independent of skills. But the next available agent will need to do something - by do something I mean solve out a ticket, or set a ticket to pending, or change status. Essentially any of these actions will tell the routing engine they are available and can be assigned a ticket on which the skills have now expired.
This is a limitation we will be fixing, so that in the future as soon as the skill expires, the routing engine will proactively check all agents to see if they can be assigned this ticket.
0
Stephen Whyte
Barry Neary can you clarify for me if the 'Group' that I'm adding my T2 agents to is in the People or OCR section?
0
Barry Neary
Add the Tier 2 agents to the same group as Tier 1 agent in the Team-Groups area. You can give the tier 2 agents a different max capacity or the same as the tier 1 agents using the Capacity Rules section
0
Jason V
Following this, Barry your point about the rep needing to complete an action is precisely a struggle were facing.
Currently if we have 3 agents in group with skill A, the call does not remove the skill and open up to rest of group until they complete an action (like toggle offline and back on) - this in practice is not reliable as Agents who are free are not notified in a timely matter.
1
Barry Neary
Hi Jason
This is a limitation we are working on addressing. In the meanwhile, if an agent hangs up a call or does anything that affects their capacity - they should receive the call from which the skills have timed out
0
Jason V
Barry, what does this mean:
if an agent hangs up a call or does anything that affects their capacity
We've tried to replicate this by having free agents change ticket statuses, but nothing seems to trigger the call. The only success we had was if an agent toggles offline/away and then back to available while a caller is in queue.
0
Barry Neary
Hi Jason V
Can you create a ticket with our advocacy dept so we can take a closer look - if you can include the specific ticket id in that ticket then our engineers can look to see what happened
Barry
0
Jason V
Hi Barry... I will but just a note I have had multiple tickets about this, but it takes weeks and multiple back and forths to get to the same spot - no one knows about this issue. You may be the only Zendesk employee that gets this problem and the inconvenience it creates with skills/routing.
We're missing more calls than we can pick up every day due to people left in queue.
1
Barry Neary
Hi Jason
Talk capacity is freed up either by:
1) A call is hung up and the wrap up time expires (if you have wrap up time configured)
2) A call is hung up (if you dont have wrap up time configured)
The ticket status doesnt affect the agents Talk capacity
Barry
0
Lauren Giblin
I use a combination of Language and Product based skills, however I need to Language based skills to supersede the Product skills. So if I have an English speaking agent they should not be assigned any ticket with any other language. Is the only way to do this is to have any language trigger remove the Product skill or is there something else I can do to keep the additional Product Skill as well?
1
Barry Neary
This feature is on the roadmap for H2 2024
Barry
0
Asen Georgiev
Barry Neary do you have an ETA on when can we expect the solution to the limitation related to the skills timeout, so that as soon as the skill expires, the routing engine will proactively check all agents to see if they can be assigned this ticket?
We just launched our CS operation using this feature, but it results in a lot of messaging tickets staying in the queue, waiting for one of the events (capacity change, status change) to happen to be assigned to an agent. It's a very negative customer experience and we decided to stop using it, until there is a fix for it.
1
Barry Neary
We think we can release this before end of June 2024
0
Barry Neary
But as always, no guarantees
0
Steven Hampson
I have a question about the skills timeout - where it states in the article:
“However, before an agent can be considered for assignment after a skills timeout occurs, one of the following events must occur: agent status changed, agent capacity changed, the agent's group assignment changed, or the agent's maximum capacity changed.”
Why is this? I have confirmed it in testing, but it means that you can have agents without a match sitting available, but if they do not have a change of status etc. the call is not routed to them and the caller left in limbo. Shouldn't the call route to the first available agent straight away after a skills timeout occurs, without any status or other change. This seems like a major flaw. Is this something that will be addressed or is there a reason for the logic?
Thanks,
Steven.
0
Barry Neary
Hi Steven Hampson
This is a known limitation that we are actively addressing and we should have a release in Q2 which means that agents will not need to ‘do something’ to be assigned the ticket once the skill is dropped
0
Steven Hampson
Hi Barry Neary
Excellent, thanks for the confirmation. That makes more sense, and good to know it will be addressed. I'll look out for further releases. :)
Regards,
Steven.
0
Stephen
Hi,
I have noticed some scenarios whereby Skills are not applied to tickets (typically this is related to a missing Trigger) - I would ideally like for tickets without Skills not to be assigned to Agents.
However, I am seeing tickets without Skills going to Agents.
Is there a way to prevent this happening?
0
Barry Neary
Hi Stephen
If a ticket doesnt have a skill then the system assumes it can be given to any agent.
Do all of your agents have skills? Or some do and some dont?
When a skill is attached to a ticket by a trigger, you could have that trigger set a tag on the ticket ‘skill_attached’. Then any ticket that doesnt have this tag is not assigned to a group?
Barry
0
Barry Neary
We are planning to introduce in Q3 ticket skills priorities, whereby you can add wheher a skill is a must have for a ticket or an optional skill. So for tickets that are going to L2, tech is a mandatory skill and language can be an optional. The optional skills will be dropped after the skills timeout occurs
Would this address your needs?
Barry
0
Barry Neary
Hi Ahmed
Yes, you can use triggers to give different types of tickets different skills priorities for the same skills. So tickets bound for billing queue for example can have Spanish as must have, whereas those tickets bound for general L1 queue the Spanish skill can be nice to have
0