Announcing position in queue

If I want to announce a caller's position in the queue, what is the best way to accomplish that?  A subflow or right within the main script?  What would the steps look like?
Thanks!

Within the existing script would be fine. Subflows are more useful when you have large chunks of code (e.g. account entry and validation against a database) that you wish to reuse across multiple scripts.
Get Reporting Statistics
Create Generated Prompt - The value from the statistics step, ordinal type.
Play Prompt - P[prefix.wav] + P[generated.wav] + P[suffix.wav]
Please remember to rate helpful responses and identify helpful or correct answers.

Similar Messages

  • Dynamic Position in Queue

    In the ICM scripting, how to identify the position in Queue of a caller dynamically, if none of the agents are available in the skill group and call is waiting at the IVR.
    For Example:
    A Caller calls, and prompts that your Position in queue is "x" and your Estimated Wait time is "x".
    Call will be on hold for certain amount of time, then again the position of queue is examined (whether it has decreased or not). How to do this ?
    We have ICM 7.1.4 and IP IVR 4.5.2

    I have been trying find a way to do this same thing and believe I may have figured it out now.  Here's what I am doing in the ICM script:
    Just after the Queue to Skill Group node - I use a Set Variable - SkillGroup.CCM.20922.Lab_Training.RouterQueueCallsTodayand put that value into PeripheralVariable6 (you can use whichever open PV you have)
    Then, I set another variable just after this one - day() and put that value into PeripheralVariable7 (this is to keep track of the day for any calls that cross over midnight)
    Now, I use our regular scripting flow to set a value into PV10 and then Run Ext Script to play the all agents are currently busy message from an IVR script - this is where the loop begins for what the caller hears until they are answered
    Just after the prompt is played I do an If node - Call.PeripheralVariable7!=day() (so if the day has changed, I'll bypass giving the position in queue status)
    If the day is the same, I then continue to another Set Variable - SkillGroup.CCM.20922.Lab_Training.RouterCallsQNow-(SkillGroup.CCM.20922.Lab_Training.RouterQueueCallsToday-Call.PeripheralVariable6) and put that value into PeripheralVariable8
    This basically calculates the difference between the total number of calls that have queued to this moment (since midnight) and the total number that had queued when the call was first queued and subtracts that difference away from the current number of call in Queue now.
    PV8= Calls in Q now - (total calls queued today - total calls queued today at the beginning of this session)
    Then, I take this value in PV8 and send it to a Run Ext Script.
    PV8 = Get Enterprise Call Info (--Triggering Contact--, --CallPeripheralVariable8--, --All-)
    Set queue = "gen\number\"+PV8+".wav"
    Play Prompt (--Triggering Contact--, P[100.wav])  -  a prompt that says "your current position in queue is..."
    Play Prompt (--Triggering Contact--, SP[queue])
    Then after it returns to the ICM script, I have it run another Ext Script for the music on hold period.
    Finally, it connects back up to the start of this loop to tell them all agents are busy again and starts the process all over.
    Hopefully, you'll find this useful and easy enough to follow.  Thanks to everyone out there who shares info.  It's been extremely helpful to me.

  • IPCC Script Position in Queue not incrementing

    Working on a position in queue script, I can't seem to get the position in queue variable to move beyond 1 no matter how many people are in the queue.  Has anyone got any hints / tips?  I'm using the Get Reporting Statistic, Position in Queue from CSQ IPCC Express.

    You shouldn't have to use that as a work around.  Open a TAC case, you may have a defect, and Cisco owes it to you, as a paying customer to deliver a working product.
    Here is video proof that the PIQ value dynamically updates during script execution.
    http://www.youtube.com/watch?v=6VNd5pMgygo

  • UCCX: Position in queue and real position in scheduler queue

    Hi
    When using UCCX stats is posible to get position in queue BUT since agents can share skill from different queues, real time scheduler queue can be much longer.
    It is posible to get the real position of that call on the scheduler queue?
    For example:
    Queue A, Skill A, 20 calls
    Queue B, Skill B, 20 Calls
    Agent 1 have Skills A and Skill B
    Next Call on Queue A:
    Position in queue acording to UCCX step is 21  but REAL position in scheduler is 41 since UCCX uses FIFO among queues.
    Thanks

    HI Jonathan
    Yes, on this example adding both queues would do it, i put it only to ilustrate the useless of the get position in queue  and the need of something more general.
    In my project, skill are not evenly distribute between agents and agents logins and logout all the time. Because of that it is not as simple as adding severals queues together. A function should be provided that gives the real time position of the call at anytime in the scheduler and not the simple position in one queue.
    Thanks

  • CCX 9 - Lost position in Queue

    Just out of curiosity, has anyone experienced a case when a user's position in queue was lost.  They were on hold 1st in the queue, then a second caller calls in, then they got bumped to 2nd?  This has been working flawlessly the last several months this has been in place, but we just got a complaint that it has occurred.  The CCX is located at a different location to the phones of where the problem was experienced.
    Attached a screen shot of the CCX script.

    Couple of possible things:
    Call RONAed and call was re-queued with higher priority
    You are prioritizing some calls over others, i.e. priority step is used somewhere in this or another script that queues the same CSQ
    Chris

  • UCC Enterprise - Position in Queue

    Anyone come up with a creative way to do this in Enterprise? (Its obviously simple in Express).
    I can tell the customer what their position in queue is when they initially get into the queue but if I need to speak it again, I can't come up with a way to do it.

    if you are queuing all callers at same priority- enter customer position in call variable and play it during queue.
    But i am sure you will have multiple priorities. this is little difficult solution , but thats what i came up with in 5 min. Make a globle variable for each queue priority. When counting the current position in queue also look for number of calls currently queued for lower priority queues add it to current position and you get your number.
    Let me know if i am making sense at all.
    thanks
    Pranav

  • UCCX Position in Queue issues after RNA

    Hello, we have a script using postion in queue logic. I tested the script and everything looked well however, this past month we have had complaints that callers were moving positions. They would go from 5 to 15 to 6. This is random and does not always happen. We get a couple of complaints a day. I noticed this first hand when my co-worker called in. Call came into the trigger happend to go RNA on an agent phone...went back to the queue then was stuck in the queue for over an hour and half. I never saw the call in the supervisors software.
    Contacted TAC and they say that its an issue with the logic in the script.
    I've attached two images of the queue section of the script. We have it play a begining queue prompt (you are) then the position prompt (first) end queue promt (in line for your call to be answered.
    Any suggestions we would be grateful...
    UCCX
    System version: 8.5.1.11003-32
    Thanks....          

    For starters, if the transfer into VM fails, the user will have been dequeued, you wouldn't see them in Supervisor Desktop, and they would continue to loop around and receive queue treatment.
    I would always recommend scripting for these types of contingencies.  I.e., If VM is down or all ports are busy, don't dequeue the caller and keep them queued.
    This is also achievable without losing the caller's PIQ because you do not need to dequeue manually, a sucessful Redirect will dequeue automatically.
    Anthony Holloway
    Please use the star ratings to help drive great content to the top of searches.

  • Announcing the queue size with multiple CSQ's

    Hello all
    I have a bit of a problem with one of my contact centers. They want to be able to announce position the customer is in the queue. Normally this would be easy, but I have a problem
    The contact center has almost 25 CSQ's in multiple applications for which advisors can be trained in. When announcing the queue position, only that CSQ is used. So the customer gets told they are first in the queue for that CSQ, when they are in fact behind another 30 calls in other CSQ's. Is there anyway to look at multiple CSQ's or an entire team when getting this reporting statistic?
    Hope that makes sense, any thoughts appreciated!
    Thanks
    Rob

    I have not seen a method for accurately calculating position in queue if the agent population is multi skilled.  However, if you were to play it only once as they enter the queue, you could add up all of the callers in the queues and then let the caller know how many callers are ahead of them.  This would not work if you prioritize your callers.

  • Social Miner - UCCX and position in Chat queue

    Hi
    Position in queue for web chat customer. It is possible?
    UCCX is integrated with Social Miner for webchat.
    Alex

    its not available in UCCX - 10.6 , May be in future release 

  • Queue position

    Hi all,
    I have a script where I'd like to play the queue position to the user while waiting. basically there is:
    :waitcustomer=get reporting statistics (--trigerring contact--,Position in queue[CSQ] from CSQ IPCC Express)
    :Play prompt (--trigerring contact--, wait)
    But it doesnt work :-(, i need to pass a parameter from get reporting statistics to "wait" so that it can play wait1 or wait2 and so on based on the position.
    Anyone please???
    thanks

    First, you might want to consider creating a sub-flow to do this as this kind of 'feature' is very common. You can use it again in other scripts.
    Second, you can use the built-in system prompts to play numbers (5) or ordinals (5th) by using the N[5] or #[5] identifiers respectively. They play in the 'Cisco Lady's' voice.
    If you require your own voice talent to say the number/ordinal then consider just 'creating' the wav file name by concatination.
    Ex.
    intWaitCustomer = 5;
    prmtYouAre = 'YouAre.wav';
    prmtInQueue = 'InQueue.wav';
    !Use a Container Prompt Step for this bit
    prmtWait =
    prmtYouAre
    "Wait" + intWaitCustomer.toString() + ".wav" (as User Prompt)
    prmtInQueue
    PlayPrompt (prmtWait)
    Alternatively, this works too.
    prmtWait =
    prmtYouAre
    #[intWaitCustomer] (as System Prompt)
    prmtInQueue

  • AWT + Positon On Queue

    Greetings,
    I would like to share this script modified by me. My need was create a script where is displayed the position on queue and the average time waiting (AWT) if the person stay on queue. I found the AWT in a old post here (shared by another collaborator) in CSC and I added the position on queue.
    It work fine. please if you have a suggestion to improve, let me know.
    Some terms are in portuguese, but is easy to interpret.
    Regards.

    Hello Sam,
    Your questions could be answered by the following documents:
    http://java.sun.com/j2se/1.3/docs/guide/awt/designspec/events.html
    http://download.java.net/jdk6/docs/api/java/awt/doc-files/AWTThreadIssues.html
    http://java.sun.com/j2se/1.4.2/docs/api/java/awt/doc-files/FocusSpec.html
    Cheers,
    Sam

  • Queue - 1 Producer and 2 Consumers

    I look for structure Producer-Consumer but i like that my aquisition data posted in queue would be dequeue for 2 consumers (like copies of data).
    In first consumer, the data would be analized e show in graphs. In second consumer, the data would be accumulated until 10 positions (staus queue = 10) and after this, the data would go to file in disk.
    This would be the better solution?
    I would can do it with 2 queues or have other way?
    Thx for any clue...
    Leonardo de S. Cavadas
    Maintenance Engineer and Inspection - Bureau Veritas do Brasil
    Engineer Metallurgist with emphasis in Advanced Materials
    Technologist in Computer Science

    Hello Jaime Rodriguez and Laemmermann,
    Thx for 2 proposes, but i want that all data would be stored in disk and my consumer for show analysis can't limit the process. I think in use discard rotine for put the show loop very fast for dont full queue (example: IF queue full, discard next analisys of data(that include several rotines) for show...until queue status = 50%...is one simple analysis for show only). I will have other aplication for complete analysis the all data). Limit of queue is computer's memory.
    My propose is in VI in attached (Labview 7.1).
    Wait for your good clues. Thx for all.
    Leonardo de S. Cavadas
    Maintenance Engineer and Inspection - Bureau Veritas do Brasil
    Engineer Metallurgist with emphasis in Advanced Materials
    Technologist in Computer Science
    Attachments:
    queue_exemplo.vi ‏68 KB

  • Quick help on Queue adding

    I'm doing a radixsort program and I need to add the elements off each queue into the master queue. I commented where I need the code. If someone could show me a loop idea or some code that can help I'd appreciate it. Thanks in advanced.
    Code:
    import java.util.*;
    public class RadixSort {
         private int numberOfDigits = 3;
         public  Queue<Integer> radix(Queue<Integer> masterQ) {
              Queue<Integer> Q = new LinkedList(masterQ);
              Queue<Integer> q0 = new LinkedList<Integer>();
               Queue<Integer> q1 = new LinkedList<Integer>();
               Queue<Integer> q2 = new LinkedList<Integer>();
               Queue<Integer> q3 = new LinkedList<Integer>();
               Queue<Integer> q4 = new LinkedList<Integer>();
               Queue<Integer> q5 = new LinkedList<Integer>();
               Queue<Integer> q6 = new LinkedList<Integer>();
               Queue<Integer> q7 = new LinkedList<Integer>();
               Queue<Integer> q8 = new LinkedList<Integer>();
               Queue<Integer> q9 = new LinkedList<Integer>();
              int x = Q.poll();
              for (int i = 0; i < numberOfDigits; i++) {
                   while ( ! Q.isEmpty()) {
                        int n = 1;
                        if (getDigit(x, n) == 0)
                             q0.offer(x);
                        else if (getDigit(x, n) == 1)
                             q1.offer(x);
                        else if (getDigit(x, n) == 2)
                             q2.offer(x);
                        else if (getDigit(x, n) == 3)
                             q3.offer(x);
                        else if (getDigit(x, n) == 4)
                             q4.offer(x);
                        else if (getDigit(x, n) == 5)
                             q5.offer(x);
                        else if (getDigit(x, n) == 6)
                             q6.offer(x);
                        else if (getDigit(x, n) == 7)
                             q7.offer(x);
                        else if (getDigit(x, n) == 8)
                             q8.offer(x);
                        else q9.offer(x);
                   // PROBLEM HERE
                   //HOW DO I ADD EACH QUEUE INTO MASTER QUEUE???
                   n++;
         public  int getDigit(int num, int place) {
              num = num / place;
              int newNum = num % 10;
              return newNum;
    }

    I don't know how to position in Queues since it is not an array. I realize that if this was an array I'd be done. But I'm restricted to using Queues.
    Thanks

  • Script review

    I am new to scripting and have asked lots of "newbie" questions.  Would anyone be interested in doing a review of the attached script and providing feedback?
    The premise of the script is to put a caller directly into queue (after holiday, DOW, TOD check), the caller holds for up to 3 minutes but should be able to press 1 at any point to leave a voicemail.  What is not in the script is 1)announcing a caller's position in queue and 2)the redirect to voicemail is some random number until I get the system call handlers built.
    Any feedback would be greatly appreciated.  Remember: first time/insane thinking/no programming skills.

    Aaron,
    Comments on your script are as follows:
    In  the Connected branch of the Select Resource step you do not need to  mark the call as handled as the system will do that for you if the call  is answered by the agent
    You can route calls to voicemail boxes  directly by transferring calls to the voicemail pilot number and  modifing the destination to be the mailbox number
    You don't seem to loop back to "DAY QUEUE LOOP" when a call is in queue, is this by design?
    As you progress  to writing more complex scripts, you might consider learning to leverage  XML for those dynamic parameters that change. It saves having  application pages with dozens of parameters on them.
    -Steven
    Please help us make the communities better.  Rate helpful posts!

  • SubFlow best practice advice please

    I am new to IPCCX scripting and would like some advice on whether multiple SubFlows are a good idea.
    We have 16 small Call Centers that all have very basic scripts. I plan on adding a Holiday/Emergency Closure SubFlow to all of them and I would like to add a few additional features as well.
    I plan on adding:
    ·         Position in Queue
    ·         Expected Wait Time
    ·         If more than X number of callers in queue, inform the caller that they cannot be helped at this time and to call back later.
    ·         If Expected Wait Time exceeds closing time, inform the caller that they cannot be helped at this time and to call back later.
    (I know the last two sound pretty harsh, but it’s government, and there is no budget to hire more operators. I think it is better to let the callers know early that they need to call back, than to have them wait for two hours just to be disconnected. And no, this is NOT the 911 call center!!!   LOL)
    My questions are:
    Would it be ok to add each feature as a SubFlow? Or could there possibly be performance or other issues by having so many SubFlows in one script.
    My other option is to add each item internal to each script, but that would be a lot to tackle 16 times…
    Lastly, is there a best practice on how short a script should be for performance? I know you can’t have one that is longer than 1000 steps, but should I try to keep the step count below a certain number?
    Any advice or insights would be greatly appreciated…
    Thanks,
    Doug.

    Doug,
    Most of the items your list are included natively in UCCX.  Use the Get Reporting Statistic step to obtain the expected wait time, position in queue, and total queue time information. The current time-of-day can be had using a Time variable.  You'll need to do some work to convert the values into something you can play to the calling party as a prompt, a subflow is great for that, but you shouldn't need to reinvent the wheel.
    Take the time to draw out the call flow for each of the 16 contact centers on paper or in MS Visio. If your 16 call flows are very similar in the way they operate, consider a master script that just changes the prompts/menus based on the number dialed.  Leverage XML or a database (if you have premium licensing) to pull in the relevant information you need for each DNIS.  You may find you can streamline the entire system, or at least a good portion of it, without it becoming 16 unwieldy applications.
    Steven

Maybe you are looking for