cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
14456
Views
71
Helpful
20
Replies

UCCX 9 "Time of Day" Time Ranges

nkobayashi123
Level 1
Level 1

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 

Thank you,

Nana

20 Replies 20

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/



Response Signature


@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.

 

Example

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.

 

Example

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 */

HTH

@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.

Jonas Fraga
Spotlight
Spotlight

Hello @nkobayashi123 

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