Hi All,
Does anyone know how to route calls after an agent hangs up to a post call survey in ICM in PCCE?
Thanks!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Once you configure Post Call Survey through OAMP, the system will
transfer the call automatically to the DNIS you configured.
All you need to do is configure through OAMP and set isPostCallSurvey to
"y" in the first routing script the caller hits.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Since I am just using an ICM script for the post call survey, do I still need to configure CVP?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Josh,
In this situation, CVP should still be handling call routing. It is not necessary to use CVP scripting in order to use CVP's Post Call Survey routing functionality.
There's some PCS setup instructions for PCCE here:
Just ignore the part where it tells you you have to create a CVP script... but the CVP OAMP config is definitely still important.
-Jameson
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thanks Jameson, I saw that link before, but now that my learning curve is a bit higher, it makes more sense.
Thanks!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Hi,
If I want to route calls to a post call survey, do I need to first route the call to CVP from the VXML router? As of right now, I have a dialpeer on the VXML router that is routing all unspecified calls to CUCM instead of CVP. I do have a dialpeer that is being used for a test number that is being routed to CVP...if I call into that test number, it does route to the post call survey...I ask because I do have some 888 numbers that are being routed to CUCM that are being used in our call center.
Thanks!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Short answer....Yes.
CVP need to know that a call is set up for post call survey.
Once the agent hangs up, CVP Call Server (which maintains a call connection throughout), queries ICM with the Post Call Survey ICM DN for the post call survey Script and the call continues for the caller.
Have a look at below
Gerry
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thanks Gerry, I think I am getting it. We have a dial plan on our CVP server that encompasses all of our agent phones. I think if I enable post call on that entry I should be good.
Thanks!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Josh,
Thats not a great idea.
That means all calls will get Post call Survey and all to the same survey.
You should assign post call survey to only the ICM dialed numbers you want to have a post call survey on.
(which might mean multiple entries - but will not mean its enabled for every call into the contact centre that routes to an
agent).
Gerry
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If I know what queues receive callers that need to have the post call survey, could I just set the "user.microapp.isPostCallSurvey" variable to "Y", "N" for each of the queues that its appropriate for?
Thanks,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Yes, you could do that. However, you should keep in mind that "user.microapp.isPostCallSurvey" defaults to "Y" unless you change it.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thanks!
By any chance, do you know how to set up the "VisualQ" in PCCE, so I can relay wait times to callers via ICM? I think VisualQ is a UCCX thing...assuming there is something similar for PCCE?
Thanks Jameson
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Josh,
There are a few options for providing this information to callers. For example, you could read the "AvgSpeedAnswerTo5" or "AvgSpeedAnswerHalf" from the Call Type, and subtract "Call.TimeInQueue" from that to get their estimated time left, but that value could fluctuate wildly and is potentially only accurate in a very large call center with a very consistent flow of inbound calls. Call center traffic is very naturally "bursty" and hard to predict.
When I get these kind of requests from my customers, my first question is always "Why do you need this? Is this helpful information to the caller? How is this going to positively impact the caller experience?" Depending on when you tell the caller how much time you think they have left, and depending on the value you're giving them, you may be just encouraging them to abandon the queue and call back later, or maybe they'll call a competitor instead.
I'd be interested to see a situation where telling the caller "Please expect a 3 minute wait" or "There are 5 callers ahead of you in queue" would improve caller retention. The latter of those two I've heard when calling some companies, but it's pointless because as a caller I have no idea what 5 callers in queue means to my wait time. For the former... If I'm calling for the first time, how do I know if 3 minutes is normal?
-Jameson
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
As a caller, I'd be interested in knowing whether I might have to wait
less than 5 minutes; vs 10-15 minutes; vs. longer.
If it's longer than 10-15 minutes, I might put the phone onto speaker
and do something else until I'm answered.
If it's longer, I may well call back later, hoping for a less busy time,
unless it's really urgent
For some callers, waiting is more tolerable if they have a rough idea
(down to a 5 minute window) of how long the wait time is.
Or if you can recommend a time to the caller when the call center
usually has lower call volumes.
Or, better yet, offer to them a Callback!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Great info Janine and Jameson!
I am being asked to relay the wait time to callers, so based on the wait time, they could choose to get a call back or stay on the phone...we had a 3rd party company set up callback for us a little while back...I found some great info on callbacks which is great, as I am going to be asked to modify timers and a few settings soon with regards to callbacks.
I am not too familiar with AvgSpeedAnswerTo5, AvgSpeedAnswerHalf, or Call.TimeInQueue. I will have to do some digging. If you know of a good PCCE doc that goes into setting that up, feel free to send my way
Thanks again for all of your help Janine and Jameson! Very much appriciated
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Josh,
If you had CCB set up for you by another partner there should already be a calculation in there gathering this information. CCB uses the calculated EWT in order to determine when to call the caller back. In the CCB script there should also be a note with the default calculation in there. Here it is for your reference:
Please note this is only one example of how to calculate Estimated Wait Time.
ValidValue(((SkillGroup.%1%.RouterCallsQNow+1)
*
(ValidValue(SkillGroup.%1%.AvgHandledCallsTimeTo5,20))
/max(
SkillGroup.%1%.Ready,
(SkillGroup.%1%.TalkingIn
+
SkillGroup.%1%.TalkingOut
+
SkillGroup.%1%.TalkingOther))
),100)
What this formula is doing is taking the number of Calls in Queue for the specified skill and adding 1 to represent the call at hand.
ValidValue(((SkillGroup.%1%.RouterCallsQNow+1)
Then it multiplies that by the Average Handle Time to 5, to get the total number of time it will take for agents to handle these calls.
*
(ValidValue(SkillGroup.%1%.AvgHandledCallsTimeTo5,20))
Then it tries to determine the pool of agents that will be handling the calls to use as the denominator in the formula. This is done by looking at 2 sets of statistics. Agents.Ready and the sum of Agents.TalkingIn, TalkingOut, and TalkingOther. Agents.Ready does not mean Agents in an Available / Ready state in CTI; it means the Agent is in a state other than Talking, or Not Ready.
/max(
SkillGroup.%1%.Ready,
(SkillGroup.%1%.TalkingIn
+
SkillGroup.%1%.TalkingOut
+
SkillGroup.%1%.TalkingOther)
then finally it puts it all together and divides the time by the pool of agents to get the EWT.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Awesome breakdown!!!
I think I see the node that you are referring to in CCB, the user.microapp.ToExtVXML variable is set to 10...sorry for running off on a tangent, but would that set CCB to being enabled only if the queue is at a min of a 10 minute hold time?
Thanks!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ToExtVXML[] and FromExtVXML[] are both variable arrays that are used to pass data To and From VXML applications respectively.Data going in the ToExtVXML will be received and interpreted as Name=Value pairs by CVP. The data coming back to ICM in FromExtVXML will be an array of strings you will need to parse manually.
For the CCB applications to work they do rely on some data being passed into the VXML applications via the ToExtVXML variable array.
1. qname
2. queyeapp
3. EWT
4. ANI
and probably the most important would be application.
The "qname" variable is used to group the calls going into CCB in order to know what set of rules to apply. You must have a Set Queue Defaults node within your CCB QueueEntry application for each of the unique "qnames" you will send in.
The "queueapp" variable defines the application that will be called by CCB as the basic entertainment loop for queuing calls.
EWT is the estimated wait time that was calculated, ANI is well, the ANI of the caller.
These are passed in the default applications in a series of nodes in ICM each setting a different variable within the ToExtVXML array. In the end you should have something like this in your scripts.
A node setting ToExtVXL[0] to a calculation. This is the raw EWT formula and will temporarily store the EWT. Then you should see a node resetting ToExtVXML[0] to something like Concatenate("application=CallbackEntry; EWT=", Call.microapp.ToExtVXML[0]) This is taking what you have in ToExtVXML and inseting that as a value back into that same variable.
Then you should see the other variables being placed in the other elements within the ToExtVML[] array.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thanks Martell! I am going to have to digest this and pick apart our CCB script to see this in action.
Really appreciate all the help!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Josh,
You can lookup what any of those fields mean (or any other field in ICM Formula Editor) in the "Database Schema" for your version of UCCE. There's no setup to get those parameters to have data in them.
-Jameson
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thanks Jameson,
That doc is very helpful! I have got some reading to do.
Thanks again!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Hi Jameson,
After I read the "AvgSpeedAnswerTo5" or "AvgSpeedAnswerHalf" from the Call Type, and subtract "Call.TimeInQueue", how do I play that info to the caller via the ICM script?
Thanks!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Hi,
I have a weird issue whenre after the PCS, the call progresses further in ICM script to a release node (i am told that CVP hangup element will play error message so i am not using CVP studio's hangup element). The problem is that the caller is put back into the PCS script after ICM release node and the call continues in loop. It only happens for PCS calls (direct calls to PCS script release normally). only option left is to use end call node on ICM or SIP refer the call out to somewhere else.
I have also tried to send it to another script then use release node, but same issue.
Just wondering what might be causing the PCS re-initiate after release. (the RouterCallKey for the calls stay same).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Are your calls coming into an ICM script before going to an agent?
The idea of Post Call Survey, is that it's invisible to the agent.
When the call is in the initial ICM Script (before transferring to an
agent) you enable Post Call Survey.
Then when the agent hangs up, the call is automatically transferred back
to your Post Call Survey ICM Script.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Based on the scripts the callers go through, I would assume they are in ICM. Thanks for the info. Based on the info that yourself and Jameson provided, I think I have a pretty good idea on how to execute this. I really appreciate the help!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Comments
0 comments
Please sign in to leave a comment.