Basics of bot design

  • by

Great news: from now on I will try to be more consistent and write at least one post a month. Let’s see how it goes.

Last year, when I just finished one of the bots/virtual assistant skill projects at a consulting agency I was working for, my colleague asked me to talk to her about designing a bot. Why did she ask me? Probably because in that project I combined the roles of a designer, a developer, and partially a project manager. Sometimes we all have to wear several hats at once or at least understand what your teammates are doing. So, I think this post can be beneficial for UI/UX specialists, developers and everyone else who’s involved in the creation or has a general interest in bots. No one wants to drive a bad user experience and create useless and confusing bots.

You need the conversation design to figure out what users might say and teach a chatbot to reply or perform an action in the most helpful way possible. According to Cathy Perl, Head of Conversation Design at Google, it’s also much easier to teach a computer to speak like a human than to teach people to communicate like a computer.

When you start thinking about creating a new bot (same as for any other software), you need to do market research and see what is available and how efficient those solutions are. If it’s something new without much competition, you have to start from scratch, if there’re similar bots available, then you can customize yours more and learn from possible mistakes from your competitors.

After you checked the market and got a feeling of where your bot would be positioned, you can start thinking about your end-users:

  • What devices they will most likely use?
  • Would they prefer speech over text or vice versa?
  • Will they be able to use a screen for visual information (for example adaptive cards)?
  • Will there be more advanced users or newbies?
  • Etc

Based on the answers you got to those questions, you can see if you need to create a chatbot, or a virtual assistant skill, if it’s a skill then what assistants you need to keep in mind. Some assistants have very different setup and their own specifics, so one cross-platform solution is not always an option.

A dialog between a user and your bot will look different based on many hardware and just personal factors, but you need to think about as many variations as possible and keep your bot open for later additions and improvements (as any other software).

Two people designing a bot 

 Designing a bot together

I probably won’t be able to share a perfect recipe for the best-designed bot ever, but I will share the main principles of conversation design you can have as a solid base.

  • Make replies as short and precise as possible. Usually, a user wants to get quick information or perform an action, so they don’t want to stick around to hear 3 pages of text with way too many details. But even if the answer is short it might not be the right answer and will only confuse the user. If you have to provide a lengthy answer, you can offer a link to a webpage, a phone number for talking to a human, or send an email with details to the user.
  • Minify the number of steps to solve a user’s problem. We all know how annoying sometimes all those chatbots that force you to do rounds of questions and answers that lead nowhere. If a problem is not resolved fast enough, your bot will not be popular as it only wastes people’s time. Time is precious, that’s why we use all those cool gadgets and bots that can help us to save it.
  • Determine devices users will connect with the bot through. I’ve mentioned it above but would like to repeat this principle and elaborate on it. Hardware varies based on its capabilities and maker, so before building your bot you need to figure out what devices most of your users will use. If lots of your users prefer using voice assistants, then it’ll be useless to plan to create a text-only bot. Usually, the whole dialog structure might be different depending on how a user will interact with a bot. Input independent and cross-platform bot will have a wider customer reach, but it’s not always possible to create that solution.
  • Add an easy way to exit, restart, or talk to a person (if possible). This principle is related to the first and second ones. If the conversation is going nowhere, the user changed their mind or confused, then there should be an easy way to restart the dialog, exit, or talk to a representative. Don’t force your users to manually restart the skill, once they turn it off there’s a high chance of them not coming back.
  • Keep your bot updated using feedback and failure log. Bot, like any other software, should have a failure log. It’s up to you how detailed this log is and what information you want to store there, it’s a different story. Think about the ways users can provide feedback: for example, if it’s a chatbot on a webpage you can display a feedback form after the end of the conversation. If you’re using Microsoft LUIS (Language Understanding Intelligent Service), you can go through recognized and unrecognized intents and retrain the model based on that information.

Those are base principles you always need to keep in mind when you start designing your bot. Now let’s move to the next step and go deeper into details. All conversations have several main elements: greeting, ending, help, question, acknowledgment, statement, confirmation, error, etc. Dialogs can be:

  • linear, where the bot collects information step-by-step and then returns an answer or performs an action;
  • if a user has to restart the conversation, then it will become cyclical, where the bot needs to restart and collect information again;
  • non-linear or turn-based, where the bot adapts to the flow user creates and can follow the dialog turns and use different, may be unrelated, pieces of information.

The turn-based conversations are getting more and more popular, because that way the conversation flow is more natural and led by a user, so you can make sure the bot is not misleading. It’s harder to accommodate possible turns in dialogs, but it definitely improves the quality of the end product.

Each virtual assistant skill has its personality. Usually, it doesn’t come out of the box with the virtual assistant itself, so you need to think about it during your design process. Based on the chosen personality (professional, witty, relaxed, etc) you will keep all the conversations aligned with it. Personality will depend on the purpose of the bot, demographic of users, and the brand it represents.

It’s extremely hard to create a bot that is completely identical to a human way of thinking and can understand all little details and errors. In most cases, it doesn’t have to be perfect to function correctly. But we need to try to teach it to quickly resolve misunderstandings the way humans do. I think the most straightforward improvement you can make to prevent some misunderstandings is to accommodate spelling mistakes. That is valid for both text and voice-activated bots, but especially for voice, because sometimes due to a user’s accent or background noise words can be misinterpreted by speech recognition functionality. You can validate if the phrase makes sense before responding, and if it is not valid then an autocorrect can be used (included in some speech recognition services) or the bot needs to double-check with the user. And if the bot can’t understand or the problem is too complex it can transfer the issue to a human operator.

Example of a conversation with bot 

Example of passing a complex problem to a human operator (found online)

As you probably noticed, I can talk (write) about bots and their design forever. I hope you’re still with me, reading this blog post until the end. There’re so many things you need to remember when you design a bot and create dialogs, no wonder some companies have UI engineers who do it full time. If you don’t have one, you want to become one or just want to understand what’s happening before the development process starts, there’re great online resources and books. Here’re some of them:

I hope this blog post is useful. I would love to hear your feedback directly through email and social media or feel free to leave public comments under my posts on social media.