Chatbots are everywhere! And it’s a good thing considering how much money it can save for enterprises through self-service. Bots can be used for customer service, internal training, on-boarding, lead generation, just to name a few. So, the need to make it conversational and user-friendly is essential.
In this article, I’d like to cover some of the things you should think about before touching a single line of code. So, let’s get started.
What you’re building should be based on data. Otherwise, you’ll be taking guesswork that could cost you time and resources later. When it comes to data, here are some things you could look at:
- Live Chat transcripts
- IVR call data
- Any other existing data
The process of analyzing any data could take a few days to a few months. The complexity could also depend on the amount of data you’re looking at. This is also a great time to work on your bot persona. Personas don’t have to be complicated or time-consuming. Study the data to understand how your target audience is communicating. Sometimes you might need to bring in a speech scientist and other times you need to look at the data yourself using excel. Whatever your approach is, the intention behind this exercise is to figure out the top reasons behind why someone might use your bot for.
Then list out your top intents. What’s an intent? An intent is the user’s intention. Here’s an example:
As you can see, each intent has at least 5 different variations or utterances you could use to train the NLU (Natural Language Understanding), model. This is just an example. If you could get more than 5 variations, that’s even better. Once your bot goes Live, you can use actual production data to improve these utterances.
Once you have all your top intents and variations, let’s move on to defining topic hierarchy and response types. Defining topics and sub-topics will not only help manage intents later on but would also help you think of how intents are grouped, as your intents get bigger in scope.
Defining response types can help you figure out whether the response for each intent should be a direct response or a complex decision tree with options.
A direct answer can be a single shot response:
“You can always contact us via ……”
A decision tree can be used when you need to collect some information about the user first:
“How do you want to contact us?
Once you have your intents, topics/sub-topics, response types, you can start thinking about the actual design for each intent. Personally, I’d like to separate Direct Answers and Decision Trees. This way, I can have all the single-shot responses in one excel and the complex decision trees in VISIO or flow-charts. The flow-chart can be simple or very complex, depending on the scope. If you want to personalize it deeply, then you can create backend lookup and API calls to handle those situations.
When designing your decision, trees, think about leveraging entities. Entities (sometimes they’re known as slots or concepts) help you skip branches by understanding the context better. For example, if you ask a Chatbot, ‘I want to order a sandwich’, the bot might come back ask, ‘I can help with the order. What type of sandwich do you want?’. But if the user starts the conversation with, ‘I want to order a chicken sandwich.’, your bot probably want to skip the option node, ‘What type of sandwich do you want?’ path and go directly into the next question. The best practice here would be that it should be based on actual data. Don’t assume people will say in a certain way and add too many concepts or entities. You always want to improve and train the bot as you gather production data once you go Live.
The implementation process would depend on which vendor you decide to go with. There are plenty of tools out, and once you have done implementing them, you can preview and test before going Live. Once you go Live, the first 90 days can be considered mission-critical. During these days, study actual conversations and interactions with real users. Using this data, you can train the Chatbot better and better. This is also a great time to go back to your designs to see if you need to add more entities (slots) to make the experience even better. Unlike IVR systems, bots can be improved easily by looking at real conversations and retraining the bot with actual data without too much time or resources.
- Your content should be concise and to the point.
- Don’t copy and paste from your FAQ page. Rewrite.
- Avoid technical jargon and understand your audience through data.
- Use acknowledgment by using lead-ins (i.e., ‘I can help with order statuses). Also, think of ways your users might say the same utterance. This will help you draft a prompt that’s empathetic.
- Don’t give more than 5 options. If you have too many options to choose from, there could be a high abandonment. If you have to give 10 options, you simply don’t understand your users.
- Guide the user in the beginning, instead of asking too many open-ended questions.
- Use entities or concepts to skip branches, if necessary.