I want to solve the following situation:
I have three skills (A, B, C) with different skill levels for each agent. C is the "everything else topic" . The caller selects the toppic which is equivalent to the skills. Of course I want the call to be forwarded to the best skilled agent.
Let's assume the calles selects topic A and all Agents with Skilllevel > 5 for A are currently talking. I want to hold the caller for 30 seconds to wait for one of these Agents. After 30 seconds I would like to forward the call to the agent with the highest skill level A.
And of course I want to avoid the caller to wait the 30 seconds if no Agent with skilllevel > 5 is on duty.
Currently I have one CSQ for each topic and I expect a skillevel > 5 for the agents serving this CSQ.
At first I put the call in the CSQ for A and play a prompt with 30 seconds MOH, if no agent becomes available I put the call in the CSQ for C and loop the caller there. But now the best agent for C get's the call.
I appreciate any hints on that.
Don't queue in C unless there are at minimum X ready agents. You can define X as 1 to start, then play with the number to see how it affects wait times and dequeues.
select resource (csq_a)
ready_in_c = get reporting stats(csq_c, ready resources)
if (ready_in_c >= 1)
/* at least one person idle and ready in C
/* oops! we just missed them. */
/* if ready_in_c was > 1, this dequeue step will not execute */
/* instead, the script jumps to the select resource step for csq_c */
/* and tries the next agent automatically. only when there are no */
/* idle and ready agents do we dequeue the caller, so that an agent */
/* servicing csq_a can take the call */
/* no one available in C */
play prompt(you are important to us)