Things to consider if you’re thinking to build a chatbot-only service or website.
Quick notice: I don’t build chatbots and don’t use too many, but I haven’t been impressed with the ones I’ve seen. In no way this is definitive advice on things to consider when building conversational interfaces, this is just my opinion on the topic.
I’ve seen a few websites that welcome you with a full-screen chatbot and no option to not interact with it. It’s a great concept and I liked it at first, until I felt like it is wasting my time and realised there’s no way to get what you want without interacting with the chatbot.
When you fill in a form, you generally need it to be:
- Clear. Give you enough information so that you can fill it up correctly and fast.
- Fast. No unnecessary wait times.
- Mistake-friendly. It needs to let you fix mistakes easily.
- Responsive. Tell you when you’re wrong early on so you can fix it. (instant input validation)
- Auto-complete friendly, and generally be built in such a way that it makes your life easier rather than harder.
There are plenty of guides online about how to design great forms, I’m not going to write about that. I’m going to write about using chatbots and what they feel like to me. I think there are some that are actually good/fun/etc but they generally give me a bad, too long, form-filling experience.
When a chatbot asks you things to collect some information (like you filling in a form):
- You can’t see all the fields at once. Might be confusing where the conversation is going and it might be hard to get more details.
- You have to wait for an answer with every interaction. (equivalent to waiting for the page to load after filling in every single input box)
- You can’t go back to correct things easily — sometimes at all and you have to start over.
- You don’t get instant input validation, and sometimes you don’t even know what input formats are acceptable. (particularly bad implementation: bot: “How many would you like?”, user: “Just one”, bot: “Not a valid integer.”)
- You can’t use autocomplete or any of your browser features to auto-complete things. This is likely going to improve in the future.
This is not something that I call a good conversational experience. This is just making forms worse.
I like the idea of making form-filling feel more human but in some cases chatbots can’t or at least don’t yet beat well designed forms. Building good chatbots is hard work and the majority just aren’t there.
I just found this library that transforms HTML forms into a chatbot interface — nice attempt and good concept but this is not the purpose of a chatbot in my opinion. It does not improve the form experience, it makes it worse. It reminds me of TypeForm, which isn’t hyped with chatbots but it gives a very good form-filling experience and it can feel a bit like conversation — and their forms tick all the boxes above.
I do believe chatbots will get better over time as we get better at building them and understand what kind of experiences people expect and react best to. They will also become easier to build.
To put all this in perspective, if you call a customer service line and speak to a human agent, you often have a form-filling experience too: you get asked one question at a time, you wait for the operator to type it up on a computer, you get asked the next question. You don’t see your options ahead of time, you don’t get instant validation, and often even though you’re speaking to a human they won’t be able to get out of their script — it’s often the fault of the software they use or strict rules of the call centre, but we’re talking about the end user experience here. Sometimes the operators can’t help you if you’re unsure of an answer and explain the situation in more detail — they politely listen and ask you the question again. To this regard, chatbot systems are more than ready to replace human operators in most of the cases.
Update 2019: chatbots are still horrible and many times a well-built form would do better.