Salesforce Omni-channel feature is used to route work to agents in real time based on the routing configuration you define. You can use this feature to route cases, leads, chats, social posts, custom objects etc to the users you need.
Configuring simple Omni-channel setup to route records to agents is complex. It becomes even more complex when you are trying to route records to users/agents based on their skills. Here we outline the steps needed for simple omni-channel routing and skill based omni-channel routing
Simple Omni-Channel Routing
- Enable Omni Channel
- Setup => Check "Enable Omni-Channel" checkbox
- Create a Service Channel for your object (can select case, lead, custom object etc)
- Setup => Service Channel => Click "New" and create a service channel for the object you need
- Create Routing configuration
- Setup => Routing Configuration => New
- Routing Models (Least Active => Person with least number of cases, Most Available => Can give different capacity for agents - eg junior agents get half capacity)
- Create queues and assign routing configuration from previous step
- Create Presence Configuration
- Setup => Presence Configuration => New
- Can specify max capacity per agent
- Create Presence Statuses
- Setup => Presence Status => New
- Examples - busy, available etc
- Assign statuses to profile
- Go to the profile and assign statuses to the profile
- Add Omni-channel component to app
- Create/Edit any console app and add "Omni-Channel" component to the utility bar
- Go to "Omni Supervisor" tab and you will be able to see status of agents
End to end walkthrough ( Credits to Salesforce Exclusive channel)
Omni-Channel configuration with Skill based routing
- Enable Omni Channel
- Setup => Check "Enable Omni-Channel" checkbox and "Enable Skill-based routing" checkbox
- Create a Service Channel for your object (can be case, lead, custom object etc)
- Setup => Service Channel => Click "New" and create a service channel for the object you need
- Create Skills
- Setup => Skills => New
- Usually languages and product family names are used as skills
- Create Service Resource
- Created from "Service Resource" tab. This basically registers users as agents who are ready to work on records
- Service resources can be assigned with skill in "Skills" related list with optional start date and end date
- Route cases to agents
- Routing using Apex
- Create trigger/process builder that runs apex when a new case is created
- Insert PendingServiceRouting record in IsReadyForRouting value as false
- Create "SkillRequirement" record with skills required as junction record between PendingServiceRouting and skill. Use case description/other fields to find skills required
- Change IsReadyForRouting value to true on PendingServiceRouting records
- Routing using Flow
- Create an auto launched flow that gets called on case creation
- Use "Routing" action and pass (record Id, configuration Id and skill Ids). Salesforce will take care of routing.
- If flow based routing is used routing configuration also needs to be created
- Routing using Apex
- Create Presence Configuration
- Setup => Presence Configuration => New
- Can specify max capacity per agent
- Create Presence Statuses
- Setup => Presence Status => New
- Examples - busy, available etc
- Assign statuses to profile
- Go to the profile and assign statuses to the profile
- Add Omni-channel component to app
- Create/Edit any console app and add "Omni-Channel" component to the utility bar
- Go to "Omni Supervisor" tab and you will be able to see status of agents
End to end walkthrough ( Credits to Salesforce Exclusive channel)