Cisco UQ
Limitations
- External Routing can be used within Omni-Channel in Salesforce Lightning Console. Using both External Routing and Omni-Channel routing in the same Salesforce organization is not supported.
- Status-Based Capacity Model is not supported for Cisco UQ.
- Transfer scenarios between External Routing Queues and Omni-Channel Queues are not supported.
- Pause Work feature introduced with Enhanced Omni-Channel is not supported for Cisco UQ.
- Omni-Channel Interruptible Capacity Model is not available for Cisco UQ. Agent capacity and channel interruptibility are managed by Cisco CCE.
- The agent might see call workitems and media workitems both coming in at the same time if they are routed at the same time. This is a known issue and will be improved in a future release.
Salesforce Omni-Channel
This guide provides the basic information to be able to configure External Routing for Omni-Channel in Salesforce.
Enable Omni-Channel
Enable Omni-Channel in the Salesforce organization.
- From Setup, enter
Omni-Channel Settings
in the Quick Find box, then selectOmni-Channel Settings
. - Check
Enable Omni-Channel
. - Click
Save
button. - Refresh the page to display the Omni-Channel settings.
Create Service Channels
Service Channels define what types of work (like chats, cases, or custom objects) can be routed through Omni-Channel.
You need a Service Channel for each objects you want to route. This also includes the Chat Service Channel if it is not present after enabling Omni-Channel.
- From Setup, enter
Service Channels
in the Quick Find box, then selectService Channels
. - Click
New
button. - Complete the configuration:
- Enter the
Service Channel Name
. - The
Developer Name
is populated automatically. It can be changed if desired. - Select the
Salesforce Object
which should be routed via this Service Channel.
- Enter the
- Click
Save
button.
Create and assign Presence Statuses
The initial deployment of the External Routing Add-on uses two generic Presence Statuses: Ready and Busy. Consequently, all Service Channels for External Routing must be assigned to the same Ready State.
The configuration for the Presence Statuses is described here
Full State Mapping between Cisco and Salesforce
To support the full state mapping between Cisco and Salesforce, there has to be an Available state for each possible Cisco channel combination. The full mapping table containing one Salesforce Object routed via each Cisco channel is displayed below.
If you don't use a messaging or task channel, don't configure the Presence Statuses containing Salesforce Objects routed via these channels.
If you route multiple Salesforce Objects via the same Cisco channel, add all the corresponding Service Channels to each Presence Status related to the Cisco channel.
Omni Presence Status | Omni Service Channels | Cisco Channels |
---|---|---|
Available All | Phone , Messaging , Cases | Voice , Chat , Task |
Available Voice | Phone | Voice |
Available Messaging | Messaging | Chat |
Available Cases | Cases | Task |
Available Voice + Messaging | Phone , Messaging | Voice , Chat |
Available Voice + Cases | Phone , Cases | Voice , Task |
Available Messaging + Cases | Messaging , Cases | Chat , Task |
Integrate External Routing for Omni-Channel
External routing requires a separate Routing Configuration and Queue in Omni-Channel. These separate objects define routing behavior and assign work to agents.
Routing Configuration
Create a new Routing Configuration and select External Routing as routing model:
- From Setup, enter
Routing Configurations
in the Quick Find box, then selectRouting Configurations
. - Click
New
button. - Complete the configuration:
- Enter the
Routing Configuration Name
. - The
Developer Name
is populated automatically. It can be changed if desired. - Select
External Routing
as the Routing Model.
- Enter the
- Complete the rest of the configuration based on your Business Logic.
- Click
Save
button.
Queue for External Routing
Create a new Queue, configure and connect it to the Routing Configuration created previously.
Queues with multiple object types can cause problems when using Omni-Channel routing for chats. It is recommended to create a separate queue for each object type, such as Chats, Cases, and Leads, instead of setting queues to handle multiple object types.
- From Setup, enter
Queues
in the Quick Find box, then selectQueues
. - Click
New
button. - Complete the configuration:
- Enter the
Label
. - Enter the
Queue Name
. - Select the
Routing Configuration
which was created in the previous step. - Select the
Supported Objects
which should be routed via the queue. They should be the same as configured within the Service Channels.
- Enter the
- Complete the rest of the configuration, assign the proper queue members among the four possible filters: Users, Public Groups, Roles, or Roles and Subordinates.
- Click
Save
button.
Messaging for In-App and Web Configuration (Optional)
Salesforce allows External Routing configurations for Omni-Channel and Chat working at the same time. Important note: there are limitations that have to be considered:
- It is not possible to transfer a chat from a button using Chat routing to a button using Omni-Channel routing.
- It is not possible to use direct-to-agent routing with chats routed by Omni-Channel.
- It is not possible to use chat conferencing with chats routed by Omni-Channel.
- Chats routed with Omni-Channel cannot use supervisor whisper messages and assistance flags with Omni-Channel Supervisor.
- Live Agent Chats are not supported.
Configure Messaging for In-App and Web
The configuration steps are found in the official Salesforce documentation.
Behavior of External Routing for Omni-Channel
For further insights into External Routing for Omni-Channel consult the Salesforce Omni-Channel Developer Guide.
Salesforce User for Routing Adapter
The Routing Adapter requires a Salesforce User in order to login to Salesforce and to receive and query routing information. This User must have the permission to:
- Read the PushTopic standard object to receive notifications.
- Read the entities to be routed (e.g. Case).
- Reassign entities (e.g. Case) to a failure queue.
- Read AgentWork in order to get re-route reasons.
This can be achieved by configuring a new Salesforce Permission Set and assigning it to the User:
- From Setup, enter
Permission Sets
in the Quick Find box, then selectPermission Sets
. - Click
New
button. - Complete the configuration:
- Enter the
Label
, e.g.b+s External Routing Addon
. - The
API Name
is populated automatically. It can be changed if desired.
- Enter the
- Click
Save
button. - Set permission for the Push Topic objects and all objects you want to route. In the following example:
Cases
andMessaging Sessions
(for Chat):- Click
Object Settings
within the previously created Permission Set. - Click
Push Topics
and enableRead
permission. - Click
Cases
and enableRead
andView All
permissions. In order to assign Cases to a failure queue, enable theEdit
permission. - Click
Messaging Session
and enableRead
andView All
permission.
- Click
OAuth 2.0 Access in Salesforce
The Routing Adapter for UQ requires a Connected App in order to obtain a valid Salesforce Access Token via OAuth 2.0.
Create a new Connected App
The Connected App can be created as described here.
Streaming API in Salesforce
Salesforce uses the Streaming API to push routing events to 3rd-party applications. In order to allow the Routing Adapter to receive notifications, the Salesforce Streaming API must be available and ready to use inside the organization.
Required Permission
The Streaming API
permission must be enabled.
To verify that the Streaming API
permission is enabled in your organization, from Setup, enter User Interface
in the Quick Find box, then select User Interface
.
Push Topic
In order to notify the Routing Adapter about new cases, chats and other entities, it is necessary to configure a Streaming API Push Topic to which the Routing Adapter will subscribe.
The easiest and most convenient way to provide a Push Topic is to use the Salesforce Developer Console:
Inside the Developer Console, click Debug | Open Execute Anonymous Window or press CTRL+E.
Next, modify the pushTopic.Name
value in the code snipped below and execute it:
PushTopic pushTopic = new PushTopic();
pushTopic.Name = 'PT_CNX_ExternalRouting';
pushTopic.Query = 'Select Id,Serial,QueueId,WorkItemId,IsPushed,IsTransfer,ServiceChannelId,LastDeclinedAgentSession,CreatedDate from PendingServiceRouting where RoutingModel = \'ExternalRouting\'';
pushTopic.ApiVersion = 59.0;
pushTopic.NotifyForOperationCreate = true;
pushTopic.NotifyForOperationDelete = true;
pushTopic.NotifyForOperationUpdate = true;
pushTopic.NotifyForOperationUndelete = false;
pushTopic.NotifyForFields = 'Referenced';
insert pushTopic;
The query provided in pushTopic.Query defines the matching set of data that will cause a notification for the Routing Adapter. Multiple Routing Configurations / multiple Routing Adapter instances are not supported.
In order to delete a PushTopic, use the Developerforce Workbench.
Installation in Salesforce
The installation steps in this chapter are made inside the Salesforce user interface. It is assumed that the b+s Connects for Service Cloud Voice package is installed and configured in the Salesforce org.
The Cisco Universal Queue specific fields of the Contact Center are described here.