You’ve laboured for hours and you’ve finally designed the perfect chatbot. You’ve even hooked your bot up with Dialogflow for natural language processing skills. Your conversational flow is smooth but witty, occasionally broken up with quick replies to keep the user engaged. It’s all looking sweet.

Except for one problem.

Note: Quick replies disappear after you click on them. I’ve added the quick replies back to most of the screenshots for illustrative purposes.

Despite the slick flow that you designed, users simply refuse to press the buttons that you offer. The result — a stalled bot.

It’s a common design flaw, one that’s present even in high profile bots like Victoria Beckham.

Screenshots showing the quick replies and my free-form text responses with the Victoria Beckham Bot

Why? Users don’t use bots like apps — they want to chat, not click on buttons. Global data from bot analytics firm Dashbot.io shows that users press buttons (postbacks) and quick replies less than 40% of the time.

Source: Dashbot.io, December 2017

This means that if the success of your bot is dependent on the user clicking on your buttons or quick replies, your bot will fail 60% of the time.

So how do you fix that?

Solution 1: Blindly ignore the user 🙈🙉

In Chatfuel, one option would be to toggle off the button for “Text replies processed by AI”.

Simulated for the Victoria Beckham Bot

However, there is substantial risk of this option backfiring.

Actual screenshots from Victoria Beckham bot

In this situation, you’re essentially designing a bot that completely ignores the user, so that you can bulldoze all the way through with your flow.

After all, who cares about the user says anyway? 😝

Solution 2: Build a Circular Death Loop ☠️

If you need a valid response from the user, you could build a circular loop that throws the same question to the user until your buttons are clicked.

Illustrative flow for a lipstick bot giveaway

How this is done

Save the quick replies to an attribute, then use a “Go To Block” to redirect the user to a new block if the attribute is not set.

In the Answer the Question block, prompt the user to click your buttons and redirect them back to the previous block.

What could go wrong? The user could type a response that matched one of your quick replies.

In this situation, your bot will not be able to understand and respond appropriately. The result — a very frustrated user.