This section provides a fragment of an inbound voice scenario with Virtual Queue (VQ) related logic. This example scenario is based on the Virtual Queue (Callback) scenario template. You can open this template in the Scenario Builder application and review the settings of each block involved in this scenario.
For more information on how to create a scenario from a template, refer to the Contact Center Administrator Guide, section Scenarios Overview.
A scenario is comprised of a series of actions that are initiated by scenario blocks. The main flow of blocks in this VQ-enabled scenario, from top to bottom, is briefly explained as follows.
The Play Prompt block greets the caller.
The Play Prompt block begins the scenario. The caller hears the initial announcement (i.e., a welcome message or a prompt for more information).
The Find Agent block facilitates whether callers wait in queue or accept the callback option.
Callers that prefer to wait online will remain in the Find Agent block until it is their turn to be connected. Callers that accept the Virtual Queue option will exit this block via the Callback exit.
The No Agents block gives the caller a way to exit the scenario if there are no agents available.
If no agent is available to accept the call, the scenario will take the No Agents exit.
Callback properties are handled by Set Variable and If blocks.
Because virtual queue/callback is enabled for this scenario, the caller is given the option to receive a callback if no agents are available or if the caller does not want to wait in queue. A series of Set Variable blocks and If blocks determine how a callback should be handled.
Within the Callback exit, in the first Set Variable block, the callback number is initially set to the value of $(item.from), which is the caller ID of the original call.
If blocks determine whether there is a caller ID and whether the ID can be dialed.
The scenario then uses If blocks to ensure that
- there is a caller ID (ANI) to use for the callback (if there is no ANI, then a phone number is collected)
- the caller ID is dialable and is not a 1-900 number (note that the length() function is used to check the number of digits in the phone number)
The Menu block asks the caller to establish the callback number.
The Menu block that follows will ask the caller to choose the callback number. The caller can either use the current phone or enter a different callback phone number.
The Collect Digits block gets a new callback number, if needed.
If the caller selects a different callback phone number, the Collect Digits block is used next to collect the new number.
If blocks determine whether the number can be dialed.
Then If blocks are used to ensure that the entered number is dialable and is not a 1-900 number. Note that the length() function is used to check the number of digits.
Once the callback number is identified, the call is passed back to the Request Callback block. This block confirms the request, disconnects the original call, places the associated callback request in the virtual queue, waits for a matching agent, and makes the callback when either an agent becomes available or the estimated waiting time (EWT) expires.
The Menu block explains the callback to the party who answers the call.
The Menu block that follows announces the purpose of the call to the party that answers the callback attempt. This is done to make sure the call is connected to the correct party.
The call is then handed over to the Find Agent block for distribution to an agent. Note that despite the EWT prediction that no agents are immediately available, the call will be placed in the first position in the service queue to be picked up by the next agent who becomes available.
The Connect Call block connects the caller to the agent.
As usual, the Connect Call block is used to connect the call to the agent identified by the Find Agent block.