Design & Technology July 26, 2018
The Intelligent, Future-proof Chatbot
There are two types of messaging in the world of chatbots: proactive and reactive. The first type proactively provides information to the customer. The second works with a question-answer structure and is basically a FAQ. What these current chatbots have in common is that they are still relatively stupid. There are, however, possibilities to organise chatbots in a smarter way.
For some time now Dept has been researching the possibilities to add more intelligence to chatbots. Some dictionary-based chatbots are quite smart, but especially the reactive dialogues regularly get stuck in understanding the question. ‘Urgent’, for example, means the same as ‘fast’, but it may be that the chatbot only has the word ‘fast’ in its dictionary and is not able to help someone who needs help ‘urgently’. In an ideal world, a chatbot not only understands the words themselves, but also all the synonyms of the words and the different contexts in which the words can be used.
There are AI-driven platforms, such as Microsoft Luis and IBM Watson, that are in the process of better understanding language. Previously, they mainly knew English. Later big languages such as French and Spanish were added, and now Dutch is also supported in Google DialogFlow (GDF). Google DialogFlow contains a Natural Language Processor (NLP) that makes it possible to create a conversational UI that can interpret the individual elements of a question. From the question ‘How much data have I used last month?’, the chatbot understands that it is about data, which period is meant by ‘last month’ and that it concerns usage. In other words, the chatbot contextually knows what is meant and has much more information than just a keyword. Based on this extra information, it’s possible to start a transactional dialogue, where data is requested and returned, or changed (self-service). Now a chatbot can be trained and learn that ‘fast’ means the same as ‘urgent’.
Microsoft Bot Framework
The fact that an NLP is in the cloud also means that it is remote from the source data. This can be a problem in a transactional dialogue, in which the answers to several questions have to be remembered in order to arrive at a definitive answer. It is easier to have that process close to or in a Digital Experience Platform (DXP). That is why Dept uses the Microsoft Bot Framework, which is open source, as a framework to build the chatbot on, coupling it to Google Dialogue Flow as NLP. Using the framework accelerates the development, because this way we can use existing elements. Because the Bot Framework can be placed closer to the source data, transactional dialogues are easier to develop. For example, in an API Centric DXP, existing API’s could easily be reused in the dialogues.
Already there are several Software Development Kits (SDK’s) that make it possible to create a chatbot in an app, place it on a website or link it to Facebook Messenger or Cortana. It is custom work, but the framework is a huge help because it has a standard interface with the API’s. Developers can thus quickly build up the UI on the front-end applications.
What happens if someone asks the smart chatbot a question?
The question goes through the Bot Framework, which has a uniform API. With the help of an SDK, a window appears in the app or on the website where the customer can type. When asked a question, an NLP – for example Google DialogFlow, which we currently test as the best – retrieves the intent of the question. That can result in two types of conversation:
- Actionable conversation – an action is requested, for example data from last month. What follows is a transactional dialogue in which the question is processed in code. A transactional dialogue is always programmed.
If the question is not actionable and therefore does not appear in a list of intents, then it is most likely a:
- Conversational dialogue, with a question / answer form. The answers come from a knowledge- or database. The intent of the question is the key to the answer. The answer must be chatty, so wrapped in a sentence: “Hi Remco, thanks for your question. Let me check… You’ve used X data since your last visit.’
It is important to organise these dialogues well. They must feel like a natural conversation.
Get more out of your chatbot
There are several ways to get more out of your chatbot. For example, by showing actionable data proactively when opening the app:
“Hi Eileen, you have X data left. I recommend that you scale up your phone plan. Here are the different options.”
Or by adding sentiment analysis, making it possible to gauge customers’ emotions. Is a person angry or sad? Then it might be good to switch to a live chat or call. It’s advisable to integrate live chat with the chatbot, so that a customer service employee can pick up on the conversation.
Once you have unlocked your knowledge base via an interface on all your digital touchpoints, you can also adapt the language to that of the user using language recognition services such as Google translate.
An intelligent, future-proof bot
By using Microsoft’s Bot Framework and an NLP such as Google DialogFlow, we can create an intelligent bot based on existing knowledge bases. It makes it possible to work with MVP to new transactional dialogues. We want to set up a Bot Framework that enables us to keep up with all the changes that will take place in the coming years and at the same time create something stable for all front-end applications.
At the time of writing the need for Dutch companies to invest in an intelligent chatbot has become even more urgent: today Google Assistant is launched in the Netherlands. Later this year with Google Home the matching hardware will be released, giving consumers broad access to the platform. In other words: it’s is high time for brands to get on board the chatbot train.