Voice Tech Podcast
Published in

Voice Tech Podcast

Handbook for Chatbot Design

An Introduction to Conversational UI

Before getting into the standards, rules and things to keep in mind while designing for chatbot, here is a little piece of history.

In 1950, Alan Turing, a mathematician, logician, crypto-analyst and a pioneer in computer science asked a question in his published journal called ‘Mind’,

what ‘thinking’ means and can a machine ‘think’?. He then replaces it with a more pragmatic question ‘Can a computer communicate in a way indistinguishable from human? That thought gave birth to an evolutionary area of study, known as NLP or Natural Language Processing.

You can read this paper by Tomáš Zemčík to know more about the history of chatbots. https://bit.ly/3f5rejw

Photo credit: Unsplash.com

Chatbots are inspired and built on same foundation as human communication. To make a communication effective it is assumed that there is cooperation between the conversational participants. Otherwise it will just be one-sided talk and nobody likes that.

You can watch this video to know more about how to use Cooperative Principle to write a dialog that’s comfortable, frictionless, and user-centric.

https://www.youtube.com/watch?v=wuDP_eygsvs

If want to dig deeper on conversation and how to measure the effectiveness of a conversation read about the four rules called Grice’s Maxim. Read about the publication here- https://www.ucl.ac.uk/ls/studypacks/Grice-Logic.pdf

If you are new to conversation design, start by learning about conversation. This can be a good point to start https://designguidelines.withgoogle.com/conversation/conversation-design/learn-about-conversation.html

Image Source: Google https://designguidelines.withgoogle.com/conversation/conversation-design/learn-about-conversation.html#learn-about-conversation-the-cooperative-principle

This article is for anyone who wants to start learning about chatbot design and get their hands dirty. Conversation Design, VUI are the next generation of interaction design. These are taking us beyond the inherent limitations of swipes, taps, and clicks.

1. Identify Chatbot’s Goal

2. Platform limitations & features

3. System and User Persona

4. Outline the use cases & create a Flow Map

5. Write the conversation script/dialogs

6. Expect more inputs from user & be prepared for the fall back scenarios

7. Test, Iterate, Test, Iterate, Test…

Start by asking your business what is the goal of this chatbot? Why do we need the chatbot in the first place? Is it because extending support to the users (reducing human effort, proving 24x7 support)? for marketing purpose (e.g., deals, new products)? For helping user navigate through a site or application? or simply for re-creational purpose.

Do we need a chatbot in the first place? Identifying business goals and what pain points they are trying to solve of the users, can help us determine whether those goals fit with a chatbot. If not try suggesting other options.

I created this example for Facebook messenger platform using https://app.botsociety.io/

From the above image you can see that button label is too long to be displayed when designing chatbot for Facebook messenger platform. Hence, we have to think about the label text and keep it short and clear. Sit with the tech team, understand the power and limitation of the platform. You may get surprised about the capabilities of that platform as well. Key is, how to make it work to achieve chatbot’s goals while not compromising on the user experience with the chatbot.

Chatbot can be text based or voice based like Siri, Alexa or both like Google Assistant. Like for any human conversation, it is important to give your chatbot a personality and also understand the user base whom the chatbot will have a conversation with. Try to have 2–3 different personas, e.g., working parent who is an existing associate vs new associate in a job. Assuming you already know about how to create user persona based on your research, I am skipping that part here.

1. Tone

2. Word +Phrase choices

3. Style

4. Technique

Now that you have outlined a persona for your bot and user, it is time to create goals for your persona and context.

Keeping both the persona in mind, think about how they will communicate to each other. You may find “Hi Amy, this is HR-Bot, how may I help you today”, this tone better suits than “What’s up Amy, Hope you good. Let me help you out today”.

In the above example NYTimes Bot, Spotify, PennyCat chatbots have different tone and personality. While user don’t expect it to be perfectly like talking to a human, however they expect your bot to respond in a warmer and humanly manner without any ambiguity (Maxim of Manner) and follow the rules of an effective conversation. Otherwise the product will fail as a chatbot.

Image Credit: https://bit.ly/37epZfj

Think outside of the box. Like how a natural human conversation flow. Try writing all the use cases and that your bot will end to reach to its goal and user can get the job done. This can be bones of your bot. While drafting flows for the bot you may find new ways to be added to the flow to make the conversation sound natural.

Like how design information architecture for an app or website, similarly in conversation design we have to start the process of it by creating flow maps or flow charts. Below is a sample diagram for how the flow map looks like in a conversation design. It is okay if the flow map is complicated looking. It means we have covered most of the scenarios.

Build better voice apps. Get more articles & interviews from voice technology experts at voicetechpodcast.com

Here comes the fun part. Think outside of the box as you are going to play the role of a screenplay writer. Effective conversation is natural, directional and clear. Start with writing dialogs for a short flow and see whether than sounds natural. There are many tutorials online which teaches how to write script for chatbots. This will work both for Text based chatbot which uses Decision Tree Logic and VUI chatbot which uses NLP in background.

While researching about chatbot script writing, I have found this excel template by Hilary Black t.ly/1szv. You can download the excel and play around with it to write dialogs between user persona and your chatbot persona.

View this to learn how to write sample dialogs- https://www.youtube.com/watch?v=sb75sitmPCc

1. Write a sample dialog between user persona and chatbot persona

2. Read the script aloud & record the conversation with a partner (switch roles by yourself if you don’t find one)

3. Convert the chatbot text message into speech (TTS), if it doesn’t sound good, rewrite it or use Speech Synthesis Markup Language (SSML)

https://developers.google.com/assistant/actions/reference/ssml (For Developers)

4. Repeat above steps with different user persona and your chatbot’s key use case

Below are two sample scripts I have written. Can you decide which one is more natural and sounds like a conversation? If you can’t decide visit my Soundcloud to hear both the scripts out in audio. Thank you Anupama Mishra for collaborating with me on this. :)

https://soundcloud.com/vijaya-das/chatbot-final-script1

https://soundcloud.com/vijaya-das/chatbot-final-script2

If you have gone through the script or listened to the audio clip. You may have noticed few things. I am capturing them a bullets for you.

In the image script 2, see the chatbot asked-

“Sure. Let me get some details from you on this. Please tell me which date you want to take the leave from?”

Though it said, ‘from date’, user enters from and to date together. This will happen often and expect always that user will give more input. Be prepared with extended scenario if that means making your user flow looking like too clutter. Better to be prepared than throwing a prompt ‘Okay, now please enter the to date’. Where user already entered it. This will make them frustrated.

This may sound primitive, but you should respect the users for speaking. In the image script 1, chatbot asked-

“Please enter start date in dd/mm/yyyy format”

This sounds like the chatbot does not trust user to enter value in a way it will understand. It breaks the rule- Maxim of Quality. Rather bot should be equipped to basic possible utterances. Consider all the different ways to answer the question “what is the start date?”

1. 10/06/2020

2. June 10

3. 10th June

4. 10th of June

5. 10 June

6. Tenth of June

7. June tenth

In a conversation we take turns, it is like passing the mike to another and provide meaningful information based on the context. In real world you move the conversation forward. See in script 2, chatbot keeps the conversation moving forward by providing meaningful option based on the current context-

“Great! I have applied your leave successfully.

Just so you know I can also setup an OOO message for you? Would you like to do that now?

Conversation design should look like a conversation, rather than just a bunch of text with instructions.

Conversation is inherently multimodal. For example, “Hey I have seen Akash with a lady in the restaurant last night”, may mean Akash was with a lady who was not his wife. It can also mean he is with his wife, who is a lady. Key is to read between pauses. A pointer to keep in mind while designing for conversation.

Going to the research paper, articles and bunch of chatbots myself. I truly believe no matter how much effort you put into creating flow maps, perfecting your dialog strategies, your chatbot is going to fail. Also, there a lot of people like me who intentionally types gibberish just to see the chatbot reaction when it is failing.

Key is to be prepared with exception handling strategies. Otherwise your chatbot will sound like a broken record and the conversation will lose its natural touch. Note: There are no ‘ERRORS’ in a conversation.

I have created an example to show how it looks or sound like when chatbot throws the same error over and over again.

Create multiple prompts for exception scenarios. It will prevent the chatbot sounding like a broken record.

This is a fairly know process to us. I am sharing few useful links to text your chatbot and iterate them over and over based on your research and user feedback.

1. Play around-

https://app.botsociety.io — create your own chatbot interface based on different platforms

https://trends.google.com/trends/?geo=US — check the trends for searched words

https://books.google.com/ngrams — check the trends for published words

2. Create Flow Map-

https://app.diagrams.net/

https://www.lucidchart.com/pages/

3. Script/Sample dialog writing-

https://docs.google.com/spreadsheets/d/1zKetL86ZWGcLdRXo3ZscWg01hV_lRfkMIQ90VZMCZ78/edit#gid=1136922441

4. Analytics for bot-

https://botanalytics.co/

Chatbot and Conversation design is a new practice in design field and looks like it is not going away anytime soon. To grasp and design for this new breed of interface we first have to change our mindset. Learn and relearn and practice a lot to start your journey and keep improving your competency in conversational interfaces.

Something just for you

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Vijaya Das

Interaction Designer @Google, a traveller at heart, finds cooking theraputic😌, obsessed about Minions and Ghibli movies✨, ice breaker 🙌