Skills-based routing in Salesforce

Routing work items according to agent skills

Salesforce has introduced Skills-based routing.  Before, it was only possible to use Queue-based routing, so this is a new interesting enhancement in Salesforce Service Cloud. How does this relate to Queue-based routing or routing via a communication platform?

Skills-based routing vs Queue-based routing

Queue-based routing is generally designed as one agent has one skill.  An agent may be assigned access to different Queues, but one Work item may be assigned to one Queue only.  In practice this means something like this:

  • You create a Queue for English language
  • You create a Queue for Technical questions

In this scenario you may assign the Work item to either the English language Queue or the Technical questions queue.  The Work item can’t be assigned to both Queues.  If you want to make these kind of combinations with Queue-based routing then you have to create a separate Queue for English Technical Questions, another one for French Technical Questions, and so on.

With Skills-based routing this is different. It looks at the skills that are required to complete a Work item and matches these skills to the skills that are assigned to the agent’s skills.  Omnichannel routes the Work item to the first agent that has all requested skills and which is available to handle the Work item.

Routing incoming questions in Salesforce

Interesting to see is that Skills-based routing also allows routing of Chat requests (beta in Winter ’19).  This is next to the already available Cases, Leads, Orders and Custom objects.

Skills may be freely chosen.  For example you could create skills for languages (English, French, Dutch), for product knowledge (software or hardware), etc.  You could also – optionally – assign a skill proficiency (1-10). Any agent may have a combination of skills and proficiency assigned.  So when a new Work item comes in, the new items tries to match with the assigned skills of the available agents.

Skills-based routing in Salesforce vs your communication platform

When working in a call center environment, you may wonder how this relates to Skills-based routing that mostly already happens via your communication platform (PABX).

Simply said: these are totally separate from each other.

For incoming calls, the routing configuration happens on the communication platform.  Using Salesforce Skills-based routing for other channels, requires to configure (and maintain) two environments.

I’ve done implementations where ALL incoming Work items – except chat – get routed via the communication platform. As an example:

  • Web-to-Case creates a new Case,
  • The Id of the Case is pushed to the communication platform, and
  • There the decision is taken which is the best-placed agent to answer the question
  • The communication platform also ensures that the Case is pushed to the agent

In such scenario, by accepting the incoming question via the AppExchange widget, the agent immediately gets – for instance – the Case displayed on the screen and the agent is set to busy.  As all communications flow via the communication platform, the agent’s status is managed over all different channels.

But so, in this scenario the Salesforce Skill-based routing would not get used.

I think that this is still a big item when you want uniform routing and reporting. For as long as voice conversations are not part of the Salesforce (Skills- or Queue-based routing) solution, there remain two places where some kind of configuration has to happen.  Having two routing engines also means that the operational call center reporting happens in two places and somehow you will want to integrate the data to have uniform reporting.

Limitations of Skills-based routing in Salesforce

I believe that the last section here above is already an important limitation.  Certainly when you expect to have a single place to manage routing and/or you want to have fully integrated reporting.

Next to this, at this point in time, Skills-based routing:

  • doesn’t support external routing
  • can’t be used for LiveMessage messaging session, SOS video chats or Salesforce records for other objects (except the ones mentioned earlier in this article)
  • transfer to skill is not supported for Live Agent chats
  • If no agent is available with the correct skills when the records get created, then the work item is not routed


This as a short introduction.  How do you see this working in your company?