How can I best use SFDC Live Agent with the following business requirement for our chat routing based on product being viewed and the users locale?

SFDC Queues/Skills: Country/Language Assigned. Product Specialist Assigned. Example: French-Generalist, French-Banana-Specialist.

Logic concepts

If a user is on a page that matches product/content type of X.
    And user's IP matches supported locale.
      Then direct user to agents/queue in matching locale and product type of X.
    Else do not show agents available.

If a user is on a page that does not match product/content type of X.
    And user's IP matches supported locale.
      Then direct user to agents/queue in matching locale.
    Else do not show agents available.

Example User is viewing Banana product page and locale is in France. User is directed to a Banana specialist agent who speaks French.

User is viewing an Orange product page and locale is in France. User is directed to a generalist agent who speaks French.

Business case Users for Bananas should speak to a specialist while users for Oranges, Apples and Pears should go to a generalist. Users should always be directed to someone who speaks their language based on their (the user's) locale.

Would SFDC's Einstein Bot be able to help route accordingly with this?

Currently our implementation seems to allow for one or the other forms of logic, but not both together.

Solution also needs to be scalable across website with 200k pages supporting 90 locales.


Einstein Bots are not the solution you are looking for. They can only be used to work within your current routing framework. They also do not control routing. Routing is controlled by Omni-Channel if you're using Lightning. For the scenario you've described, you'd likely first need to make changes to your existing routing structure. The structure you've described involves skill based routing. If you've not implemented skill based routing in your org, the Bots won't be able to implement it for you.

You could potentially do it as described if you've created queues that support what you want based on language skills with sub queues below them for product specialists and generalists for each skill, which is the essence of skill based routing. The bot would then need to check whether an agent was available in the correct sub-queue.

Generally, in creating a queue structure, one would first break things down by separating work by a language attribute for a primary skill. Once it arrived in the proper language queue, it would then go to the user who has the skills to work on the case (assumes you're doing further reassignments to additional queues). The structure I'm referring to would look like something below:

Language and skill queue structure

With skill based routing you wouldn't have queues above, instead there's a script that runs via Process Builder which first creates a PendingServiceItem record, then passes it to an invocable Apex class which contains the logic for assigning the records to agents via Omni-Channel (if they're logged in and available to accept chats). Once the invocable has completed it's work, the ServiceItem is passed directly to Omni-Channel for routing.

If no agent has the skills specified, the chat will sit in an unassigned queue within Omni-channel waiting until an agent with the necessary skills becomes available. A Supervisor can also manually assign the work to an agent from the Skill Backlog Queue.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.