So, bots you say…

All you need to know about chatbots (and not die trying)

Ye good ole’ XKCD

It is very likely that you’ve heard all the buzz that has been going lately about the chatbots, and how they’re going to revolutionize everything in the coming years, but if you haven’t, let me guide you through the revolution.

Well, fear no more, dear reader, this is (part one of) all you need to know about chatbots.

What’s a bot?

In general terms, a bot is a piece of software that automates a task, but talking specifically about chatbots, we come to the concept of automating an interaction through a conversational UI.

But don’t mind my fancy wording. Chatbots are a way in which you can automate a written conversation, simulating an interaction between two real human beings. (Even though most of the times chatbots have superpowers).

Think of it as a magical black box that understands what you tell it with your daily English (or Spanish, or German, or Mandarin, or whatever) and answers you in the same language, and not in a stream of ones and zeros.

Sounds great, right? 🦄

Well, technically is not black…

But that black box is not black after all. It’s most likely some sort of state machine or automaton, processing the input it received; and of course is not magic (sorry to break the spell): it’s one subset of Artificial Intelligence called Natural Language Processing (or NLP).

Ha! So that’s the guy behind the curtain!

NLP, where have I heard that before..?

Nope. Is not Neuro-Linguistic Programming. Have you used Siri? I know you have. Google Now? Cortana? Alexa?

Great. Well, all of the above use something called Natural Language Processing.

Since at least the days of Hal 9000 and early Star Trek, the computer of the future was supposed to be able to understand what people wanted, when expressed in ordinary language and not programming code. Computer scientists have been working on this capability, called natural language processing (NLP), for decades.
— Henderson, H. (2009). Encyclopedia of Computer Science and Technology. New York: Facts on File, Inc.

Basically, NLP gives a computer the ability to understand what people says and translate it into pieces of code it can use to do some processing.

But how does it work, you might be wondering?

To try to understand the language, the NLP uses some of the most renowned AI models, such as Neural Networks, Deep Learning techniques, or Classifiers. (Stanford’s Classifier is one of the most popular ones around).

But it has been proven that, even with the most sophisticated algorithms, the key element to get a good language processing and understanding is data. Having a large dataset can provide better results than a State-of-the-art algorithm, and that is a problem of Statistics. So, NLP is an interdisciplinary field that requires computer scientists, linguists (no need to explain why), and mathematicians.

The Natural Language Processing is a huge field of study, which I’ll cover in detail later in the series, but for now, let’s move on.


The future of interaction

Chatbots are not only driving a revolution on customer service, they’re leading a revolution on the way software is developed and designed; both terms of the equation, developers and designers, face a huge challenge: a chatbot is intended to interact with the user through -you guessed it right- a chat window.

That means no cool animations, no transitions, no a-ton-of-features built in your web app, only plain text. This limits the arsenal of visual components the designers can use on a traditional app; even though many messaging platforms support complex message templates that help the designers create a better UX, cards and carousels are no silver bullet.

I’ll cover more about bot design and UX later in this series, but if you want to read more about the subject, you should definitely check out Jess Thoms’s post:

On the other hand, we developers are responsible of implementing the flows that the UX designers created for the interaction. This would be easy if we didn’t​ have to face this three factors:

Messenger Receipt Template
  1. Non-linearity of a conversation. Imagine you ask for the weather. The bot asks you which city you want the weather from, and you answer, say, San Francisco (because technology). The bot answers you with a cold-but-comfortable 55°F (13°C for the civilized). That afternoon, you want to go out, but also make sure it’s not raining. You ask the bot again and whaaat? Is it really asking you for your city again?
  2. Context. The problem presented in the previous point also has to do with context. The context is what the bot has learned from the conversation and it considered, from the design, worth keeping, depending on its purposes. A human conversation generally relies on the context that is being built, therefore, a bot needs to learn from its context to have a better conversation.
  3. Sessions. What if you want to change the conversation happening on Messenger to your custom support chat? You need to handle sessions. The bot has to be aware that the person talking to it on Messenger is the same that is now on the support chat, and you have to do it in a way that the user does not feel overwhelmed.

Quite a big challenge, right?


Why is everyone so hyped about it?

Let’s face it: millennials don’t like face-to-face interaction. They (I refuse to talk by myself on this one) prefer chatting with someone rather than having a phone call or even a face-to-face conversation. But millennials are growing up, and we’re becoming the target market for a lot of businesses, and the customer is always right. Also, everyone has a smartphone now, I’m sure even your grandma does. And with this democratization to the access to mobile technologies, it’s easier to reach your target audience from different platforms other than traditional websites.

Now, imagine saving tons of money in customer support by automating some of the common questions your customers come up with in a way that they can’t tell that they’re not talking with a customer rep. Isn’t that great?

So sorry for you, guys.

You can even turn your resume into a chatbot!

But chatbots are not only for saving money or avoiding human interaction, they also help on good causes. The DoNotPay bot helped people in the United Kingdom saving around 160,000 parking fines, but now, it has taken a step beyond: the bot is helping homeless people apply for emergency housing. The idea is wonderful, and its creator is a genius.

Even something as simple as deciding between A or B can be turned into a billion dollar chatbot, go ask the guys at Swelly 🐳.

Do you have a basketball team? Cool, you can have a virtual assistant for your fans:

Now that Facebook introduced the Discover section on the Messenger app, it’s a lot more easier to discover new bots.

Within Discover, users can browse a variety of experiences, including what’s popular, featured or nearby. We’ve also included a broad set of categories like News, Entertainment, Finance and others to help users find an experience matching the category they’re looking for.
Discovery tab, taken from Facebook Developers.

In other words, a chatbot can do anything your app can do, as long as it fits in a chat window. There are tons of use cases out there. Give it a try.


What’s next?

There’s a world of resources out there about bots, Medium is flooded with them, all the way from the economical aspects of the bots taking on our jobs to the core of how to develop bots in a ton of different platforms.

Next time, I’ll be talking about the design aspects of chatbots, focusing especially on the aspects of the interaction and the design of the bot persona.

Thanks for passing by and reading this! I’d like to hear back your comments. If you liked what you read, hit the recommend button so more people can hear about this 😊 . If you want more posts like this, follow The AI Guys.