Omni-Channel Routing

Hi, I need more help with understanding the logic behind omnichannel routing.

Let’s imagine a scenario where there is always 10 people in the queue for both Chat and Calls.

How would the system make sure that calls come through that have a higher precedence? As a person can handle 4 chatts and there is a constant inflow of chats. This means that when an agent close 1 of the 4 chatts that agent is handling, wouldn’t another chat just come through? This way the agent will be blocked and never reach 50% free capacity.

Or will the system prior calls and not distribute any more chatts to an agent even though that agent have space for 1 more chatt, but not a call.

Hi Martin, I am reviewing and will respond shortly


You are correct that a person working on 4 chats all day, while there chats in queue, will always have at least 3 chats.

You can (but probably only want to do it as priority override only) route a call to a person with 4 chats.
To do that, set required spare capacity for calls to 1% and capacity share taken by chat to 24% - easy enough.

A more proper way of gracefully moving a person form chats to calls is to set their next state to “Not Ready” and let the chats finish. Once they all finished, the moment agent becomes ready they will get a waiting call (by precedence they trump chats), and they will keep getting calls as long as there are any in queue.

I hope this helps - will need more of your business case to expand on the above.


Thank you for the answers. But I think there might be an error here in the logic so I will try to explain.
Also in my scenario above, what function does the “Precedence” setting have? It sounds like it only works when a call and chat interaction comes at the exact same time(highly unlikely).

What I have noticed is that even in a medium busy team like mine, having agents being able to handle multiple chat interactions but not calls can have terrible consequences.

This setup(we only use chat and calls) created a scenario where I had a customer sitting for 20min waiting for an answer. Just because chats keept coming in and the there was never a time when an agent was without a chat.

In this example I expected Precedence to take control over the situation and stop assigning chats to at least 1 agent to make room for the call in the queue. Or assign chats to agents that had only 1 active chat as they with above setup they can handle 2 chats at the same time.

Would it be possible for you in a developer meeting bring up this scenario and see if the logic might need to change?

My goal is for agents to only handle either 1 call or 2 chats. Never a call+chat at the same time.

As I understand it the precedence comes into play first.

If a call and a chat are waiting then I will get the call first since it has a higher precedence.
If I already have a chat, I can not get voice call as I need 100% available space and the chat I am on is taking 50%. The only other interaction I can get is a chat(in this case). My guess (for BP ) to confirm is it steps through the precedence with the available interactions using the capacity of the agent and the channel requirement to decide what interaction goes where?

Note email is listed as using 25% of capacity. This would indicate I can take 4 emails at once – however the Required capacity is set to 100%. This will limit me to 1 email at a time.

Assigning each interaction to an agent is done by least occupied. For chat that means it can potentially give every agent one chat. You can step the skill levels in the Find agent block to ensure each agent gets two chats.
Ie Agent 1,2,3 have skill levels of 70, 80. 90 in a chat service. The find agent block would send all chats to skill >=90 for 1 sec, skill >=80 for 1 sec and skill >=70 for 1 sec and finish with >=1

Possible down side is the high skilled agents become defacto chat agents.

Hope that helps or give some ideas?

Thank you regerm,

Yes I have been thinking about using skills to overcome the problem or creating Chat and Voice “teams”.
My issue is that with a small team of 5 people that have a steady income of interactions. This will not utilise everyone in the best way.

The only way forward I can think about is an option where we can tell BP that instead of giving the next interaction to the person with most total capacity. Give it to the one with capacity left in the category they already have an active interaction in.

Very elegant solution with graded skills to keep some people available, Roger!

Feature-wise, one thing we could possibly add would be something along the line of the following:

  1. in case of a higher precedence interaction being in queue,
  2. when the agents are busy with multiple lower-precedence interactions that take and require less agent capacity
  3. switch the most matching agents to Not Ready automatically until their capacity reaches the level required by the waiting higher precedence interaction(s)

This would cover the “call waiting while agents are busy with overlapping chats” case, but the caller would have to wait for a duration of one chat or even more to get their call answered.

Your skill stacking idea would work better, at the expense of some agents sitting idle. You would almost want to rotate the skill stacking between team members, but then, while draining chats for voice, they will be handling less chats than they could.

How about a simple interim solution that you might be able to push through.

Under call center configuration and omnichannel settings, add a new setting that controls if calls should go to the agent with longest idle time or to agents with less capacity space.
Enabling this function would instruct BP to focus on filling up an agents capacity to 100% first before going to an idle agent.

It doesn’t fix the problem fully as a high stream of chats would still block all agents from receiving calls. But it would be a good interim solution until a more advance function would be available.