Route Call Block
- 1 Call Routing tab
- 2 Skill Expression tab
- 3 Treatments tab
- 4 Routing Priority tab
- 5 Advanced tab
- 6 Results tab
Use this block to route calls to an agent based on various criteria.
You can use the Route Call block in the Assisted Service phase to route calls to an agent based on various criteria, such as Skills and Agent Groups.
You can sequentially place multiple Route Call blocks with different settings, so that if routing fails in one block, your application proceeds to the next block. When a Route Call block successfully routes the call to an agent, the application moves to the Finalize phase, ignoring any subsequent blocks in the Assisted Service phase.
Call Routing tab
Select Routing Type section
Choose between the following routing options:
Skill based routing with relaxing criteria
Routes the call to an agent that has the required skills. If selected, you can choose from the following options:
- Use system variables RoutingTarget / RoutingVirtualQueue set already in Menu Options - Use system variables that were set in a Menu Option block.
- Specify Skills in this block - Specify one or more skills and a Virtual Queue to use to route this call. If you specified more than one skill, you can choose whether the routing engine considers any or all of the selected skills:
ImportantThis option uses the skill level specified in the Use Skill Proficiency level setting (documented below). For example, if you set an initial skill level of 8, Designer only routes the call to agents with the specified skills that have a level of 8 or greater. You cannot set an individual level for each specified skill.
- all skills - The application must use all of the selected skills to route the call.
- any skill - The application can use any of the selected skills to route the call.
- Use Skill Proficiency level - Enter a Skill level. The call is routed to an agent that has a skill level equal to or higher to the value you provide. If you enable Reduce skill requirements, the required skill level is gradually decremented by a specified skill level, until it reaches the specified minimum skill level. This option allows you to expand the group of agents that can receive this call if other agents are busy.
Skill expression based routing
Enter a skill expression in the Skill Expression tab, or click the drop-down menu to select a variable that specifies a skill expression.
Agent Group routing
Route the call to a specific Agent Group or a variable that holds the name of an Agent Group at runtime.
Route the call to agents by using a variable that holds the ID of an agent at runtime. You must use the following format: agentid@optional_statserver.A.
Campaign Group routing
Route the call to a specific Campaign Group or a variable that holds the name of a Campaign Group at runtime.
Route to another Application
Transfer the interaction to the selected application. You can then specify a Phone Number (or the variable containing the Routing Point name) that is associated with the target application.
Direct number routing (voice only)
Transfer a call to a number. You can use a variable to hold the number to use at runtime or add direct number elements. Specify the weight for each number and Designer displays and uses the percentage ranking based on the weightings.
Force route (voice only)
Force the call to route to a direct number. When using this routing type, Designer routes the call in a way that is similar to how an interaction is redirected by Route Point routing. When selected, you can specify the target as a literal value, or as a variable that holds a string, number, or object value.
When using Force Route:
- The Routing Priority tab and the Targeting Options in the Advanced tab (Clear targets from queue if this block times out and Early exit from this block if no agents are logged in) are not applicable.
- The overall timeout for the Route Call block is limited to 30 seconds.
Parking Queue (digital interactions only)
If a digital interaction arrives when the business is closed, send the interaction to a parking queue until the business is open. If selected, you can then specify a variable that tells Designer how long the interaction is to be parked (for example, the variable that holds the number of minutes until the business is open). When regular business hours resume, the interaction is retrieved and processed.
Other Routing Settings section
Select which algorithm is used to choose an agent when more than one agent is available. For more information, see Routing Algorithms.
Enter the maximum time (in seconds) to wait for an agent to be available before moving to the next block. Optionally, you can enable the check box to specify a variable.
Skill Expression tab
If you selected the option Skill expression based routing in the Call Routing tab, you must build the skill expression to identify the best agent to handle the call. The skill expression consists of a list of skills for which you must individually set an operator and an integer value.
Arrange individual skill conditions in the conditions sets. You can specify skills by name or variables that contain the name of the skills at runtime.
For example, use this:
"'New iPhone' > 7"
instead of this:
"New iPhone > 7"
Click Add Audio to add a Play Message child block underneath this Route Call block. The collection of audio plays repeatedly until the call is successfully routed or times out.
Click Add Module to add a Shared Module child block underneath this Route Call block. In the child block, you can select a shared module to execute.
A potential use case is to execute a shared module based on a specified set of conditions that can change over time and respond to external factors. For example, you might use a shared module that can play one announcement for callers if the estimated wait time (EWT) is beyond a certain threshold, and another announcement for when they are the next caller in the queue.
To set up this feature:
- In the application, create a user variable, ewt, and set its default value to 0.
- Create a Self Service type shared module.
- In the shared module, create a user variable, ewt, and set its default value to 0.
- In the Self Service phase of the shared module, add a Segmentation block. Add the conditions as shown below:
- Add two Play Message blocks as child blocks of the condition blocks, and add an Assign Variables block at the end. Your shared module should appear as shown below:
- Configure the first Play Message block. An example is below:
- Configure the second Play Message block. An example is below:
- Configure the Assign Variables block as shown below:
- In your application, select the Route Call block and click the Treatments tab.
- Click Add Module. A child Shared Module block appears beneath the Route Call block.
- In the child Shared Module block, select the shared module that you created in Step 2.
The application passes ewt to the shared module, along with the system variables, which includes EWT. The shared module compares ewt and EWT in the Segmentation block and executes a Play Message block, depending on which variable is larger. At the end, the shared module sets ewt to EWT before returning to the application.
Routing Priority tab
Use Priority during Routing
Enable this check box to use priority-based routing, which prioritizes your calls depending on your business requirements.
To prioritize calls, you must segment calls and assign the name of that segment to a variable. You must select this variable in the Lookup Priority table based on this variable drop-down menu.
You can customize this table with your own segment definitions to fit your business needs. If the specific segment is not found, then the value specified for Initial priority is used. Enter a value in Increment size to increase the priority of a call that remains in a queue over time. The priority increment is defined for each segment, but a default increment is configurable with the Increment Size property.
Increment Priority every ___ seconds
Enable this check box to specify the time interval between priority increments. If you enable the other check box beside the field, you can select a variable that specifies the overall Routing Timeout and Priority Increment Interval properties.
Limit Priority to
If the Increment Priority every ___ seconds option is enabled, you can use this option to set a maximum priority value. For example, if the initial priority is 50, you can use this option to not let the priority value increase beyond 100, as shown here:
If you enable the other check box beside the field, you can select a variable for this option.
Clear targets from queue if this block times out
Enable this check box to specify whether the pending request for a target should be kept active or not after exiting this block on timeout. When the request is kept active (check box is disabled), an agent may be selected after the block times out if, for example, an agent with the matching criteria is ready after the block was exited.
Early exit from this block if no agents are logged in
Enable this check box to exit the block if no agents are logged in for the selected routing target (such as Agent or Agent Group, skill expression based, or skill based routing with relaxing criteria).
Route only to local agents
If you have selected Skill based routing with relaxing criteria or Skill expression based routing, you can enable this option. When enabled, the call is routed to a local agent who matches the target skill.
Here's a way you can do that:
- Set up the Route Call block with Route only to local agents enabled, a short Overall timeout property value, and Clear targets from queue if this block times out deselected.
- Then, set up any Route Call blocks that are further down the application flow with Route only to local agents not selected.
You can watch this video to see a short demonstration of how to set this up.
You might also want to modify skill relaxing settings to run faster on routing blocks that target local agents.
- Skill Expression
- Agent Group
- Campaign Group
- Direct Number
Threshold expressions can contain variables or reference queue-specific values, such as when used with the following functions:
- sdata(target, statistic) - This function applies additional routing criteria based on a statistic. You can use it to specify a target and a predefined statistic, such as StatPositionInQueue, StatCallsWaiting, or StatCallsCompleted. For example, this expression would route an interaction to a particular Agent Group when there are more than two agents ready and available:
- You can also combine multiple sdata functions using a pipe (
|) as an OR operator or an ampersand (
&) as an AND operator. For example:
sdata(VQ_1@.Q,StatServiceFactor)>30 & sdata(VQ_2@.Q,StatServiceFactor)>40
For a list of common statistic types used by Designer, see Statistic Types. Note that when adding a statistic to your expressions, you must use the Stat prefix, such as StatTimeInReadyState, StatAgentsAvailable, StatEstimatedWaitingTime, and so on.
- callage() - This function returns the age of an interaction in seconds. You can use it when building an expression that specifies a time-based routing condition, such as routing an interaction if it is older than 60 seconds:
- For expressions that reference a variable, the callage function is treated as a string. Therefore, you must enclose the function and its operator in single quotes (e.g. 'callage() < ' + variable).
- For routing types that have multiple targets (such as Agent Group or Agent), the script defined in Threshold Expression applies to all targets.
For more information about using ECMAScripts in Designer, see Assigning values to variables.
Enable the check box beside Customer Greeting and/or Agent Greeting to play an audio file to that person while the call is being connected.
For customers, you might use this feature to play a legal disclaimer, or to announce that the call might be recorded (if you use call recording in your contact center). For agents, you might use a variable to announce the customer name or other relevant information.
After you enable Customer Greeting and/or Agent Greeting, you can select an audio file to play by clicking the icon in the Announcement field. This is useful for customer greetings that play a static disclaimer audio file.
Optionally, enable the Var? check box to use a variable to dynamically select the audio file. This is useful for agent greetings that use a variable to provide call-specific information, such as the customer name.
Things to note:
- Customer Greeting and Agent Greeting are for voice calls only (not supported for chats).
- The Customer Greeting plays continuously until the Agent Greeting finishes playing.
- When the Customer Greeting and Agent Greeting contain different prompt values, each prompt is played to the customer and the agent as specified.
- When only one option contains a value, the same prompt is played to both the customer and the agent.
- If the Customer Greeting or Agent Greeting cannot be played, the customer is immediately connected to the agent. No greetings are played.
Click Add Extension Data to add an extension as a key-value pair to this block. The value type can be a string or integer.
If you want to use a variable for the Key or Value, select the Variable checkbox and then select a variable from the drop-down menu. If the Value is an integer, select the Integer checkbox.
- Incorrect: Joe's Pizza
- Correct: Joe\'s Pizza
This example shows a few different ways that key-value pairs can be added as extensions:
Post processing application section
Use this section to specify a Digital type application that will apply post-processing after the agent has marked the interaction as done. For example, you could specify an application that provides a survey.
Select a variable in the Store selected agent ID in this variable drop-down menu to keep track in a specific variable the ID of the agent selected as a result of this Route Call block execution. The SelectedAgent system variable is transparently assigned this same agent ID value.
You can also select a variable in the Store the outcome of the Route Call block in this variable drop-down menu to store the result of this Route Call block execution.