"Skill based Routing" doesn't work in v20 Update 4 - No transfer to skill groups 2-5

PBX128

Premier Customer
Joined
Oct 31, 2024
Messages
161
Reaction score
110
Hello,

probably since the update to v20 Update 4, we have problems with our queues. “Skill based routing - signal all” and “Skill based routing - round robin” do no longer work as expected. Calls are only signaled to the single agent in skill group 1. When his ringing time has expired, this agent in skill group 1 is called again, and again, and again,.... In the Manager Panel, you can see that the ringing time starts again for this agent. The call is never forwarded to skill groups 2-5.

Can others confirm this?
How can the problem be solved?

Kind regards
 
Last edited:
The calls are sent to skill set numbers 2 onwards when an agent is unavailable, meaning the agents in skill set 1 are either logged out from the queue or on an existing call.

This will NOT forward the call to skill set 2 if they are just not answering their phones.
 
@NicholasP_3CX this topic of such a ring strategy, which would send calls to numbers 2 in addition to numbers 1 if numbers 1 did not answer, is recurrent on this forum :)
Would be really nice if product team / dev team could dig into this ;)
Many of our customers do expect such a behavior.
Thank you very much !
 
Hello,

Normal Prioritized Hunt achieves that calling mode - just put the most skilled agents first.
The Skilled based modes are really meant to benefit the end user by targeting the most skilled agent available continuously.

Of course a call center can have a policy where other agents pick up the call if the higher skilled ones are not doing it, either manually or by transferring to another queue without Skill routing after a short DNA period.

Best,
KS.
 
Hello KS,

Thank you very much for your reply.

Normal Prioritized Hunt achieves that calling mode - just put the most skilled agents first.
Unfortunately, as per its design, it has a "one agent by level limit". You can't ring 3 level-1 agents at the same time, then add 3 other level-2 agents etc...

The Skilled based modes are really meant to benefit the end user by targeting the most skilled agent available continuously.
Certainly meant to be used in call-centers, where agents are trained as agents, and are used to put themselves in Away / DND mode.

Of course a call center can have a policy where other agents pick up the call if the higher skilled ones are not doing it, either manually or by transferring to another queue without Skill routing after a short DNA period.
Unfortunately this won't work in a non call-center world, where users / agents are not focused on the call flow.
And transferring (even automatically) the call to another queue has several drawbacks :
- it breaks queue statistics, well make them really hard to read ;
- we loose the the initial call topic if call is transferred to a queue named differently.

We are in the following situation : we have many customers, users, who are not in call-centers, and for whom it's really difficult / not understandable to put themselves in Away / DND mode, when they are not available, to give a chance for the call to reach level-2 agents.
They are very lazy with their call solution (that's a reality), and typically won't put themselves in DND when they go to the toilets (that's an example of course), they simply don't care...
Their organization needs to have several agents ringing at the same time, to minimize the waiting time for the caller, for a better caller experience.
And, if these level-1 agents do not answer, goal is to add other level-2 agents to ring, in addition to the level-1 ones (they could finally answer), to maximize chance for the caller to talk to someone, thus avoiding loosing business.

Hence the request of a ring strategy which would meet these requirements.

For now, we generally create dissatisfaction, as we can't ring as they expect.
We experienced a level-1 queue to transfer to a level-2 queue, but absolutely not convenient to maintain, has a negative impact on caller experience (on hold music restarts, caller thinks he has moved elsewhere etc...), and totally breaks (queue) statistics reading.

Thank you again for your consideration into this ! :)
 
This has been the behavior since Skill Based Routing was introduced in 3CX v16 and a pain point as a result (look at my posts around that time). Our solution has been to introduce a script that logs agents out of the queue after they miss a queue call, but it's not perfect. I know that VOIPTools has a tool similar to this for the same reasons if you are looking for something commercially available.
 
  • Like
Reactions: Evolute IT
Yes, this is a frequently requested feature in skill-based routing: that the same agent can be used in multiple skill levels.

A very inelegant solution is to set up a dummy extension for each user with every additional skill level. Either set up a direct forwarding from the dummy extension to the actual user, or enter the user's extension number (provided it has at least 4 digits, or alternatively set up and use a SIP ID) under the mobile number and configure parallel ringing.
 
In essence though, for what you are describing, you could have multiple plain Ring all queues, first queue level 1 people only -> DNA -> level 1 +2 -> DNA -> level 1 +2 +3 -> etc.

Would handle exactly what you are describing. And of course in this queues you could have different ring strategies to better optimize based on the agent mix.
 
You're right, we already experienced this.
But absolutely not convenient at all to maintain, especially maintaining the agents in the 2 or 3 queues.
Also think about 3CX with hundreds of queues, then you multiply at least by 2 or 3, depending on your numbers of levels...
It also has a negative impact on caller experience (on hold music restarts, caller thinks he has moved elsewhere etc...).
And totally breaks (queue) statistics reading, and missed calls listing.
We then went back from this while migrating from v18 to v20...
 
Hi,

I appreciate that it can add complexity to a busy system. Still the current setup follows a specific logic that is useful to many.

I would suggest posting this detailed requirement in the Ideas forum as to my mind at least it would be a new Skilled based routing mechanism as per current options, that could be termed as "cascating" - as it drops to a lower skill but takes the previous ones along for the ride.
 
  • Like
Reactions: rlg and PaulC_3CX
Well, now there are two consecutive wishes:

1) Use the “ringing time” setting in “Skill based routing - signal all” and “Skill based routing - round robin”.
-> At the moment you can configure the "ringing time" for those routing options, but it doen't do anything. Bug?!
-> Wish: When the "ringing time" is reached, the call sholud be moved to the next skill group level

2) Cascating
-> Wish: Additional option for “Skill based routing - signal all” and “Skill based routing - round robin”:" keep ringing all the previous skill group levels when escalating


For me Number 1 is not a point for the idea section, as I see it as a bug. Or do I miss something?
 
Here's some related / same ideas already posted:

I'm sure there is more
 
For me Number 1 is not a point for the idea section, as I see it as a bug. Or do I miss something?
It does a fresh poll of the Skill 1 agents in ring All, and that shows in their statistics in pollings missed. And if Round Robin it will switch to the next agent of the same skill set.
 
Hi,

I appreciate that it can add complexity to a busy system. Still the current setup follows a specific logic that is useful to many.

I would suggest posting this detailed requirement in the Ideas forum as to my mind at least it would be a new Skilled based routing mechanism as per current options, that could be termed as "cascating" - as it drops to a lower skill but takes the previous ones along for the ride.

Thank you @KyriacosS_3CX for your interest into this, much appreciated :)

Unfortunately (strangely ? anyway...) I'm not allowed to post into the Ideas section...
But @SweetAction listed above some of the related topics already posted in the Ideas section (and of course there are many other topics / posts like this one referring to what is seen as a Skill Based Routing bug).

Thank you for the Cascating name :)
At least we can now put words on this !
So, to sum-up, we need a new ring strategy, deviated from the Skill Based Routing Ring All, but with the following modifications :
- ring Level_n+1 agents, after Ring Time has passed, whatever the Level_n agents' status is ;
- still ring Level_n agents when ringing Level_n+1 agents.
This could then be called Cascating Ring All.
Not really sure though Cascading Hunt Random Start / Round Robin / Fewest Answered would make sense here.
So perhaps Cascating (only) would be sufficient.

Skill Based Routing could then still be used as the strategy to target the most skilled agent available continuously, especially for call-centers.
And Cascating to try to target the most skilled agent while gradually polling others to avoid missed calls, more suitable for non call-flow focused "agents".

Thank you again, and let's then stay tuned :)
 
Instead of such a cascating function, it would be sufficient for us if the same agents could be used in multiple skill levels within a queue. Currently, you are limited to a one-time only assignment per queue.

This is a significantly more flexible scenario. Only when there is a larger number of agents in such a queue might it become somewhat confusing. However, it would still be a coherent scenario, and such a queue can also be efficiently managed via Config API.
 
@KyriacosS_3CX, may we ask you some news, did you manage to discuss the Cascating ring strategy internally ?
Does this need / idea / concept move forward ? :)
Thank you very much !
 
Hello,

I know that in general there is a discussion for possible new strategies.
 
  • Like
Reactions: rlg
Thank you for the info !
This topic would then for sure nicely fuel and help the discussion :)
Note that there's also this frequent strategies topic / question.
Thank you again !
 
  • Like
Reactions: KyriacosS_3CX

Forum statistics

Threads
111,954
Messages
589,919
Members
164,851
Latest member
DrunkeMeister