Having been immersed in the technology for years, I sometimes forget that many people are much less familiar with the ideas and jargon that are second nature to me. So after a few people asked me “What is a chatbot again?” I decided I needed to write this article. I will cover:
A chatbot is a type of conversational interface, that is, a way to interact with computer software using natural language (like English) instead of a programming language (like Javascript) or a graphical user interface like a website or app. I’m excited about conversational interfaces because I think this is the natural way to interact with computers - we talk to other humans, so why not computers? (I’ve probably been influenced somewhat in this regard by a healthy consumption of Star Trek growing up).
Imagine the following conversation with a computer:
“Do I need an umbrella today?”
“The chance of rain in London today is 5%. You’re probably safe without your umbrella.”
“What about Luton?”
“It looks like it’s going to rain in Luton.”
In this conversation, the responses are generated by computer software that interprets the user’s expressions, performs actions and responds. You’re probably familiar with conversational interfaces from Apple’s Siri, Amazon’s Alexa and Google Home. These are all speech-based assistants that provide a conversational interface to a variety of functions.
A chatbot is a conversational interface designed to work with messaging apps like Facebook Messenger, Slack or Kik. Instead of messaging people with these apps, you “chat” with a “bot” (robot), the piece of software that you interact with.
This site is about the technology behind chatbots. In fact, as much of the technology is shared, we are interested in the technology behind any conversational interface. The main difference between speech-based assistants (like Amazon Alexa skills) is that the user’s speech is interpreted by a speech to text system. The software then interprets the text, and generates a response which is returned to the user via a text to speech system. The rest of the technology (which handles text) is very similar to that used for chatbots.
The promise of conversational interfaces is that the user is able to achieve their goals quickly and more easily, by making use of the same method of communication that they use to talk to people. This should also make interacting with computers more intuitive and accessible. Unfortunately, we are a way off fully realising this goal.
There are additional benefits to chatbots. As the success of WeChat in China has shown, users can grow to love bots that do not display intelligence, but respond only to simple keyword matching. One reason for this is the prevalence of mobile phones. Messaging is a very light interaction, in the following senses:
Chatbots can be powerful marketing tools, specifically for online advertising. Sending a user who clicks on an advert to a chatbot instead of a website can greatly increase engagement, which means a higher return on investment. In particular, you can create Facebook ads that send users straight to a conversation in Messenger. If the user interacts in any way with the bot, the user’s Messenger contact will be available to the advertiser (unless the user explicitly blocks the bot), allowing the advertiser to contact them at any later point. Contrast this with sending a user to a website, where the user has to enter their email address in order to gain their contact details.
Thanks to the tools described on this site anyone can build a chatbot! It will help if you have some of the following skills:
If you want to build an advanced bot with complex behaviour, or if you’d doing something that hasn’t been done before, you might need technical skills. In particular:
Chatbots have the potential to change the way we interact with computers. They have yet to live up to that promise, but I hope that by identifying the best tools, we will help that become a reality.