Increase Customer Satisfaction with Skills-Based Routing for Bots

Use skills-based routing with a bot to match your customers with an agent that has the skills required to complete the task. Skills let you define attributes that are important to your business, such as language ability, certifications, or product knowledge. The bot can now attribute multiple skills to a conversation and transfer to agents that match.

Where: This change applies to Lightning Experience and Salesforce Classic in Enterprise, Performance, Unlimited, and Developer editions. Setup for Einstein Bots is available only in Lightning Experience.

Who: Einstein Bots is available to Salesforce orgs with both Service Cloud and Chat user licenses, or to orgs with Digital Engagement user licenses. Each applicable org is provided with 25 Einstein Bots conversations per month for each Chat or Digital Engagement user with an active subscription.

How: Prerequisites:
  • Chat enabled
  • Omni-Channel setup with Skill-Based Routing enabled (if you’re new to Skill Based Routing, complete steps 1–5 in the setup instructions)
  • Skills created, with a list of the 18-digit skill IDs
  • Einstein Bots enabled


Limitations with Skills-Based Routing and Einstein Bots:

  • Einstein Bots do not support attribute setup with Skills-Based Routing.
  • If a transfer occurs and no agents are available, the bot routes to a system “no agent available” dialog.

  1. In your bot, create a list variable with the data type of ID. Set the SObject Type to Skill. An image of creating the skill ID variable.
  2. Create an Apex class which adds a set of skill IDs to a list. We recommend adding the list of Skill IDs as a comment for reference.
    global with sharing class GetSkillsIdsAction {
        @InvocableMethod(label='Get Skills Ids' description='Return Ids of Skills') 
        global static List<List<Id>> getSkillsIds() {
            List<Id> skillsIds = new List<Id> ();
            * 18 char Skills Ids in the org:
            * Dutch - 0C5RM000000028I0AQ
            * French - 0C5RM000000028D0AQ
            * Spanish - 0C5RM000000026R0AQ
            return new List<List<Id>> {skillsIds};
  3. In the Einstein Bot Builder, add an Action Dialog Step to call the Apex class and set the skills IDs in the bot variable. Creating an apex ction to invoke the skills Apex class.
  4. Add a Rule Dialog Step without conditions. In the Rule Action, select to Transfer to the bot variable. A rule dialog step without conditions that will route the conversation to a list of skills.