Latest news

Stop trying to make intelligent chatbots

No comments

Make a conversation leader

There, I said it.

In my previous story, “How to bot (a lesson for humans)”, I explained how to talk to a bot, but that story just assumed that developers were making bots that fit that description. It’s not always the case.

It’s already 2016

We are living in what I like to call the “Digital-Revolution Era” (leave the hyphen, it looks better). It’s a timeline starting in the late 50s and will finish somewhere in the future. Let’s take a look

1932 — Enigma is Cracked

1958 — First Video Game

1964 — First personal computer

1972 — First video game console

1973 — Specification for the Internet + First cellphone

1989— NeXT (later OSX)

1991 — First website

You get the point. So yeah, we’re in 2016, having more revolutions than ever, and one of them are chatbots.

However, people have had Google Now and Siri fir a long time now, and are expecting some of the same functionality. “Where can I bury a body” won’t result in anything in your chatbot. And that’s normal, you built a bot to do one thing and do one thing well.

We have not yet reached the Singularity, and can’t expect to have free personal assitants popping up like pop corn on Facebook Messenger. But that’s for people (read users) to understand.

Bots have one job

[Your bot] does not lead the conversation, but it should.

Your bot should have some understanding of what is introductory talk (like “what’s up” or “hi there!” for instance) or closure (“thanks!”, “ok”), but no more.

Bots have a given context; that means that they understand the lexical field of what they are supposed to do. If you sell airplane tickets you should have your bot understand prices and places, not jokes. If your bot gives advice on dating it should not be able to find nearby vets for your dog.

If you read messages sent to your bot and find people asking for things out of context, it means your bot does not give enough directions, it does not lead the conversation, but it should. I learned that the hard way with Botto, having users complain on what it can understand. It obviously also depends on people having really big expectations, but you have to put things into perspective.

It does not matter if your bot only sends out jokes, or is a fully-functional personal assistant, it has to respond only to what it does. You don’t see a button “Order Pizza” on the Instagram app, because it does not do that. So, good news, you don’t have to worry about making your bot intelligent.

How can bots lead a conversation

Ok, time to back-up my claims with some examples:

  • First: Make a Get Started button

Why? , you ask. Well, simply because it ensures that your bot begins the conversation, it has the control of it from the beginning, and it avoids people from asking anything. Also, it gives a first look at what the chatbot will feel like when in a conversation.

Sample of what the Get Started button does to your bot

  • Second: Use Buttons when possible

Ok, super-counterintuitive… However, as I said a thousand times to a lot of people, we can’t jump from not having chatbots to having super text-understanding mind-reading bots. We need an ‘adaptation phase’, and that is helped by buttons.

Look how these simple buttons save you the trouble of implementing ‘yeah, yup, right, of course, yes, si, oui, yep, go’ into your yes() verifications:

Yes or No buttons, could be a lot different

  • Third: Make it SUPER easy

You don’t want the user to rage-quit the conversation do you? Before Messenger implemented what you see in the example below, I had used a ‘How do I do that?’ quick reply, to show users how to share their location. But it was hard, they had a gif in which the touches were barely visible, and had already lsot 25 seconds of their time responding and waiting for the image to load.


No more finding ‘Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch’ on a places-API.

  • Fourth: Acknowledge

This might be the most important advice. Bot acknowledgment. It goes a very long way. The user no longer wonders what happened to his message, no longer wonders if the bot read it, if the bot is going to respond, if the bot crashed. It’s just like seeing the little circle go ✔ and then all blue when chatting with a friend. Facebook gives you a lot of control over message acknowledgment, you can set the ‘read’ status of a message or send the typing bubbles for instance. But a lot happens trough messages too.

In this example the bot sent a message ‘Here are some random places nearby and open now:’ to let the user know that his message was read, and that the places were arriving. It is a heavy load for the bot, checking apis and whatnot, and takes time, so, instead of letting the user in the void, he acknowledges the message, and makes him expect to see a more detailed message.


Remember that this is just another article of yet another chatbot author trying to make himself pass for an expert. It is just advice, and is probably wrong or will be.

All you have to keep in mind is that you don’t have to meet people’s expectations. You can’t. Instead, guide the user and make him understand the flow of your bot.

magnoliaStop trying to make intelligent chatbots

Related Posts

Leave a Reply