Using External Routing solution with Salesforce

External routing allows you to use your existing communication platform with Salesforce Omni-channel.  In a ‘pure’ implementation, Salesforce decides which agent should answer an incoming work item.  When you prefer using the decision engine of your existing unified communication platform, External Routing allows you to do so.

Why External Routing?

Salesforce Omnichannel routing allows to make intelligent routing of non-voice (Case, Chat..) interactions. With the introduction of Service Cloud Voice, now also incoming voice calls are nicely integrated in the Omni-channel widget in Salesforce.

But there may be (technical) needs to continue using your existing decision engine for routing work items to agents.  Often, this happens because complex routing logic has been built in the existing platform.  It’s possible that the same complexity can not be built in Salesforce.  But changing a highly customized decision engine will also take a lot of testing when migrating functionalities.  And perhaps you want a solution with less (testing) impact.

In such scenario, External Routing may be a good option for you.  First, the following picture shows the communication flow that should get setup between Salesforce and your communication platform.

External Routing Technical Architecture

We expect that calls have been, and will still be, routed via your unified communication platform.  Using External Routing is specifically needed for the non-voice channels.  So, for Cases or Chats that arrive in Salesforce

Also read

External Routing Communication Process

Note: using External Routing needs Salesforce API’s, but it also needs API’s on the side of your Unified Communication Platform! This integration is custom development.

As you see also in the picture above, the communication flow is as follows:

  1. Salesforce sends events using Salesforce Streaming APIs for the PendingServiceRouting object.
  2. Communication Platform creates a session to authenticate.
  3. Communication Platform queries Salesforce for work details, agent availability, and more.
  4. Communication Platform determines the routing decision.
  5. AgentWork is created and pushed to the specified agent in Salesforce.

This page contains links to the Salesforce API resources for External Routing.

As mentioned above, you also require updates on the side of your communication platform.  On Salesforce side, these are the steps to integrate your external routing implementation with Omni-Channel

  1. Create a Routing Configuration and Queue for External Routing
  2. Create a PushTopic for PendingServiceRouting
  3. Listen to the PushTopic
  4. Create AgentWork

Expected Behavior for External Routing with Omni-Channel

With this implementation, incoming Omni-Channel Work Items in Salesforce, will get routed via your Communication Platform.

The expected behavior from Salesforce point-of-view is as follows (for incoming chat interaction):

  1. Chat visitor initiates a chat request from the external routing button.
  2. PendingServiceRouting is created.
  3. Communication Platform is notified by a pushTopic event (EventType=Create, isPushed=false).
  4. Communication Platform creates AgentWork using the PSR.
  5. Agent is routed the chat request (AgentWork Status = Assigned).
  6. Agent accepts the chat request (AgentWork Status = Accept).
  7. Omni-Channel deletes the PendingServiceRouting after Agent accepts the work.
  8. Communication Platform is notified by a pushTopic event (EventType=Delete).

Want to know more?

Are you planning or evaluating an omni-channel implementation with Salesforce? But you don’t exactly know how to start? Get in touch with us for more information.