Prologue: I use chatbot as the popular term to describe Virtual Assistant, Conversational AI, and the more specific Marketing Chatbot space. These technologies all differ and offer special tradeoffs—which will be covered in future issues—but for simplicity, this article groups them all in the term “chatbot”.
Now that we know what a chatbot is supposed to be, how do you make a good chatbot.
Your chatbot will be good if it is useful, contextual, and interactive. Getting some of these aspects right will be easier than others, and the technology can definitely be a limiting factor here. But you can go a long way by just understanding what a good chatbot looks like, and modeling your effort based on that.
Useful
Utility originates from the Latin utilitatem for “useful”, and that is exactly what a chatbot needs to be to your customer. It is its most important characteristic. While having a chatbot might be a critical strategic investment for you, do not fall into the trap of adopting it because “it’s cool”. Your business needs it for a reason; you must find that reason and ensure that it is worth your investment. Both you and your users must find the chatbot useful for it to have any significant impact on your growth and user experience.
A chatbot’s utility is entirely dictated by your user’s needs. You can not build a chatbot before understanding what your customer pain points are and how to address them. Sometimes, a chatbot can help you solve these pain points efficiently (e.g. handling the bill disputes funnel). To see if your chatbot is useful, ask yourself: is this chatbot solving a problem for my customers?
If your customer does not find the chatbot useful, then it is better to not have a chatbot altogether. Not only are you saving time and money, but you are also reducing the complexity of your product. Chatbots are like medicine. Having no medicine is bad. Having bad medicine is worse. Now, I know what I am saying here is antithetical to this newsletter. Why would I tell someone to not build a chatbot? Because I genuinely believe that forcing the adoption of a technology leads to its negative growth (giving chatbots a bad name).
Chatbots are like medicine. Having no medicine is bad. Having bad medicine is worse.
Chatbots are great at delivering value for specific use cases, and should not be the end-all-be-all of your customer lifecycle. Having your user talk to a customer service representative can imbue loyalty to and higher satisfaction with your brand. At the same time, your business might not be able to scale with your customer base, and that is one benefit of automating your customer service with a chatbot. But if your chatbot only pretends to help and is unable to deliver a delightful end result, then something has to change. Grade your chatbot like you would a customer service representative: do they charm your customers and increase their satisfaction? If they do not, you need to look for alternatives.
Contextual
Think about how you interact with another human: questions or conversation are rarely prefaced with more than a sentence or two. Humans excel at inferring context from small clues about their environments like the speaker’s posture, facial expression, and tone. Our brains constantly examine our surroundings and can, therefore, deduce many assumptions about a speaker’s motives. With chatbots, the story is different, and providing it with context plays a big part in making them feel realistic.
Chatbots are custom AI trained specifically to understand frequent questions your users have. The more specific your domain is, the better it will be able to serve your customer in that domain. For example, if you are an air flight business, your users do not care if your chatbot can tell them a joke; they care that it can give them accurate flight status information and help them book their next flight. If you train your chatbot to understand how to tell a joke, there are occasions where the user is left with a joke rather than flight information (AI is never perfect). Therefore, a more contextual chatbot is a better one. The more specific it can be in answering your users’ questions, the better the end result.
Another dimension of contextualization that raises the bar for chatbots is their ability to understand a question based on the conversation’s history. Take the following conversation as an example, where the user takes the bot from a transfer question to a balance question, then back to a transfer question.
User: transfer money from savings to checkings account
Bot: ok how much do you want to transfer?
User: actually how much do i have in my savings account?
Bot: You have $95 in your savings account ending in 1234.
User: ok transfer $50
Bot: …
A contextual bot would remember that the user already provided the source and destination accounts initially, so it would not need to ask that again. In other words, a good chatbot has contextual memory. Most chatbots nowadays do not support these contextual memories, but the ones that do shine above the rest.
Ok-bot: what account do you want to transfer $50 from?
versus
Great-Bot: Ok I’ll transfer $95 from your savings account to your checkings account.
Your chatbot implementation can differ depending on which platform you develop it on. Not all platforms support contextual chatbots, so this might be something to consider when choosing your technology stack. You will often hear contextual memory referred to in Dialog Management systems. Spending the time to improve your bot’s contextual capabilities is well worth it if you are trying to impress your most demanding customers. Speaking to a robot is hard enough as it is, do not let your users speak to a stupid robot. Chatbots might never be as intelligent or fun to converse with as humans, but they can get close with contextual awareness.
Interactive
Dialog management is one way of augmenting your chatbots’ ability to understand the user’s context. But what about the user’s understanding of the chatbot’s context? Most chatbots are meant to answer specific questions regarding a domain knowledge they are trained for (unless they are GPT-3 and are trained on the entire internet corpus). This limitation is the context that your chatbot works with, and it might not be obvious to your users. Embedding interactivity to your chatbot affords the user some hints to its capabilities, making for a better overall experience.
This interactivity comes in many shapes. The most common of these are next action hints, where the chatbot prompts the user for a common task via a clickable text bubble. These text bubbles can sometimes be overdone and often plague the market of first-wave chatbots. While they can be a great prompting tool for your user’s first interactions, they should not dominate the interface in every question, as it makes the conversational flow feel rigid and pre-programmed, which is the antithesis of conversational AI. Another, less heavy-handed, approach to prompting users to specific initial questions is crafting the landing page of the chatbot to include initial questions you think your users will be delighted with.
One more way to integrate interactivity with your user is to include prompts for other actions the chatbot can do at the end of answering a question. For example, if you’re a bank and the user used the chatbot to check their credit card bill, you can prompt them to pay the bill within your answer. This is a common method to introduce your users to other capabilities they might not have known were possible with your chatbot experience. It is also a nice break from the monotone question/answer paradigm that can make chatbots sound like looking up an FAQ page.
Conclusion
We have all had that annoying call to dispute a bill: the robot voice comes on and asks for your account number and address; you wait a few minutes while a confirmation number is sent to your phone; you finally reach the final step, but you've been put on a waiting line for a representative; 10 minutes in, while you’re contemplating canceling your account altogether, the call abruptly ends and you have to repeat the whole thing. This might be an automated service center call experience, but the same can happen to you. Do not do this with your chatbot.
Your chatbot needs to be useful and get the job done. It also needs to understand the specific needs of your users and nothing beyond that. Finally, make the chatbot more accessible by embedding interactivity in its backbone. By the end of each user interaction, your chatbot must delight your customers. The interaction must feel like a nice breeze of fresh air on a hot summer day. If you are not there yet, keep trying, and read the next issue of the newsletter for concrete steps on how to get there!
Nicely written Kamal.
I am fairly new at making chatbots. At the start I assumed that being 'conversational' meant small talk and chitchat.
Now I focus more on correct entity extraction and designing better flows. Which platform would you suggest to use for creating conversational bots. I currently use RASA.