Scripting and Media Routing Guide for Cisco Unified ICM/Contact Center Enterprise, Release 11.6(1)
Bias-Free Language
The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
When your system is integrated with multichannel features, you write routing scripts to route contacts that these features
handle. Multichannel features include Enterprise Chat and
Email, and third-party multichannel applications that use the Task
Routing APIs.
Enterprise Chat and
Email
You can configure CCE deployments with Enterprise Chat and
Email to use independent media queues, in which an agent can handle tasks for a single media channel. You can also useTask
Routing, in which an agent can handle tasks for several media channels.
Supported Route Requests for ECE Web Request
Unified CCE supports the following types of multichannel route requests when integrated with ECE:
Web callback - A web callback request is a request that does not involve
ECE. You click a button on a website that says, "Call me back." Then the caller and agent simply talk on the phone.
Text chat - The caller and agent can conduct a text chat session when a phone call is not desired or not possible. They can both chat
and collaborate on the web.
Email message - The customer and agent communicate using electronic mail.
Application Request Routing with ECE Web Request
The ECE routes requests to a Media Routing Peripheral gateway (MR-PG). The Media Routing Peripheral Interface Manager (MR-PIM) on
the MR-PG provides a generic interface to queue and route requests. The MR-PIM communicates with the Router, which runs a
routing script to determine how best to handle the request.
Unified CCE uses a media class ID to identify the type of media or channel. A media class is a communication channel that
correlates to an application. Following are the predefined media classes in Unified CCE:
Cisco_Chat - chat requests
Cisco_Voice - web and delayed callbacks requests, and basic Unified CCE inbound and outbound voice calls
Cisco_Email - email requests
Each media class has at least one Media Routing Domain (MRD), which is a collection of skill groups and services that are
associated with a medium. The Unified CCE uses the MRD to route a task to an agent who is associated with a skill group and
a particular medium. Each MRD requires a Unified CCE script, but it is possible to route requests from different MRDs using
one script.
Synchronized Agents and Skill Groups for ECE
Agents are common across the multichannel software, but skill groups are application-specific. You can create agents using
ECE or in contact center enterprise solutions and share the agents across applications. When agents or skill groups are created
in ECE, they are simultaneously created in contact center enterprise solutions. If an agent is created in contact center enterprise
solutions, you must enable the agent in ECE before the agent can work on those applications.
Only create, modify, or delete ECE skill groups in ECE. Skill groups are application-specific. When you create a skill group in ECE, the skill group is simultaneously created in the contact center enterprise solutions. But, you cannot enable that skill
group in the core contact center enterprise applications.
Independent Media Queues for ECE
You can configure the multichannel software to route all media through independent queues that are defined by media class.
You can configure agents to log in to only one media type to take either email, text chat, or voice. In this configuration,
requests are queued only to agents who have signed in to the corresponding media application.
You can use independent media queues in both the Unified CCE and ACD environments.
Task
Routing
Task
Routing describes the system's ability to route requests from different media channels to agents who work with customer contacts
in multiple media. Routing scripts can send requests to agents based on business rules regardless of the media channel from
which the request came. For example, based on an agent's skills and current tasks, Unified CCE can route phone, chat, and
email message requests to an agent who works with all these media. The agent can switch media on a task-by-task basis.
You can set up
routing scripts so that multichannel tasks are assigned to the longest
available agent in a skill group or precision queue in same Media Routing
Domain as the task. You can also prioritize multichannel tasks using skill
group and precision queue routing, as you would voice calls.
Because Task
Routing must coordinate an agent's work on multiple tasks across different channels, Task
Routing requires that Unified ICM have complete control over how agents are assigned tasks. Therefore, Task
Routing requires that you use the Unified ICM in a Unified CCE environment.Task
Routing is not supported in legacy ACD environments.
Media Routing Domains
Media Routing Domains (MRDs) organize how requests for each communication medium, such as voice and email, are routed to agents.
For example, the Enterprise Chat and
Email uses a Unified CCE
MRD to route a task to an agent who is associated with a skill group or precision queue and a particular channel.
For Enterprise Chat and
Email, configure MRDs in Configuration Manager. For custom multichannel applications that use the Task Routing APIs, configure MRDs in Unified CCE Administration.
Media Routing Domains and Interruptibility
When you configure MRDs, you indicate whether tasks for the MRD are
interruptible. If the MRD is not interruptible, an agent working on
tasks for that MRD is not assigned tasks from other MRDs. If the MRD is
interruptible, the agent may be assigned tasks from another MRD.
Typically, tasks in which the agent and customer interact synchronously, such as voice calls and chats, are not interruptible.
Email messages are typically interruptible because contact with the customer is asynchronous. Therefore, an agent responding
to an email message may be interrupted by a phone call or chat session.
Use Media Routing
Domains to Categorize Contacts
You can categorize contacts based on the MRD of the route request.
For example, you can have different MRDs for email and chat. You can have a single script for both types of requests that
branches so that it routes email messages and chats to different targets.
Note
For multichannel tasks submitted by applications using the Task
Routing APIs, Unified CCE determines the MRD based on the dialed number/script selector in the task request.
Use the Media Routing Domain node (in the Routing tab of the Palette).
Figure 1. MRD Domain Icon
Insert targets and connections from the MRD node before you define the node's properties.
Note
A branch can include multiple MRDs, but you can associate a single MRD with only one branch.
Following is the properties dialog box for the Media Routing Domain node:
Figure 2. Media Routing Domain Properties
Define Media Routing Domain node properties as follows:
Procedure
Step 1
To associate an MRD with a branch, select the branch:
Click Add.
Choose an MRD from the drop-down list.
Step 2
To delete a branch, select it and click Delete.
Step 3
To rename a branch, select it, click Rename, and type the new name.
Step 4
You can define a branch as Otherwise by selecting the branch and clicking Make Otherwise. Execution follows this branch if none of the specified time ranges apply. You can specify only one Otherwise branch for
the node.
Skill Group and Precision Queue Routing for Nonvoice Tasks
Routing to skill groups and precision queues is largely the same for voice calls and nonvoice tasks. However, the way that
contact center enterprise distributes tasks has the following implications for agents who can handle multiple concurrent tasks:
Precision queues—In precision queue routing, Unified CCE assigns tasks to agents in order of the precision queue steps. Unified CCE assigns tasks to agents who match the attributes for step one, up to their task limit, until all those agents are busy. Unified CCE then assigns tasks to agents who match attributes for step two, and so on. If you configure agents to handle three concurrent
tasks, Unified CCE assigns three tasks to each agent in the first step. It then moves on to the second step and assigns any remaining tasks
to those agents.
Overflow skill groups—Routing scripts can specify a preferred skill group and an overflow skill group. Unified CCE assigns tasks to all agents in the preferred skill group, up to their task limit, before assigning any tasks in the overflow
skill group. If you configure agents to handle three concurrent tasks, Unified CCE assigns three tasks to each agent in the preferred skill group. It then moves on to the overflow skill group and assigns
any remaining tasks to those agents.
Note
The number of available slots is an important factor in the Longest Available Agent (LAA) calculation.
The number of available slots = The maximum concurrent task limit for the MRD that an Agent has logged into - Current tasks being handled by the Agent or routed to the Agent.
If there are multiple skill groups that are part of the queue node, then the skill group that has the higher LAA is picked.
Then, the agents within the picked skill group (or the Precision Queue) who have the highest number of available slots for
non-voice tasks get prioritised.
Agents with the same number of available slots get prioritized based on the time in the available state or the LAA mechanism.
Queue to Agent Node
You can queue a contact directly to an agent by using the Queue to Agent node (in the Queue tab of the Palette).
You can change the Queue to Agent type to:
Specify an agent directly
Select an agent by expression
Change Queue to Agent Type
Procedure
Step 1
In the Queue to Agent properties dialog box, click Change. The Queue Agent Type dialog box opens:
Figure 3. Queue Agent Type
Step 2
To select a specific agent, select Explicit agent references.
Step 3
To select and agent by an expression, select Lookup agent references by expression.
Step 4
Select a Priority between 1 (the highest) and 20 (the lowest).
Step 5
Optionally, select Enable target requery.
Specify an Agent Directly
Following is the properties dialog box of the Queue to Agent node when you select to specify agents directly:
Figure 4. Agent Direct Properties
To specify agents directly:
Procedure
Step 1
If necessary, change the Queue to Agent type to Explicit agent references.
Step 2
In the Agent column, select an agent.
Step 3
In the Media Routing Domain column, select the media routing domain for the selected agent.
Step 4
In the Skill Group column, select the skill group for the selected agent and media routing domain.
Step 5
In the Route column, select the route for the selected agent and media routing domain.
Step 6
Optionally, select Queue if agent not logged in, to have the contact queued to the agent even if the agent is not currently logged in.
Step 7
To test the data you entered, click Validate.
Step 8
Optionally, modify Connection Labels.
Select an Agent by an Expression
Following is the properties dialog box of the Queue to Agent node when you select to use an expression:
Figure 5. Queue to Agent Properties
To specify agents by expression:
Procedure
Step 1
If necessary, change the Queue to Agent type to Lookup agent references by expression.
Step 2
In the Peripheral column, to choose an agent by Peripheral number, choose a peripheral and provide a formula in the Agent Expression that translates
to the Agent’s Peripheral number. If no peripheral is chosen, the agent expression should translate to the SkillTargetID or
Enterprise Name of the agent.
Step 3
In the Agent Expression column, provide a formula using the formula editor that translates to the agent’s Peripheral number or SkillTargetID or agent
Enterprise Name. To choose a peripheral (in Peripheral) and provide a formula that translates to an agent’s Peripheral number.
Note
The Peripheral column controls how the AgentExpression column is evaluated as an ICM ID. However, if you select a Peripheral
from the Peripheral column, then the Agent Expression column is evaluated as an Agent Peripheral number.
Step 4
Optionally, in the Consider if column, enter the formula that evaluates to true for the target when the ICM system executes the Queue to Agent node, or
that target will not be selected. For help in creating a formula, put the cursor in this field and then click the Formula Editor button.
Step 5
Select the Enterprise Skill Group that includes the appropriate skill groups to cover all media routing domain cases for the selected Agent.
Step 6
Select the Enterprise Route that has an appropriate collection of routes, or the Route, matching the agent and media routing domain.
If you do not select either an Enterprise Route or a Route, the following error message appears:
Figure 6. No Enterprise Route or Route Chosen
If you select both Enterprise Route and Route, the following error message appears:
Figure 7. Both an Enterprise Route and a Route Chosen
The specified Enterprise Route or Route is used to send the call to an agent.
Step 7
Optionally, select Queue if agent not logged in, to have the contact queued to the agent even if the agent is not currently logged in.
Step 8
To test the data you entered, click Validate.
Step 9
Optionally, modify connection labels.
RONA and Transfer Scripting for Task
Routing
Note
This section applies to tasks submitted by third-party multichannel applications that use the Task
Routing APIs.
The ServiceRequested call variable is set when tasks are transferred or RONA. You can determine the value of the ServiceRequested call variable in an If node in the routing script. Based on the value of this field, the script can take different actions. For example, the script
can raise the priority of the task so that it goes to the front of the queue.
The relevant ServiceRequested values are:
2: This value identifies a transferred task.
3: This value identifies a RONA task.
Estimated Wait Time Scripting for Task
Routing
Note
This section applies to tasks submitted by third-party multichannel applications that use the Task
Routing APIs.
Customers submitting a task request might want to know approximately how long they will wait for an agent. You can configure
the routing script to provide the customer with an estimate of the wait time. The estimated wait time is calculated once,
when the task enters the queue. The time is not updated as the position in the queue changes.
The default estimated wait time algorithm is based on a running five minute window of the rate of tasks leaving the queue.
Any tasks that are routed or abandoned during the previous 5 minutes are considered as part of the rate leaving queue. For
Precision Queues, the rate leaving the queue represents the rate at which tasks are delivered or abandoned from the entire
precision queue, not any individual Precision Queue steps. The algorithm computes the wait time for each of the queues against
which the task is queued (Skill Groups or Precision Queues) and then returns the minimum estimated wait time.
Note
Queue to Agent is not
supported.
While the queue
builds, the small number of tasks in the queue makes the estimated wait time
less accurate and the value fluctuates rapidly. As the queue operates with more
tasks over time, the estimated wait time is more accurate and consistent.
Scripts for estimated wait time include:
A Set Variable node, Call.EstimatedWaitTime to set the estimated wait time.
A Run External Script node to apply a Network VRU script that returns the estimated wait time to the customer.