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
-
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.2I 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.
ThanksHI 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
RobI 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.
Alexits not available in UCCX - 10.6 , May be in future release
-
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???
thanksFirst, 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 -
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 ScienceHello 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 -
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 -
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
-
Just did a Firmware Update and can't receive or send mail
I just did a firmware update as recommended by Apple: 2008-04-13 18:30:24 -0400: Installed "Aluminum Keyboard Firmware Update" (1.0) 2008-04-13 18:30:32 -0400: Installed "iMac EFI Firmware Update" (1.3) I had restarted my iMac and noticed that my Mai
-
Security error while duplicating domains
Hi, I'm trying to replicate domains for WLS 8.1.6 using the Configuration Template Builder and then the Configuration Wizard. I've done this before with simpler domains without problems, but this time, after I've succesfully created the domain based
-
I have a 2009 Apple Mac Pro with no windows,can I surf the web on virgin media wifi
Can I surf the web on the Apple Mac Pro with out windows on Virgin media wifi
-
How do i transfer video files from my PC to iPad3?
I just purchased an iPad3. I need to transfer some video files (Windows 7) to the iPad3. Can't figure out how.
-
The iTunes Store tab in iTunes disappeared...
Hi. So, I honestly don't know what I did, but suddenly, the iTunes Store tab in iTunes disappeared... Please help. iTunes 12.0.1.26