Wednesday, April 13, 2011

Cisco UCCX script checking for agents available before queue

A coworker asked for guidance in UCCX scripting.  After developing a time of day check and simple queueing mechanism, he realized he would need to check if there are agents available in a CSQ regardless of the time of day (snow emergency, company meeting, someone forgot to log out, etc.).

If no one is there to answer a queued call, the caller is routed to a particular DN.

The following is what I provided him as an example.

(The redacted areas in the script documents are just my name.)






Let me know if this helps ...

3 comments:

  1. Hello Web Maxtor,

    I am a novice when UCCX scripting. I followed your guide and it has been extremely helpful to me. However, I am not getting the results I want.

    Here's the logic:

    - Customer Calls CSQ
    - If No Agents Ready
    - Send to a different CSQ

    I think understand the function of the "Reporting Variables" and I have set it up accordingly, but it's not having any affect on the call flow. What do you think?

    ReplyDelete
  2. Hello Web Maxtor,

    I am a novice when UCCX scripting. I followed your guide and it has been extremely helpful to me. However, I am not getting the results I want.

    Here's the logic:

    - Customer Calls CSQ
    - If No Agents Ready
    - Send to a different CSQ

    I think understand the function of the "Reporting Variables" and I have set it up accordingly, but it's not having any affect on the call flow. What do you think?

    ReplyDelete
  3. David,

    Given UCCX scripting is so flexible, it's difficult to troubleshoot without actually seeing your script. With that, here's some things you may want to check.

    1. The "Get Reporting Statistic" steps in my example checks for the number of agents / resources in more conditions than just Ready. You can check for the number of agents that are Logged In, Ready, Talking, Reserved, etc. and use only some or all of them to control your call routing. Understanding what each condition means and when it might be helpful to you as a call routing decision is likely most important.

    2. If you understand what the terms mean and suspect you might simply have a scripting syntax issue, try using a very simple script to check for a very simple condition first. You might quickly create a new "TestCSQ" and check to see if agents are logged in. This is probably the easiest thing to check for because it doesn't require any configuration other than simply creating the CSQ and referencing it in your script somehow.

    3. Since you say you are new to scripting I'll remind you to make sure you are "Validating" your script in the editor before uploading it. If you are not doing that, it might make your issue clear very quickly.

    4. Since you say you are new to scripting I'll suggest you make yourself familiar with "Reactive Debugging" in the editor. Once you have a validated script running, you can use that technique to "see" why UCCX is interpreting your script the way it is.

    5. If you are truly only concerned with agents being ready when deciding to route to another CSQ, be aware there are other options available to you that might ultimately provide a better solution. You might think about queuing to multiple CSQs as an alternative. See here: http://www.cisco.com/c/en/us/support/docs/voice-unified-communications/unified-contact-center-express/63710-multi-csqs-call.html In that example, if an agent is "ready" in CSQ1, the agent will be presented with the call. If not, UCCX will present it to a "ready" agent in CSQ2. If neither CSQ has ready agents, the call will queue for both.

    I hope something above helps.

    Good luck!

    ReplyDelete