Task Routing
Task Routing describes the system's ability to route requests from different media channels to any agents in a contact center.
You can configure agents to handle a combination of voice calls, emails, chats, and so on. For example, you can configure an agent as a member of skill groups or precision queues in three different Media Routing Domains (MRD) if the agent handles voice, e-mail, and chat. You can design routing scripts to send requests to these agents based on business rules, regardless of the media. Agents signed into multiple MRDs may switch media on a task-by-task basis.
Enterprise Chat and Email provides universal queue out of the box. Third-party multichannel applications can use the universal queue by integrating with CCE through the Task Routing APIs.
Task Routing APIs provide a standard way to request, queue, route, and handle third-party multichannel tasks in CCE.
Contact Center customers or partners can develop applications using Customer Collaboration Platform and Finesse APIs in order to use Task Routing. The Customer Collaboration Platform Task API enables applications to submit nonvoice task requests to CCE. The Finesse APIs enable agents to sign into different types of media and handle the tasks. Agents sign into and manage their state in each media independently.
Cisco partners can use the sample code available on Cisco DevNet as a guide for building these applications (https://developer.cisco.com/site/task-routing/).

Customer Collaboration Platform and Task Routing
Third-party multichannel applications use Customer Collaboration Platform'sTask API to submit nonvoice tasks to CCE.
The API works in conjunction with Customer Collaboration Platform task feeds, campaigns, and notifications to pass task requests to the contact center for routing.
The Task API supports the use of Call variables and ECC variables for task requests. Use these variables to send customer-specific information with the request, including attributes of the media such as the chat room URL or the email handle.
![]() Note |
CCE solutions support only the Latin 1 character set for Expanded Call Context variables and Call variables when used with Finesse and Customer Collaboration Platform. Arrays are not supported. |
CCE and Task Routing
CCE provides the following functionality as part of Task Routing:
-
Processes the task request.
-
Provides estimated wait time for the task request.
-
Notifies Customer Collaboration Platform when an agent has been selected.
-
Routes the task request to an agent, using either skill group or precision queue based routing.
-
Reports on contact center activity across media.
Finesse and Task Routing
Finesse provides Task Routing functionality via the Media API and Dialog API.
With the Media API, agents using third-party multichannel applications can:
-
Sign into different MRDs.
-
Change state in different MRDs.
With the Dialog API, agents using third-party multichannel applications can handle tasks from different MRDs.
Task Routing Deployment Requirements
Task Routing for third-party multichannel applications deployment requirements:
-
Finesse and Customer Collaboration Platform are required. Install and configure Finesse and Customer Collaboration Platform before configuring the system for Task Routing.
See the Finesse documentation and Customer Collaboration Platform documentation.
By default, access to the Customer Collaboration Platform administration user interface is restricted. Administrator can provide access by unblocking the IP addresses of the clients. For more details, see the Control Customer Collaboration Platform Application Access topic in the Cisco Customer Collaboration Platform Installation and Upgrade Guide guide.
-
You can install only one Customer Collaboration Platform machine in the deployment.
-
Customer Collaboration Platform must be geographically colocated with one side of the Media Routing Peripheral Gateway (MR PG).
-
Install Customer Collaboration Platform in a location from which CCE, Finesse, and the third-party multichannel Customer Collaboration Platform Task Routing application can access it over the network.
If you install Customer Collaboration Platform in the DMZ, open a port for CCE and Finesse to connect to it. The default port for CCE to connect to Customer Collaboration Platform is port 38001. Finesse connects to Customer Collaboration Platform over HTTPS, port 443.
Install the third-party multichannel application locally with Customer Collaboration Platform, or open a port on the Customer Collaboration Platform server for the application to connect to it.
Supported Functionality for Third-Party Multichannel Tasks
Blind transfer is supported for third-party multichannel tasks submitted through the Task Routing APIs.
We do not support the following functionality for these types of tasks:
-
Agent-initiated tasks.
-
Direct transfer.
-
Consult and conference.
Plan Task Routing Media Routing Domains
Media Routing Domains (MRDs) organize how requests for each communication medium, such as voice and email, are routed to agents. You configure an MRD for each media channel in your deployment.
Finesse agents can sign in to any of the multichannel MRDs you create for Task Routing.
Important factors to consider when planning your MRDs include the following:
-
Whether the MRD is interactive.
-
The maximum number of concurrent tasks that an agent can handle in an MRD.
-
Whether the MRDs are interruptible.
-
For interruptible MRDs, whether Finesse accepts or ignores interrupt events.
To configure the settings and parameters described in the following sections, see the following documents:
-
Unified CCE Administration, Unified CCE Configuration Manager, and Unified CCDM Portal Configuration
Interactive and Non-interactive MRDs
Interactive tasks are tasks in which an agent and customer communicate in real time with each other, such as chats and SMS messages. The customer usually engages with the agent through an application, like a chat window, and leaves this application open while waiting to be connected to an agent. Non-interactive tasks are asynchronous, such as email. The customer submits the request and then may close the application, checking later for a response from an agent.
API Parameter or Setting |
API/Tool |
Possible Values |
|
---|---|---|---|
Interactive Task/MRD |
Non-interactive Task/MRD |
||
requeueOnRecovery Whether Customer Collaboration Platform re-queues or discards the task when Customer Collaboration Platform recovers from a failure. Set this parameter when submitting a task request. |
Customer Collaboration Platform Task Submission API |
False - customers are waiting at an interface for an agent and can be notified if there is a problem. You don't need to resubmit these tasks. |
True - customers are not waiting at an interface for an agent, and there is no way to alert them that there was a problem. You need to resubmit these tasks. |
dialogLogoutAction Whether active tasks are closed or transferred when an agent signs out or loses presence. Set this parameter when an agent signs in to a Media Routing Domain. |
Finesse Media Sign In API |
Close- customers are engaged with an agent, and can be notified that the task has ended. |
Transfer - customers are not engaged with an agent, and there is no way to alert them that the task has ended. |
Start Timeout The amount of time that the system waits for an agent to accept an offered task. When this time is reached, the system makes the agent not routable and re-queues the task. Set this parameter when configuring an MRD. |
Media Routing Domains tool in Unified CCE Administration |
Shorter duration - customer is waiting at an interface for the agent |
Longer duration - customer is not waiting at an interface for an agent |
Monitoring status of submitted tasks You can monitor status of submitted and queued tasks using either the Customer Collaboration Platform Task API to poll for status or Customer Collaboration Platform XMPP BOSH eventing. |
Customer Collaboration Platform Task API or XMPP BOSH eventing |
Use Customer Collaboration Platform Task API status polling for MRDs when you want to monitor the status of a single contact/task. |
Use Customer Collaboration Platform XMPP BOSH eventing to receive updates on all contacts/tasks in the campaign supporting Universal Queue over one channel. |
Maximum Concurrent Tasks Per Agent
Specify the maximum number of concurrent tasks for an agent in an MRD when an agent signs into the Finesse application, using the maxDialogLimit parameter in the Finesse Media - Sign In API.
See the Solution Design Guide for Cisco Hosted Collaboration Solution for Contact Center at https://www.cisco.com/c/en/us/support/customer-collaboration/unified-contact-center-enterprise/products-implementation-design-guides-list.html for the maximum number of tasks supported within an MRD and across MRDs for a single agent.
For agents handling interactive tasks, consider how many concurrent tasks an agent can handle reasonably. How many simultaneous chat sessions, for example, can an agent handle and provide good customer care? If you are using precision queue routing, keep in mind that CCE assigns tasks to agents who match attributes for step one, up to their task limit, until all of those agents are busy. CCE then assigns tasks to agents who match attributes for step two, up to their task limit, and so on.
Interruptible and Non-Interruptible MRDs
When you create an MRD in the Unified CCE Administration Media Routing Domains tool, you select whether the MRD is interruptible.
-
Interruptible: Agents handling tasks in the MRD can be interrupted by tasks from other MRDs. Non-interactive MRDs, such as an email MRD, are typically interruptible.
-
Non-interruptible: Agents handling tasks in the MRD cannot be interrupted by tasks from other MRDs. The agents can be assigned tasks in the same MRD, up to their maximum task limits. For example, an agent can handle up to three non-interruptible chat tasks; if the agent is currently handling two chat tasks, CCE can assign the agent another chat, but cannot interrupt the agent with a voice call. Interactive MRDs, such as a chat MRD, are typically non-interruptible. Voice is non-interruptible.
When an agent is working on a non-interruptible task, CCE does not assign a task in any other MRD to the agent. Any application handling the non-voice MRDs must follow the same rule. In certain cases, it is possible that a task from another media routing domain gets assigned to an agent who is working on a non-interruptible task in an MRD.
For example, if an agent is working on a non-interruptible chat MRD and makes an outbound call (internal or external) using the desktop or phone, CCE cannot prevent the agent from making that call. Instead, the system handles this situation differently. CCE marks the agent temp not routable across all media domains until the agent has completed all non-interruptible tasks the agent is currently working on. Because of this designation, the agent is not assigned any new tasks from any MRDs until finishing all current tasks. Even if the agent tries to go ready or routable, the agent's temp not routable status is cleared only after all tasks are complete.
![]() Note |
If you change the MRD from interruptible to non-interruptible or vice versa, the change takes effect once the agent logs out and then logs back in on that MRD. |
Accept and Ignore Interrupts
Specify whether an MRD accepts or ignores interrupt events when an agent signs into the Finesse application, using the interruptAction parameter in the Finesse Media - Sign In API. This setting controls the agent's state in an interrupted MRD and ability to work on interrupted tasks. The setting applies only when a task from a non-interruptible MRD interrupts the agent.
-
Accept: When an agent is interrupted by a task from a non-interruptible MRD while working on a task in an interruptible MRD, Finesse accepts the interrupt event.
The agent, CCE task, and Finesse dialog state in the interrupted MRD change to INTERRUPTED.
The agent cannot perform dialog actions while a task is interrupted.
Important
The application is responsible for disabling all dialog-related activities in the interface when an agent's state changes to INTERRUPTED.
The agent's time on task stops while the agent is interrupted.
Example: An agent has an email task for 20 minutes, and is interrupted for 3 of those minutes with a chat task. The handled time for the email task is 17 minutes, and the handled time for the chat task is 3 minutes.
-
Ignore: When an agent is interrupted by another task while working on a task in an interruptible MRD, Finesse ignores the interrupt event.
The new task does not affect any of the agent's other assigned tasks. The agent, CCE task, and Finesse dialog state in the interrupted MRDs do not change.
The agent can perform dialog actions on original task and the interrupting task at the same time. The agent's time on the original task does not stop while the agent is handling the interrupting task.
Example: An agent has an email task for 20 minutes, and is interrupted for 3 of those minutes with a chat task. The handled time for the email task is 20 minutes, and the handled time for the chat task is 3 minutes. This means that during a 20-minute interval, the agent handled tasks for 23 minutes.
If an agent is working on a task in an interruptible MRD and is routed a task in another interruptible MRD, CCE does not send an interrupt event. Therefore, interruptAction setting does not apply.
Plan Dialed Numbers
Dialed numbers, also called script selectors, are the strings or numbers submitted with Task Routing task requests through Customer Collaboration Platform. Each dialed number is associated with a call type, and determines which routing script CCE uses to route the request to an agent.
Dialed numbers are media-specific; you associate each one with a Media Routing Domain.
For Task Routing, plan which dialed numbers the custom Customer Collaboration Platform application will use when submitting new task requests. Consider whether you will use the same dialed numbers for transfer and tasks that are requeued on RONA, or if you need more dialed numbers.
![]() Important |
You must associate each Task Routing dialed number with a call type. The default call type is not supported for Task Routing. |
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.
Agent State and Agent Mode
An agent's state and routable mode in an MRD work together to determine whether CCE routes tasks to the agent in that MRD.
Agent Routable Mode
The agent's routable mode controls whether CCE can assign the agent tasks in that MRD. If the agent is routable, CCE can assign tasks to the agent. If the agent is not routable, CCE cannot assign tasks to the agent.
The agent changes to routable/not routable through Finesse Media - Change Agent to Routable/Not Routable API calls.
Agent State
The agent's state in an MRD indicates the agent's current status and whether the agent is available to handle a task:
-
Ready: The agent is available to handle a task.
-
Reserved/Active/Paused/Work Ready/Interrupted: The agent is available to handle a task if the agent has not reached their maximum task limit in the MRD.
-
Not Ready: The agent is not available to handle a task.
The agent changes to Ready and Not Ready through calls to the Finesse Media - Change Agent State API. The agent's state while working on a task depends on the actions the agent performs on the Finesse dialog related to the task, through calls to the Finesse Dialog - Take Action on Participant API.
How Mode and State Work Together to Determine if an Agent Receives Tasks
CCE will route an agent a task in the MRD if ALL of the following are true:
-
The agent's mode is routable, and
-
The agent is in any state other than NOT_READY, and
-
The agent has not reached the maximum task limit in the MRD, and
-
The agent is not working on a task in a different and non-interruptible MRD.
CCE will NOT route an agent a task in the MRD if ANY of the following are true:
-
The agent's mode is not routable, or
-
The agent is NOT_READY, or
-
The agent has reached the maximum task limit in the MRD, or
-
The agent is working on a task in a different and non-interruptible MRD.
Why Change the Agent's Mode to Not Routable?
By changing the agent's mode to not routable, you stop sending tasks to the agent without changing the agent's state to Not Ready. You may want to make an agent not routable if the agent is close to ending the shift, and needs to complete in progress tasks before signing out.
If an agent changes to Not Ready state while still working on tasks, CCE reports show those tasks as ended; time spent working on the tasks after going Not Ready is not counted. By making the agent not routable instead of Not Ready, the agent's time on task continues to be counted.
In RONA situations, in which agents do not accept tasks within the Start Timeout threshold for the MRD, Finesse automatically makes agents not routable. Finesse resubmits the tasks through for routing through Customer Collaboration Platform. The application must make the agent routable in order for the agent to receive tasks again.
Customer Collaboration Platform and Finesse Task States
In most cases, Customer Collaboration Platform social contact states do not map directly to Finesse dialog states. For Customer Collaboration Platform, social contacts are created when the customer submits a task request. For Finesse, the dialog with which the agent engages with the customer is created when the task is routed to the agent.
This table shows the relationships between Customer Collaboration Platform social contact task states and Finesse dialog states.
Customer Collaboration Platform Social Contact Task State |
Finesse Dialog State |
---|---|
Unread: The task request has not been submitted to the contact center. |
None |
Queued: The task request is successfully submitted to the contact center as a result of creating a new task or resubmitting a task due to agent transfer, automatic transfer on agent logout, or automatic transfer for RONA. |
None |
Reserved: The task is assigned to an agent. This state includes all work on a task. |
Offered: The dialog is being offered to the agent. |
Accepted: The agent accepted the dialog but has not started working on it. |
|
Active: The agent is working on the dialog. |
|
Paused: The agent paused the dialog. |
|
Wrapping Up: The agent is performing wrap up activity on the dialog. |
|
Interrupted: The agent is interrupted with a task from a non-interruptible Media Routing Domain. The agent cannot work on this task until the interrupting task is complete. |
|
Handled: Customer Collaboration Platform receives a handled notification from Finesse indicating that the task ended. |
Closed: The agent ended the task. Finesse sends a handled notification to Customer Collaboration Platform. |