Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Sending calls to other queues 1

Status
Not open for further replies.

JJacobs313

Technical User
Apr 26, 2013
185
US
CM 6.2. Hope I explain this well enough:

So I have two clinics that want to answer each others calls, if the oldest call in wait is more than 3 minutes. These are different skill groups, and different vectors.

My question is, how do I send to a different queue, if the call is older than 3 minutes AND only do it if there are available agents in the other group?

Clinic A Vec 430:
10 queue-to skill 430 pri m

Clinic B Vec 460
10 queue-to skill 701 pri m

So say that in vec 430 the longest call is over 3 minutes, I want to then send that call to vec 460@ step 10 only if there are available agents in skill 701.

I am just not seeing it. I would need s goto step to check the oldest call wait, then a goto vec if available agents, then another step that sends it back to step 11 if there are no available agents? I think the below would work? We don't do any real in depth ACD programming, we are very small. I have been reading up, but we don't use EWT or anything like that. This is only so another clinic can answer calls

Examples:
09 wait-time 2 secs hearing ringback
10 queue-to skill 430 pri m
11 announcement 1569 (sorry all agents busy)
12 wait-time 20 secs hearing music
13 announcement 1570 (sorry all agents busy)
14 goto step 22 if oldest-call-wait in skill 430 pri m > 180
15 wait-time 20 secs hearing music
16 goto step 13 if unconditionally
17 stop
18 route-to number 8134300 with cov y if unconditionally
19 stop
20 disconnect after announcement none
21
22 goto vector 460 @step 10 if available-agents in skill 701 > 0
23 goto step 12 if unconditionally

"I am learning all the time. The tombstone will be my diploma." - Eartha Kitt
 
I am also seeing in another thread that the above will mess up reporting, that it won't be counted as a flowout/flow in because "If you queue to a skill and then go to a different vector where it is queued in a second skill, the call remains queued in the first as well If you route to an extension (VDN), the call is withdrawn from the first queue (and counted as OUTFLOWCALL for that skill)."

I don't want it queued to both skills, because I need to report on the flow out/flow in.

"I am learning all the time. The tombstone will be my diploma." - Eartha Kitt
 
If you want the call to queue to a new and separate skill and be removed from the first skill it was queued in, you have to put a route-to step in your vector. Use a route-to a VDN, this will dequeue the call from the first skill and also provide reports of how many calls 430 doesn't answer within 180 seconds and are redirected to skill 460.

Calls that are routed to a VDN will dequeue the call from skill 430 and will show up in a report as dequeued as well. Make sure to check the CMS Database and Calculations document for how dequeued calls are going to report. For example, dequeued calls also contributes to the OTHERCALLS database item

You would also need to change this consideration step:

14 goto step 22 if oldest-call-wait in skill 430 pri m > 180

This would send any call that hits this step to step 22, if a call is in queue longer than 180 seconds. The call that has waited > 180 seconds could be in a step that it's listening to music still or an announcement and hasn't flowed out.

Keeping track of the time an individual call has waited in queue takes a lot more integration with other systems. If you're doing this purely from a Vector configuration the only way I know how to do this is to add steps that play music and announcements until the time is as close to 180 seconds as possible or using a variable and count the looping.

This is a quick and dirty using multiple steps for music and announcements:

09 wait-time 2 secs hearing ringback
10 queue-to skill 430 pri m
11 announcement 1569 (sorry all agents busy)*Say this is 10 seconds long*
12 wait-time 20 secs hearing music
13 announcement 1570 (sorry all agents busy)*Say this is 10 seconds long*
14 wait-time 20 secs hearing music
15 announcement 1570 (sorry all agents busy)*Say this is 10 seconds long*
16 wait-time 20 secs hearing music
17 announcement 1570 (sorry all agents busy)*Say this is 10 seconds long*
18 wait-time 20 secs hearing music
19 announcement 1570 (sorry all agents busy)*Say this is 10 seconds long*
20 wait-time 20 secs hearing music
21 announcement 1570 (sorry all agents busy)*Say this is 10 seconds long*
22 wait-time 20 secs hearing music *at this point they have been in queue for 180 seconds if you add up all the announcement time and music time*
23 goto step 29 if unconditionally
24 stop
25 route-to number 8134300 with cov y if unconditionally
26 stop
27 disconnect after announcement none
28
29 route-to number 1234* if available-agents in skill 701 > 0 (*new VDN to go to vector)
30 goto step 21 if unconditionally
31 stop

If you have them available, you can use a variable to loop and count like this to keep from adding all these steps:

Set a variable (we'll use C for count) to a type of collect, set the scope to L, set the length to 1, set start to 1, leave assignment as blank. Setting the variable to L is "local" and is for the specific individual call.

09 wait-time 2 secs hearing ringback
10 queue-to skill 430 pri m
11 announcement 1569 (sorry all agents busy) *Say this is 10 seconds long*
12 wait-time 20 secs hearing music
13 announcement 1570 (sorry all agents busy) *Say this is 10 seconds long*
14 set C = C ADD 1
15 goto step 22 if C = 5 *at this point they have been in queue for 180 seconds if you add up all the announcement time and music time*
16 goto step 12 if unconditionally
17 stop
18 route-to number 8134300 with cov y if unconditionally
19 stop
20 disconnect after announcement none
21
22 route-to number 1234* if available-agents in skill 701 > 0 (*New VDN to vector to queue to skill 701)
23 wait-time 20 secs hearing music
24 announcement 1570 (sorry all agents busy)
25 goto step 22 if unconditionally
26 stop

- Stinney

“The man who asks a question is a fool for a minute, the man who does not ask is a fool for life.” - Confucius
 
I have a similar set of steps (as noted by Stinney) and the call shows dequeued in reports.
 
If I don't create new VDNs and dequeue the call, and it gets answered by the second skill it queued too, does it then show as an ACD call for both skills because it was in both queues? I am just trying to understand this. I run a report for skill 430 and skill 701, it shows total ACD calls, so total answered. I am assuming the issue is it will show answered on both?

Biggest issue I am seeing is I can't just route to the number of the secondary clinic, as the caller would hear all the announcements, I need a way to get to just the queue step, so I would need new VDNs for this purpose only that start with the queue step. I just see the reporting getting messy for the managers.

"I am learning all the time. The tombstone will be my diploma." - Eartha Kitt
 

ACDCALLS are calls answered by the skill. A call queued to 430 and 701 and then answered by 701 is going to show up as an ACD call in 701 and dequeued from 430 as skill 430 did not answer the call.

If you haven't, download the CMS Database and Calculations to understand how the data is accounted for and reported.


- Stinney

“The man who asks a question is a fool for a minute, the man who does not ask is a fool for life.” - Confucius
 
I have. Still just trying to wrap my head. What you stated is how I interpreted it. I was just trying to differentiate between routing to VDN xxxx or goto vector 460 @step 10. Because I can't send to the existing VDN because it has announcements that are unneeded for an already queued call.

It is not ideal, but trying to pilot a "call center" but not really a call center is proving to be a headache! Thanks for all your information though.

"I am learning all the time. The tombstone will be my diploma." - Eartha Kitt
 

Again, if you have variables available, setup a variable (let's use V for VDN). Set it up as a type of VDN, Scope of L for local, Assignment is active.

Create a new VDN (let's say it's extension 1234), route the call to that VDN after 180 seconds using a route-to number step and have that VDN send the call to Vector 460.

Then at the beginning of the vector that you're using for sending calls to skill 710, put a check step in like this:

goto step 10 if V = 1234

That will bypass all the announcements you don't want to play and dequeue the call from the first skill 430.

I like to do this for RONA VDNs so I don't have to have multiple vectors and keep the programming in the same vector for the same skill. We send the RONA VDN back to the same vector the call was in, I use the VDN check to send it further down the vector steps, queue the call at a priority of h(igh) and then send it back up the vector to loop all the normal announcements and music while the caller waits.

- Stinney

“The man who asks a question is a fool for a minute, the man who does not ask is a fool for life.” - Confucius
 
So I think I have this, and I did decided to go with vector variables, but one question here, on your example you have:
route-to number 1234* if available-agents in skill 701 > 0 (*New VDN to vector to queue to skill 701)
You cannot route to a number and see if there are available agents. I thought about putting some logic into the 1234 VDN, but then I am just bouncing calls back and forth. This is why I was originally trying to use the goto command

So I am still stuck on how to check for available agents as the deciding factor for routing or staying in queue. I don't want to route out to a queue that has no one available, and then back and forth.

"I am learning all the time. The tombstone will be my diploma." - Eartha Kitt
 

Sorry, my bad.

Do this:

22 goto step 27 if available-agents in skill 701 > 0 (*or your next available step in the vector)
23 wait-time 20 secs hearing music
24 announcement 1570 (sorry all agents busy)
25 goto step 22 if unconditionally
26 stop
27 route-to number 1234 if unconditionally
28 stop

- Stinney

“The man who asks a question is a fool for a minute, the man who does not ask is a fool for life.” - Confucius
 
This is working beautifully. Thanks again for all the help. The only time I use variables is global, and reading the documentation on it can sometimes be like Latin for me. One thing, and I don't know if this will impact reporting or anything, but for the goto step 10 if V = 1234, I didn't create a new VDN, I just routed to the existing VDN that queues to skill 701, and had V = the original number called. This still bypassed all the announcements I didn't want to play and dequeued the call from the first skill 430 I believe because I am routing to number a VDN.

So Call comes to 4300 - if available agents in 701 (which is in VDN 4600) I just routed to number 4600 and in the vector for 4600 added a step to go to step 10 if V=4300. Did exactly what I needed it to do. Again, thanks so much!



"I am learning all the time. The tombstone will be my diploma." - Eartha Kitt
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top