Cisco Support Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Community Member

wait for an agent with best skill and loop after that.

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.

Christian

1 ACCEPTED SOLUTION

Accepted Solutions

Re: wait for an agent with best skill and loop after 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)

     connected

          end

     queued

          label loop

          ready_in_c = get reporting stats(csq_c, ready resources)

          if (ready_in_c >= 1)

               true

                    /* at least one person idle and ready in C

                    select resource(csq_c)

                         connected

                              end

                         queued

                              /* 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 */

                              dequeue(csq_c)

               false

                    /* no one available in C */

               play prompt(you are important to us)

               call hold

               delay 30

               call unhold

               goto loop

Anthony Holloway

Please use the star ratings to help drive great content to the top of searches.
2 REPLIES

Re: wait for an agent with best skill and loop after 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)

     connected

          end

     queued

          label loop

          ready_in_c = get reporting stats(csq_c, ready resources)

          if (ready_in_c >= 1)

               true

                    /* at least one person idle and ready in C

                    select resource(csq_c)

                         connected

                              end

                         queued

                              /* 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 */

                              dequeue(csq_c)

               false

                    /* no one available in C */

               play prompt(you are important to us)

               call hold

               delay 30

               call unhold

               goto loop

Anthony Holloway

Please use the star ratings to help drive great content to the top of searches.
Community Member

Re: wait for an agent with best skill and loop after that.

That's a very nice approach. Thank you. Solves the "first step"

Will this route the call still to the best skilled Agent for Topic A?

The agents in C might also have a skill of A, which is <5. Let's assume Agent Bob in CSQ C has a skill level of 4 for skill A, and Agent Peter in CSQ C has skill level of 1. Both agents are idle. In CSQ A there is no agent idle.

How can I make sure Bob will get the caller?

189
Views
0
Helpful
2
Replies
CreatePlease to create content