11-04-2013 10:00 PM - edited 03-14-2019 12:41 PM
hi people
we are running call center and using call manager 8.5 with UCCX 8.5, we have some critical customers who want to attend there without waiting in the queue, please help me out and give me good suggestion to prioritize some numbers so they would not wait in thr queue and also if i want these call on a particular agent extension..?
please help me i would be highly thankfull..
Solved! Go to Solution.
11-05-2013 12:09 PM
If I understand you correctly, you would like to determine if a calling number is a priority call, and if it is, find their assigned Agent, attempt that Agent, and if they cannot be reached, go to the queue. Is that right?
If so this is one way to do that with a single script solution. If you needed to have the feature exist in multiple scripts, then you'll want to separate your data from your logic. I.e., Subflow, Document Repository, External Data Source, etc.
Variables
java.util.HashMap priority_callers = {
java.util.HashMap m = new java.util.HashMap();
m.put("6125551111", "agent1");
m.put("6125552222", "agent2");
return m;
}
String calling_number = ""
User target_resource = null
String target_csq = "Support_CSQ"
Script
Start
Accept (--Triggering Contact--)
calling_number = Get Call Contact Info (--Triggering Contact--, Calling Number)
If (priority_callers.containsKey(calling_number))
True
Set Priority (--Triggering Contact--, Assign: 10)
target_resource = Get User (User ID: (String) priority_callers.get(calling_number))
Successful
Select Resource (--Triggering Contact--, target_resource)
Connected
End
Failed
Unsuccessful
False
Select Resource (--Triggering Contact--, target_csq)
Connected
End
Queued
Queue Loop:
Play Prompt (--Triggering Contact--, P[queue_msg.wav])
Call Hold (--Triggering Contact--)
Delay 30 sec
Call Unhold (--Triggering Contact--)
Goto Queue Loop
End
Anthony Holloway
Please use the star ratings to help drive great content to the top of searches.
11-28-2013 12:29 AM
Hi, yes, I did. I just did not have time.
Let's start with something simple. First, we are going to create an application looking up the calling number aka ANI in an XML database which is stored in the Document Repository of the UCCX server.
Save it as priorityList.xml (watch out for the encoding - must be UTF-8!) and upload it to the Document Repository.
Then try this script:
Variables:
doc - type Document
match - String
ani - String
In your final script, the value of ani will be assigned by the Get Call Contact Info step, of course. For now, let's assign the initial value of "12345". The rest of the variables have default values (DOC[] and "", respectively).
First, we create an XML document, referencing the XML file we just uploaded, like this: DOC[priorityList.xml]
Next, we run an XPath query: "//entry[@ani='"+ani+"']/@ani" Watch for the quotes.
This Xpath query in English: return the value of attribute ani of the first element named entry whose ani attribute matches the value of the script variable ani (which is, in our case, 12345 - so it actually returns "12345").
Next, if there are any matches (meaning the value of variable match is not null), we set the priority to 10.
Test it with the initial value of ani = 12345 (should be a match there) and with "00000" or any number not in priorityList.xml. There should not be a match. Use Reactive Debugging to see whether it matches (value of match should be anything other than "") or it does not (value of variable match stays "").
G.
11-28-2013 10:06 PM
Hi,
well yes, if you update the XML file, you must upload it to the Document Repository. Otherwise, how would the UCCX know that the file has been updated?
You can put it wherever you want to, but best before the part where the script selects the agents (probably the Select Resource step).
Yes, you can make as many test applications with scripts as you want.
G.
11-05-2013 06:30 AM
Assuming these customers are always calling from the same number, you can look at their caller ID and prioritize on that. If they call from different numbers, do you customers enter any account number which might identify them?
david
11-05-2013 10:27 AM
you can store those priority numbers either in xml file / db
you can target a particular agent 1st and after timeout/threshold then target CSQ
11-05-2013 11:19 AM
Thanks for the reply david and lohjintiam....
david i have some managers fixed numbers and customers who will call from same number so changing of numbers is not the issue,
lohjintiam:
kindly explain me how to do it if i have to use xml file for this scenerio and yeah i will target that particular agent but from this every call will go to that agent first and than CSQ...?/
11-05-2013 12:09 PM
If I understand you correctly, you would like to determine if a calling number is a priority call, and if it is, find their assigned Agent, attempt that Agent, and if they cannot be reached, go to the queue. Is that right?
If so this is one way to do that with a single script solution. If you needed to have the feature exist in multiple scripts, then you'll want to separate your data from your logic. I.e., Subflow, Document Repository, External Data Source, etc.
Variables
java.util.HashMap priority_callers = {
java.util.HashMap m = new java.util.HashMap();
m.put("6125551111", "agent1");
m.put("6125552222", "agent2");
return m;
}
String calling_number = ""
User target_resource = null
String target_csq = "Support_CSQ"
Script
Start
Accept (--Triggering Contact--)
calling_number = Get Call Contact Info (--Triggering Contact--, Calling Number)
If (priority_callers.containsKey(calling_number))
True
Set Priority (--Triggering Contact--, Assign: 10)
target_resource = Get User (User ID: (String) priority_callers.get(calling_number))
Successful
Select Resource (--Triggering Contact--, target_resource)
Connected
End
Failed
Unsuccessful
False
Select Resource (--Triggering Contact--, target_csq)
Connected
End
Queued
Queue Loop:
Play Prompt (--Triggering Contact--, P[queue_msg.wav])
Call Hold (--Triggering Contact--)
Delay 30 sec
Call Unhold (--Triggering Contact--)
Goto Queue Loop
End
Anthony Holloway
Please use the star ratings to help drive great content to the top of searches.
11-06-2013 12:01 PM
yeah anthony i will test these mathod in my lab then i wil ask you if i would face any issue regarding,,,actually i am not good in scripting i just made basic script and i dont want to test this in the production environment, Thanks buddy
11-25-2013 10:44 PM
hello anthony
i have tried this script in editor but failed to understand that logic as i am weak in scripting but my boss has asked me to do that so i am working hard on it but unfortunately not gettiing it done.
as i am doing in production environment, tell me can i do it in test environmnet on the same ccx editor??
and also share if you have any video related to it.
Thankyou for your valuable solutions.
11-26-2013 01:00 AM
Hi,
well if you have access (IP addres, login name, password) to a compatible UCCX server, then yes, you can use the same script editor, why not.
About the script itself: do you understand the requirements? I mean, if I asked you to pull out a piece of paper and a pencil, would you be able to draw the scheme of the call flow? Like a flowchart? If yes, why don't you do that. I mean it. Then post it to here.
Also, can you please provide us with the license level of your UCCX (production environment) - is it Premium, Enhanced or Standard? For instance, XML is enabled in the Premium version only.
Thanks.
G.
11-26-2013 03:26 AM
hi
thanks for your kind support.
yes i have access to the UCCX server, can i test it separatly by making new script...?
We have Premium license and our requiremnt is:
we have some senior manager numbers to whome we want to do priority by not letting them wait in the queue, whenever they call to our contact center their call should be accepted on priority basis without waiting in the queue.hope you understand my requirement do let me know if you have question.
well i am attaching screen shot of my original script and do let me know if you want anyother information.
11-26-2013 03:59 AM
Hi,
about the test and production environment: well, you can create a new script for the test environment but it would be ideal to create the script in the test environment first, test it extensively and then copy it over to the production environment.
Can you tell me how often the list of senior managers change? I am thinking about a database table that would store the phone number, the name of the manager, and optionally, the extension of their preferred agent.
This database table could be administered by a simple web based application.
What's your opinion on that?
G.
11-26-2013 12:50 PM
hi
yeah thats agood way to do that but it needs a lot of work and time, we should simplify it by storing it in xml what u say??
and data of managers will be modify monthly i think so.
11-26-2013 12:54 PM
Well, XML is a way, too.
Can you please show me the script you are working on? I just want to see where to begin.
G.
11-26-2013 01:05 PM
11-27-2013 09:48 PM
hi
have you got attachment...??
11-28-2013 12:29 AM
Hi, yes, I did. I just did not have time.
Let's start with something simple. First, we are going to create an application looking up the calling number aka ANI in an XML database which is stored in the Document Repository of the UCCX server.
Save it as priorityList.xml (watch out for the encoding - must be UTF-8!) and upload it to the Document Repository.
Then try this script:
Variables:
doc - type Document
match - String
ani - String
In your final script, the value of ani will be assigned by the Get Call Contact Info step, of course. For now, let's assign the initial value of "12345". The rest of the variables have default values (DOC[] and "", respectively).
First, we create an XML document, referencing the XML file we just uploaded, like this: DOC[priorityList.xml]
Next, we run an XPath query: "//entry[@ani='"+ani+"']/@ani" Watch for the quotes.
This Xpath query in English: return the value of attribute ani of the first element named entry whose ani attribute matches the value of the script variable ani (which is, in our case, 12345 - so it actually returns "12345").
Next, if there are any matches (meaning the value of variable match is not null), we set the priority to 10.
Test it with the initial value of ani = 12345 (should be a match there) and with "00000" or any number not in priorityList.xml. There should not be a match. Use Reactive Debugging to see whether it matches (value of match should be anything other than "") or it does not (value of variable match stays "").
G.
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: