In-depth Article

Tips For Error Handling – Why You Shouldn’t Give Up On Users

By Hans van Dam
Sometimes things don't go your way. This is the case in life, but it’s definitely also true when interacting with chatbots and voice assistants. Conversations often don't go the way we expect them to.

Luckily, there are ways to design conversational experiences in a way that makes chatbots and voice assistants more helpful, natural and persuasive. And an important element of designing better experiences, and unlocking the potential of conversational AI, is through error handling.

Conversations are messy. We misunderstand each other, or our thoughts wander off and we didn’t listen to the question that we were asked. Humans have developed amazing techniques to deal with such situations. We ask for clarification, or we share more details to get the other person to engage with us.

If we translate this to conversation design, we can say that we pretty much have techniques for when there is a no-input and when there is a no-match. Let’s discuss both error handling types and discuss some examples to explain these concepts.

No input

Sometimes you ask a question and the other person doesn’t respond. Imagine walking into a hotel lobby and having the following conversation:

Reception: Hello, how can I help you?
You say nothing…
Reception: Hi, do you have a reservation or are you here for the restaurant?
You say nothing…
Reception: So tell me… Do you want a hotel room, eat at our restaurant or are you here to meet someone? Please let me know how I can help.

Because we don’t engage with the question that we are being asked, the receptionist adds more information to the question in the next turn. It tries to feed us more information to increase the chance of us engaging with her. In conversation design, we call this escalation detail – or prompt verbosity.

For every node, in a perfect world, you want to write 3 error handling messages for a no-input. You want to add more information to the question to help your user engage with you.

Continue reading below

No match

Then there are also situations where the user says something that you simply don’t understand. Maybe you understand the utterance in and of itself, but it’s very much out of context and therefore doesn’t make sense for the conversation that you are engaging in…

What do you do in such situations?

You ask for clarification, or you try and help the other person with producing an utterance that’s easier for you to grasp. Again, you add a little more information each time there is a no-match between what your user says and what you are trained to understand.

Let’s look at another hotel lobby example.

Reception: Hi, do you have a reservation?
User: The weather is amazing today.
Reception: Can you please let me know if you have made a reservation for the restaurant?
User: I just came back shopping.
Reception: If you want to eat in our restaurant today, then you need to have a reservation because we are fully booked. Do you have one?
User: You won’t believe me, I bought light blue jeans and a fur hat.
Reception: One last try… If you want to eat here today, then you need a reservation. Otherwise, I can’t help you. Do you have a reservation?
User: O sure, it’s under the name Smith.

Sure, this example is pushing it a little bit but you get the point. We take a few shots at trying to get some cooperation from our user. If it works within 3 tries, then that’s brilliant. If it doesn’t, well then we really know that we have tried our best.

What’s important to understand though, is that we can use error handling messages to keep users aligned with our conversations. Often times, we give up too quickly.

Try harder

We ask a question and if we don’t get the input we can understand, then we often try again with a generic message, and if that fails as well… then that’s usually the end of it. That’s a mistake. You are giving up too soon on too many people. And you wouldn’t give up so quickly in regular conversations.

So cut your users some slack and try a little harder. Just write 3 error handling messages for no-input and no-match for every prompt. You will see more completed dialogues and users will have a more natural experience. It might seem like a bit more work up front, but it’s definitely worth the effort.

Trust me. In bots we trust.