There’s the dream of a chatbot functioning as an automated full-scale service desk: Answering questions even when asked in an atypical way using wrong terms, capable of recognizing the exact circumstances of a customer’s problem and forwarding solutions with the exact level of detail they need. We can get there, but it’s a lot of work. For the first step, we need a closer objective.
Instead of mimicking a service desk employee with all the knowledge and handling a wide scale of requests, let’s start out with a bot working as a receptionist with a single task: telling the users where to look for a solution. Why is this a good starting point? Because we already know how to navigate our website. Once the bot can tell where to find the answer, you can concentrate on enabling it to extract the information and directly provide it to the user.
There are three approaches on how to implement this functionality: full text search, guided search and using intents. They require different levels of development effort and data preparation, but that’s not a downside: you can move on from one to the other, starting small and building on what you already have. Let’s start with the easiest one.
Concept 1: Search Engine Interface
You probably already have a search engine implemented in your website. If you think about it, this engine does exactly what you want the chatbot to do. It takes a free text input and returns a list of places to look for information on the terms the user entered. Thus, think of your first chatbot as an enhanced interface for classic search. It asks the user for some keywords and pops out a list of pages, maybe in combination with a short summary stored in the page’s metadata.
One could argue that this won’t add any value because there is no new functionality. But functionality is not the only thing that adds value. You can use this first bot to test the performance of the tool you use. Your developers can collect first experiences on working with this kind of technology and on how to integrate it into your existing environment. Your conversation flow designer can experiment with ways on how to map the concept to a set of conversation nodes. And of course you can collect first feedback from your users without investing too much.
And to make it clear: Even for the users there will be added value. Providing an alternative interface may help some of them or enrich the user experience. Moreover, while the search engine is done when the result page is displayed, the bot can continue supporting the user, e.g. by asking whether these results answer the question and suggesting additional contact information in case they don’t.
Concept 2: Guided Search
Once the bot is working and executing at least this basic task, you can increase its helpfulness. A good search engine provides some kind of filtering, right? How do you implement this in the chatbot? Well, the chatbot can ask for specific information and provide options to select. This is where the bot can start to show something that at least looks like intelligence. For example, if there are many results to a certain request, it could ask the user to set exactly the filter that reduces the number of results the most (e.g. “Which Operating System do you use?” followed by a list of all OS in the result). Thus, instead of being overwhelmed by a huge range of options the user must only make the decisions that really help.
This concept requires your pages to be enriched with some additional metadata and the bot needs direct access to this information, without the search engine functioning as a broker in between. But this is only a small adaption and since your developers already know how the bot processes data, they probably won’t run into big issues.
If your data has an accurate structure you can even remove the free text input and use only a set of questions with pre-set options as answers for setting filters. This prevents users getting wrong results due to wrong terms in the query. However, to some users this might seem like a step backwards.
Concept 3: Understanding the Intent
Your bot is already capable of having a conversation – without even trying to understand the user. Now your developers know how to modify the bot, your conversation designer is experienced in developing flows and the bot is integrated well into your website. Time to tackle the last missing step to a real chatbot with all the AI stuff running in the background.
For those new to the topic: Chatbots use Machine Learning to match a text input to one of several pre-defined intents. The more intents, the harder the task. Thus, it is best to start with a small set of things the users might be interested in. For a first attempt, in order to get experience in working with intents, you might want to train the bot on intents related to the conversation itself like “explain one of the options you asked me to choose from” or “I want to change a filter I set earlier”. This is a lot easier than letting the bot recognize what information the user is looking for, since there is less variety.
Later you can try to replace the search engine integration by connecting pages to intents. Nevertheless, keeping search as a fallback in case the bot fails in recognizing the intent is a better idea.
You started out with a search engine interface and got to a navigation assistant. With some additional training, the bot will be able to predict the correct location to point the user to with high accuracy. From that point on, it is only a small step to the bot answering questions by itself. This is how you get the service desk bot you dreamed of in the beginning.