Skip to main content
Version: 5.13

Cisco UQ

Limitations

  • External Routing can be used with Omni-Channel in Salesforce Classic Console and Lightning Console. Using both External Routing and Omni-Channel routing in the same Salesforce organization is not supported.

  • Transfer scenarios between External Routing Queues and Omni-Channel Queues are not supported.

  • Status-Based Capacity Model is not supported for Cisco UQ.

  • Pause Work feature introduced with Enhanced Omni-Channel is not supported for Cisco UQ.

Salesforce Omni-Channel

In order to be able to use External Routing in Salesforce, Omni-Channel must be properly configured. Make sure to use Salesforce standard APIs and streaming APIs, versions 48.0 or later to be able to use External Routing.

This guide provides the basic information to be able to configure External Routing for Omni-Channel in Salesforce. If additional information is required, consult the document Omni-Channel for Administrators Guide from Salesforce.

Enable Omni-Channel

Enable Omni-Channel in the Salesforce organization.

  1. Navigate to Setup | Feature Settings | Service | Omni-Channel | Omni-Channel Settings
  2. Check Enable Omni-Channel
  3. Click Save button
  4. 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.

info

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.

  1. Navigate to Setup | Feature Settings | Service | Omni-Channel | Service Channels

  2. Click New button

  3. Complete the configuration:

    Service Channel Name: Case Channel

    Developer Name: CaseChannel

    Salesforce Object: Case

  4. Click Save button

Create 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.

  1. Navigate to Setup | Feature Settings | Service | Omni-Channel | Presence Statuses

  2. Click New button

  3. Complete the configuration:

    Status Name: Ready

    Status Options: Online

    Selected Channels: Case Channel

  4. Click Save button

Set Access to Presence Statuses

To make the newly created Presence Statuses visible for users, assign them to each agent by using either Permission Sets or Profiles:

Method 1: Setup by Permission Set

  1. Go to Users | Permission Sets
  2. Click the name of the Permission Set which should be granted access to statuses, or create a new one.
  3. Click Service Presence Statuses Access
  4. Click Edit
  5. Select the Service Presence Statuses Access to associate with the Permission Set
  6. Click Save
  7. Assign users to the Permission Set by clicking Manage Assignments | Add Assignment.
tip

Assign all users to the Permission Set by clicking Manage Assignments.

Method 2: Setup by Profile

  1. Go to Users | Profiles
  2. Click the name of the Profile you want to give access to the statuses
  3. Click Enabled Service Presence Status Access
  4. Click Edit
  5. Select the Service Presence Statuses Access to associate with the profile
  6. Click Save

Presence Configuration

The default presence Configuration does not have to be updated in order to install the Routing Adapter. Keep in mind that the capacity settings are ignored.

Add Omni-Channel as a Utility Bar Component

As a last step in the Omni-Channel configuration, the Utility Bar Component will need to be configured in the App Manager

  1. Go to Apps | App Manager
  2. In the desired App Name, click on Dropdown menu | Edit
  3. Select Utility Items | Add Utility Item
  4. Select Omni Channel
  5. Save

The Omni Channel Utility Bar Component will now be displayed in the utility bar next to the gadget.

Utility Bar Components

Integrate External Routing for Omni-Channel configuration

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:

  1. Go to Setup | Feature Settings | Service | Omni-Channel | Routing Configurations

  2. Click New

  3. Complete the configuration:

    Routing Configuration Name: ExternalRoutingConfig

    Developer Name: ExternalRoutingConfig

    Routing Model: External Routing

  4. Complete the rest of the configuration based on your Business Logic

  5. Click Save

Queue for External Routing

From Setup, enter “Queues” in the Quick Find box and select “Queues”.

Create a new queue, configure and connect it to the routing configuration created previously.

  1. Go to Setup | Users | Queues

  2. Click New

  3. Complete the configuration:

    Label: RoutingQueue

    Queue Name: RoutingQueue

    Routing Configuration: ExternalRoutingQueue

    Selected Objects: Case

  4. Finish the queue configuration, assigning the proper queue members among the four possible filters: Users, Public Groups, Roles, or Roles and Subordinates.

  5. Click Save

Integrate External Routing for Omni-Channel and Chat configuration

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
  • 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
  • Chats routed with Omni-Channel cannot use supervisor whisper messages and assistance flags with Omni-Channel Supervisor

Remember these limitations when extending the base configuration from the previous chapters for Chat and External Routing.

Enable Wrap-Up Reason for a Media Channel

The Wrap-Up Reason can be enabled for a Media Channel in the Media Routing Domain Settings section of the Media block.
Select "Enable" from the "Wrap-Up Reason" dropdown of the Media channel the setting should be enabled for.
Enable Wrap-Up reason for Media Channel

Configure a routing configuration for Chat queue

Create a new routing configuration for the Chat queue and select External Routing as routing model:

  1. Go to Setup | Feature Settings | Service | Omni-Channel | Routing Configurations

  2. Click New

  3. Complete the configuration:

    Routing Configuration Name: Chat External Routing

    Developer Name: Chat_External_Routing

    Routing Model: External Routing

  4. Complete the rest of the configuration based on your Business Logic. Example:

    Routing Priority: 1

    Push Time-Out(seconds): 20

    Units of Capacity: ``1.00```

  5. Click Save

Queue configuration for Chat

Create a new queue, configure and connect it to the routing configuration created previously. This queue is used to route Chat transcripts via Omni-Channel and External Routing.

  1. Go to Setup | Users | Queues

  2. Click New

  3. Complete the configuration:

    Label: Chat

    Queue Name: Chat

    Routing Configuration: Chat_External_Routing

    Selected Objects: Chat Transcript

  4. Finish the queue configuration, assigning the proper queue members among the four possible filters: Users, Public Groups, Roles, or Roles and Subordinates.

  5. Click Save

Configure Chat buttons

From Setup, enter “Chat Button” in the Quick Find box and select “Chat Buttons & Invitations”.

Create a new setting or edit an existing one in a similar way to the following:

Chat Button for Chats

Chat Button Routing information

Configure Presence Statuses for Chat Buttons

With the provided configuration, Chat will be found in state “online” whenever an agent enters the state “ready”, as all the channels share the same Presence State. This enables the customers Chat Button as soon as an agent is either in a Ready or Busy state.

In order to avoid this and have the ability to manage the Chat channel independently from all other media channels, it is best to configure two additional Presence Statuses:

Presence Status nameCase Channel SelectedChat Channel SelectedChat Channel status
ReadyOnline
Ready for Cases-Offline
Ready for Chats-Online
Busy--Offline

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:

Permission Set “b+s External Routing Addon”

  1. Navigate to Setup | Users | Permission Sets
  2. Click New

Label: b+s External Routing Addon

API Name: b_s_External_Routing_Addon

  1. Set permission for the Push Topic objects and all objects you want to route. In the following example: “Case” and “Chat Transcripts” (for Chat)

  2. Go to Apps | Object Settings

  3. Click on Push Topics

  4. Enable Read permission

  5. Click on Cases

  6. Enable Read and View All permissions.

  7. In order to assign Cases to a failure queue, enable the Edit permission.

  8. Click on Chat Transcripts

  9. Enable Read permission and View All permission

OAuth 2.0 access in Salesforce

Dedicated Routing Adapter UQ requires a Connected App in order to obtain a valid Salesforce Access Token via OAuth 2.

Create a new Connected App

As of Sumemr '25, Connected Apps creation is a functionality controlled by the Allow creation of connected apps preference, which is disabled by default for new orgs and can be enabled in the settings page of the new External Client Apps Setup menu section.

  • From Setup, navigate to Apps | External Client Apps | Settings
  • Under the Connected apps set the Allow creation of connected apps checkbox to On to enable the New Connected App button.
  • Click on New Connected App button
info

If the New Connected App button does not show in the External Client Apps menu, go to Apps | App Manager | New Connected App

The following section shows the minimal required configuration needed in order to allow the external components to connect to your Salesforce Org.

Minimal required configuration

Connected App Name

The name of the Connected App

Example: b+s Case Routing Addon

API Name

The API name of the Connected App

Example: b_s_Case_Routing_Addon

Enable OAuth Settings

Enables authentication via OAuth 2.0. This checkbox must be selected

Callback URL

The URL isn’t actually used, but the value between the client app and the server (the connected app definition) must be the same. Salesforce recommends to use a value that identifies the app. More info in Salesforce documentation

Example: https://example.com

Default: empty

Selected OAuth Scopes

Minimal required Scope: Manage user data via APIs (api)

Enable Client Credentials Flow

Enables authorization through client id and client secret. This checkbox must be selected.

Save

info

After saving, a Connected App may take up to 8-10 minutes before being fully operational.

Click on the Manage Consumer Details button to reveal the Consumer Key and the Consumer Secret. These values are required later in the Routing Adapter ini-File.

Click Cancel to navigate back, click Manage and then Edit Policies.

Client Credentials Flow > Run As

Select the user on behalf of whom the Connected App will run.

The Salesforce User account used to authenticate to the Connected App must have certain permissions and settings in order to communicate with the b+s REST Services:

  • The Permission Set b+s External Routing Addon must be assigned to the User.
  • The Profile of the User must have the setting API Enabled enabled.

More information about authentication can be found in the Force.com REST API Developer Guide.

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 permissions are 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:

Open the Developer Console

Inside the Developer Console, click Debug | Open Execute Anonymous Window or press CTRL+E.

Next, modify the pushTopic.Name value and execute the following code snippet:

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;
info

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 not supported.

tip

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 you already have the Connects for Cisco Contact Center package installed and configured in your Salesforce org.

This chapter only describes Cisco Universal Queue related fields.

Global

Deployment Type

Set the Deployment Type to Cisco Universal Queue to enable Cisco Universal Queue related fields.

Media

Use Legacy Cisco Universal Queue

Set this field to No

Default: No

danger

Note: Cisco Universal Queue Legacy is no longer supported.

Cisco Universal Queue


Media Routing Domain Settings

In this section you can configure one or two media channels.

Channel

This label corresponds to the Channel name to be configured.

Default: Ticket or Chat

Media Routing Domain Id

Media Routing Domain Id of the Cisco media channel. The Cisco engineer has to provide the identifier of the media Channel. More information in Media Routing Domains

Wrap-Up Reason

If Enabled, gives the agent the possibility of setting up Wrap-Up Reasons for Media Routing Work Items.

Max Number of Work Items

Maximum number of dialogs to be routed to the agent simultaneously per channel.

Online Service Presence Status

Salesforce Omni-Channel presence status in which only the configured channel is online.


Presence State Available All

Salesforce Omni-Channel presence status in which all media channels are online.

Presence State Busy All

Salesforce Omni-Channel presence status in which all media channels are busy.

Work Item Id Variable

The peripheral variable (1-10) or ECC variable that is used to receive the Salesforce work item ID from the Routing Adapter.

Default: empty

info

For PV use PV<n> (Range: PV1-PV10). For ECC variable use the form user.ECCVariableName

info

This setting has to match with the “MediaUrlVariable” setting in the Routing Adapter UQ SFDCRoutingAdapter.ini configuration file.

Support Chat Button State

This setting has to be checked in order to switch the chat button to offline, if all agents are talking or on full capacity.

Agent Work Layout

Please refer to the Agent Work Layout section of the Configuration page.

Additional Media Settings

End Media Task From Gadget

If checked, a button is displayed on the gadget that ends an Omni Work Item and removes it from the Omni Widget.

Disabled Media Actions

  • Chat Item Reject : If checked button to reject Chats is disabled.
  • Ticket Item Reject : If checked button to reject Tickets is disabled.
  • Task Screen Pop : If unchecked, new tasks pop to the screen. If checked, new task will not screen pop.