08-11-2021 10:48 AM
Hi Everyone,
I am trying to implement the Callback script for my agents using the BaseLine Advanced Queuing files from the script repository. I am running UCCX 11.6. I have been able to customize and incorporate that into my own scripts and it works. The issue that I am having is that I would like the agents to be able to know who they are calling back at the time they call back and have a history of who they called. I have looked through the forums fairly extensively and found a lot of good ideas on how to do related things. However, I cannot find something that addresses the specific issue that I am having. I do have some programming background, but mostly smaller script type of stuff. I have had some formal classes on C/C++, but that was many years ago. So, I would consider myself a novice in this area.
As far as having a call history, there are two solutions that I found out there. The first one is the native call history gadget to 11.6. I really like that one and would likely use it except one issue. Calls that come in when choosing the callback option show the CTI port instead of the number that the caller entered. The agent does not know who the caller was and cannot use the Make Call icon because of it. I contacted TAC and was informed that the code for that gadget is not available to be modified. I figured as much, but thought I would ask anyway.
The second solution I have found out there is the Call History gadget on the DevNet site. This would be an acceptable solution as it is very similar. The issue is that this gadget also shows the CTI port for the number instead of the callback number that was entered by the caller.
What I have done in an attempt to make this work is that I utilized CallVariable6 that is listed as Detail in the Call History Gadget. I used the Set Enterprise Call Info step in my script to pass the callback variable to Call.PeripheralVariable6. I then modified the gadget to make the "number" equal to "detail". It worked. Well, so I thought.
When I place the first callback, the Detail shows as N/A because the value is null. If I place a second callback, I now have the callback number from the previous call. I didn't notice this at first because I kept using my cell number for the callback test calls. Once I changed to my desk number, I noticed that CallVariable6 is from the previous call. So, the call history is always one phone number behind. Everything else on that line is fine.
I have put the Set Enterprise Call Info step in multiple places to see if that would help. I put it in both of the BaseLine Advanced Queuing files. A reactive debug shows that my defined variable has the correct number. I made some sample code in a separate gadget that shows what the value of Call.PeripheralVariable6 is. Sure enough, the value reflects what was updated from the previous call. So, I think the gadget is working fine. It's just not being updated in the correct spot in the UCCX script maybe? Thinking that it might be one of the two AEF files that needs to be modified. Or, perhaps I need to update the gadget somehow?
So, I am missing something somewhere. I would think that I just need to force an update for the variable, but I had already done that in multiple places within the UCCX script. I saw the sample gadget called Update Call Variable Data and am looking at it now. It looks like it is meant for the agent to interact with though. So, I am not sure if I can modify it so that it just pulls the current value. Could anyone provide some assistance/suggestions on what I can do? Greatly appreciate your time!
Thanks you - Paul
Solved! Go to Solution.
08-16-2021 12:30 PM
I spent a bit more time on this and the problem was indeed with the UCCX script. The error was in the way that session information was passed between the main script and the script that is ran to hold the call for a callback. I found the below link to be very helpful:
https://community.cisco.com/t5/contact-center/uccx-11-5-session-data-issue/td-p/3734009
I think Johnathan's comment "Mapping IDs are supposed to be globally unique String values, not internal Session identifiers themselves." was a big part of it. I am planning to reply to that thread for further clarification. While I was able to get mine to work, it is not quite the way that it was done in their solution.
Again, greatly appreciate your time! On a side note, could you recommend some sources to learn more about developing with Finesse? I am guessing learning Javascript would be a good start. I am not sure if there is something out there that would help with my understanding of putting everything together for Finesse gadgets.
Thanks! - Paul
08-12-2021 01:42 PM
Hi,
I am not a pro at the UCCX scripting side, but I can try to help on the Finesse gadget side. There are a lot of scripting pros in this community, so hopefully someone can help you there.
The first one is the native call history gadget to 11.6. I really like that one and would likely use it except one issue. Calls that come in when choosing the callback option show the CTI port instead of the number that the caller entered. The agent does not know who the caller was and cannot use the Make Call icon because of it. I contacted TAC and was informed that the code for that gadget is not available to be modified. I figured as much, but thought I would ask anyway.
Correct. Modifying this gadget isn't an option because the code is not publicly accessible.
As far as the calls showing the CTI port instead of the caller's number, I think that might be because of the way your script is configured. I tried this out on a ccx 12.0 system and was able to see the caller's number instead of the CTI port in both the built in call history and the DevNet call history sample.
What I would suggest you do is take a look at the dialog event when the agent receives the call (you can see this in the browser's console) and see if the caller's number is anywhere in that event (other than the participant's media address field). It seems like the gadgets are using the fromAddress field (verified with the DevNet call history sample). If the caller's number is in the event, you can modify the DevNet sample to retrieve that information. If it is not, the only thing you can do is to take a look at the script to see if there is a way to get that information into the event.
Thanx,
Denise
08-13-2021 08:05 AM
08-13-2021 09:57 AM
Hi,
You're welcome. I hope the information you are looking for is in the event or if you can put it in a call variable. If so, the change to the DevNet gadget won't be that difficult. If not, you will have to figure out a way via scripting to get the data.
Goodluck!
Thanx,
Denise
08-16-2021 12:30 PM
I spent a bit more time on this and the problem was indeed with the UCCX script. The error was in the way that session information was passed between the main script and the script that is ran to hold the call for a callback. I found the below link to be very helpful:
https://community.cisco.com/t5/contact-center/uccx-11-5-session-data-issue/td-p/3734009
I think Johnathan's comment "Mapping IDs are supposed to be globally unique String values, not internal Session identifiers themselves." was a big part of it. I am planning to reply to that thread for further clarification. While I was able to get mine to work, it is not quite the way that it was done in their solution.
Again, greatly appreciate your time! On a side note, could you recommend some sources to learn more about developing with Finesse? I am guessing learning Javascript would be a good start. I am not sure if there is something out there that would help with my understanding of putting everything together for Finesse gadgets.
Thanks! - Paul
08-16-2021 01:12 PM
Hi,
I'm glad you were able to figure out the issue! And it is always my pleasure to assist you (and everyone in this community).
On a side note, could you recommend some sources to learn more about developing with Finesse? I am guessing learning Javascript would be a good start. I am not sure if there is something out there that would help with my understanding of putting everything together for Finesse gadgets.
The Finesse gadgets are just JavaScript, HTML and CSS. So basic web page courses (even free ones) will do. Of course if you want some fancy looking gadget, you would have to do more advanced courses. Then, just study up on the Finesse JavaScript library doc to see whats available: https://developer.cisco.com/docs/finesse/#!javascript-library. Lastly, there are a lot of sample gadgets, so you can view the code and the finished product to see the logic behind it: https://developer.cisco.com/docs/finesse/#!sample-gadgets
I hope that helps!
Thanx,
Denise
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide