Hints and Tips - Check Queue Time against operational hours

The Scenario

It’s 10 minutes before you close and you currently have a longest wait time 15 minutes, your Agents are getting ready to make people shaped holes in the doors and walls as they want to escape for the day.

You think, wouldn’t it be great so that we don’t have a large number of people queueing after we are closed, to check the current wait time and if it’s greater than our operational hours, we could somehow tell the caller and ask them to call back another time. Correct! It would be great, but how?

A Simple Solution

In this solution I am going to use A Query Block, a Timeplan Block, a Logic Block and a Message Block to:

  1. Query the current Longest Wait time for my Contact Centre Queue. - Query Block

  2. Check the time of day to see how much time is left before I close. - Timeplan Block

  3. Use a Logic Block to route a caller if the Longest Wait Time is greater than the time left until we close. - Logic Block

  4. Play a message stating why their call cannot be transferred to the Contact Centre Queue. - Message Block

How this may look

Let's build this out


First up, within your Dialogue, Add a New Query Block (I have given this a name of Get Longest Wait)

Then using the following sections I:

  1. Use the Service drop-down list to: Get Live Queue Stats by Queue and leave the Timeout as the default of 20 (seconds).

  2. Within the Input Parameters, I put my Contact Centre Group and Queue Name I want to lookup in their corresponding fields. These need to be exact spellings and Character sizing so you are best off taking them from your Contact Centre name settings.

  3. Set the result to a variable in the Query Results Store the result in field, I did this using % as an open/closing bracket. In this example I called this variable %lwsouthq% (or longest wait south queue for long).

  4. Finally, I set both outcomes of the Query to load a new Block which is my Timeplan Block (I Called this Check Longest Wait Against Operational Hours Timeplan)

So this block with get the Longest Wait time from the South Queue within my Contact Centre Group called Contact Centre. It will then store this value in a Variable which I can then use in the next couple of steps. Once it has done this, it will move onto checking the time of day.

Timeplan Block

In this example I am going to do multiple checks from 17:30-17:59 so that I can ensure for the last 30 minutes, callers won't be in a position where they won't get answered.

  1. Using the Date and Time fields I have split this up into different time slots to check against, the first being 17:30-17:44, the next three options break this down further to 5 minute increments. You are free to set what you feel suitable for your system. If the rule matches it then loads the corresponding Logic Block (Which I create as I go using the drop-down list and Add New Logic Block option).

I have labelled these 1730 Check Longest Wait, 1745 Check Longest Wait, 1750 Check Longest Wait and 1755 Check Longest Wait respecitvly.

  1. If none of the rules apply, it goes to load my usual block (in this case it is checking agent capacity, or it could just transfer direct to your Contact Centre using a Transfer block).

Logic Block

I have 4 Logic Blocks, one to check the Longest Wait in different second increments so I can be more granular in my timers. This is a personal choice but hopefully you get the idea.

  1. Within the Conditional element of the Logic Block, I use the Variable button to lookup my stored Longest Wait Time Variable (or just type the variable as it should be %lwsouthq%, I then use the Greater than or Equal to option (>=) from the drop-down list and set the time of 1800 seconds (30 minutes). Then if this rule does match it will go to a New Message Block (I have labelled Longest wait exceeds operational hours).

  2. If the longest wait is less than 30 minutes, then using the Else, I carry on transferring to the Contact Centre using my usual method within my flow.

I do this for all of my Logic Blocks with 1800, 900, 600 and 500 second for each of my timers so that if a caller is coming through they won’t be transferred to the Queue if the longest wait time is outside the current operational hours.

Message Block

My Message block simply plays a message explaining the situation and then hangs up (goes to my goodbye message).

That's it

And that’s it. I have created a Query Block to get and store the longest wait time, then using a Timeplan to look at the last 30 minutes of the day, go to a separate Logic Block for those times, to check if the current longest wait is outside the operational hours and then if it is, play a message to the caller stating we can’t answer their call at present. If not, the caller will go through to the Contact Centre as normal up until my Dialogue closes as normal.

Additional Options for Service Improvement

Of course to help with service improvement, you could also place those callers who aren’t able to be answered before you close into QueueBuster, so that when you re-open the next day, they get a CallBack when your advisors are available.

Thanks For Reading

Hope you enjoyed this hint/tip of adding value to your Dialogues/Contact Centre. Any questions please feel free to post.


Jonathan Redsell.

1 Like