Good afternoon everyone
I have a question about Time of Day's time range. Will it be possible to change time range to 10 minutes or 5 minutes ? (instead of 15min increment)
One of my customers is requesting her call center to stop accepting calls at 4:20 pm. (4:15 pm is too early and 4:30 pm is too late for her...) So, basically, she needs incoming calls to be coming to her call center queue till 4:20pm. Her call center agents will answers calls in queue till they are all taken care. If a customer calls at 4:19pm, the call will go to queue and wait for next available agent. If a customer calls at 4:21 pm, it goes to closed message...
(I've suggested her if the agents can log out after 4:20pm but that was not the option...)
If you have any suggestions, please let me know. I really appreciate your help and support
Solved! Go to Solution.
You could play around with session variables. I’m by far no expert in this. There are others in the community that hopefully could help you out with this.
I did however search for some information on this. Have a look at this post. https://www.google.se/amp/s/samiamsamdotcom.wordpress.com/2014/02/06/whats-in-a-session/amp/
@TomMar1 Whenever I want something to happen once per flow, and not once per caller, I usually just allow only the first caller in the queue to perform the action.
Select Resource () Connected End Queued PIQ = Get Reporting Statistics (Position In Queue) waiting = Get Reporting Statistics (Waiting Contacts) If (PIQ == 1 && waiting > threshold) Then True /* Only allow the line leader to send an email */ Create eMail () Send eMail () False /* No one else can send an email */
However, that only works if you're using the loop counter feature. E.g., Your loop takes 2 minutes to complete, so you loop count up to 8 times, then send the email, then reset the loop counter.
But when that first person queues for less than 15 minutes, a new number 1 will slide in from spot number 2, and will immediately send an email. This is where your idea to mess with dates and such come into play. You could combine the PIQ == 1 strategy, with a session object, which holds the timestamp of the last email sent.
I'd recommend naming your session mapping something like "helpdesk_last_email", or the like.
I have a decent write up on sessions here: https://community.cisco.com/t5/contact-center/uccx-passing-variables-between-2-ivr-scripts/m-p/3730491/highlight/true#M108548. You will be focused on two things: 1) Creating the session object and giving it a known mapping name, 2) Reading and writing a session variable of Date type, which holds the timestamp of the last known successful email.
And to compare the difference between two date objects in a script, you would subtract their .getTime() values to get the difference. Also, note that I'm dividing by 1000 and 60 to show the conversion from milliseconds to minutes. Therefore, the value in email_interval would be 15.
time_difference = (now.getTime() - last_email.getTime()) / 1000 / 60 If (time_difference >= email_interval) Then True Create eMail () Send eMail() /* Also update Session Object with now.getTime() here if the email was a success */ False /* Do nothing for now so we don't flood the inbox */
@Anthony Holloway Thank you Anthony. I will try my best to work through this on my own. But I will probably be back with some follow up questions. I understand the logic but putting the proper scripting language in place is a struggle for me.
@Anthony Holloway I do not seem to be able to create a Session variable of Date type. I think I understand the concept of the Session variable and how/why to use it but I am missing how I pull the date out of that session to compare it against D[now]
@TomMar1 You need to use the Set Session Info step to store the date, and the Get Session Info step to read the stored date back out again. I hope that helps.
You can collect current time with a Time type variable and the use some IF's statements to check if current hour are greater or equal than 4 and if minutes are greater than 20. Not beauty, but works great