Have you ever been on the phone with a service provider and had to go through 800 menu options and routing configurations to get to a person? Or been chatting with a chat bot who clearly just doesn’t understand what you need to do and you just really want to talk to a person? Yeah, me too. I find myself pounding on the 0 or typing “talk to an agent”, “talk to a person”, “human”… trying not to be awful but just wanting to get somewhere. You may have guessed already, but I’m writing about Salesforce Chat again… and more importantly, Einstein Bots. Out of the box, your bot isn’t that smart. Its a set of pre-programmed dialogues that do specific actions like send messages or run rules and actions in the background. If I just start typing random things like “send me to your leader” the bot is not going to understand what I’m saying. Luckily, Einstein Bots handle confusion by routing to an agent, but we can handle it a whole lot better by using Intents.
Start simple and iterate
Like I said earlier, out of the box, your bot is a series of menus that end users can select from. This is called a menu-based bot and should be the starting point for every bot you ever make probably. Once you’ve mastered that, you can start adding some intelligence using Intents. Your bot uses natural language processing to try and figure out what your customer is saying, and that is done via an Intent model. I highly recommend checking out this documentation that goes through the stages you should take with your bot. It recommends starting with a menu based bot, then graduating to a hybrid bot that uses both menus and Intents using what is called an Utterance, which is just the input from your end user. Since we just launched our bot, we don’t have a ton of utterances yet. The first Intent I want to start with, is the “Transfer to an Agent” Intent. I’m starting with this just because of my past experiences with bots.
In order to use Einstein to train a real model, you need to have at least 20 utterances that you’ve categorized. This means a lot of watching your bot, a lot of categorizing utterances, and a lot of iteration. Until you have enough to turn on Einstein, your bot will match utterances exactly up to 20 utterances. After the 20, you can turn on Einstein to decide based on similar words. If a customer inputs text that matches one of the utterances I have categorized for this dialogue, then that dialogue will be started.
Here are the utterances I’ve set up so far based on just what I think people would type into the chat window to get to a person.
So you’ll see here on row 3 I have the word “transfer”. This means that if I type “Transfer” into the chat window, my bot will recognize that and begin the “Transfer to Agent” dialogue.
In your Model Manager, under Bot Training, you can see all of the utterances that are being collected and start categorizing them.
To start classifying your utterances, just click on the little menu to the right of the row you want to classify and click “Reclassify”. You’ll also notice an option to “Ignore”. In the example below, I’m going to classify the row that says “main menu” as my Main Menu intent. You’ll see that it’s super easy!
I’m super excited to keep an eye on this bot and start analyzing the utterances we’re collecting. By looking at these utterances, you can also get a better idea for what your customers might be expecting your bot to do. For example, my testers were speaking in different languages – maybe I need to have bots that speak different languages. They were also trying to ask very specific questions that would be easy to create a dialogue to answer. I think that making time to review utterances at least once a week will be an important part of bot maintenance. I’m just guessing on once a week… I don’t expect chat to become a full time job, but it will require ongoing training and analysis for sure. I’ll keep you posted on how much time and effort goes into the bot, and will write another post once I’m able to enable Einstein to help understand our customers!