Prateek Wadhwa's profile

Conversational User Interface - Designing Chat Bot

Conversational User Interface: Designing Chat Bot

My Role 

My role was to conduct a research on CUI and find out the latest trends and key points essential for designing a chat bot and to conduct Usability testing on chat bot.



What is CUI?

A conversational user interface gives the privilege of interacting with the computer on human terms. It is a paradigm shift from the earlier communications achieved either by entering syntax-specific commands or clicking icons. Conversational interface allows a user to tell the computer what to do. Conversational user interface is more social in the way the user “contacts”, “invites” and “messages” than the traditional apps that are technological in nature where the user downloads and installs.

Right now, there are two basic types of conversational interfaces. There are voice assistants, which you talk to, and there are chat bots, which you type to.



What does a User expect?

Humans draw conclusions about interactions with chat bots by applying same precept that they use when in interaction with people. Conversational User Interface is a lightweight, one dimensional interface with endless possibilities. 

So, a chat bot must provide the user, an experience that is not only positive and authentic but also provides a brand new meaning to customer service with exceptional customer experience. To provide such an experience, personality of a chat bot is the key.

The Approach​​​​​​​


The Methodology
Lean UX is focused on the experience under design and is less focused on deliverables than traditional UX. It requires a greater level of collaboration with the entire team. The core objective is to focus on obtaining feedback as early as possible so that it can be used to make quick decisions. The nature of Agile development is to work in rapid, iterative cycles and Lean UX mimics these cycles to ensure that data generated can be used in each iteration.



Designing Personality of Chat Bot​​​​​​​
1) Think of a character that would do the same tasks as you expect your chatbot to do.   


2) Now define the internal and external qualities of that character and put those qualities       into your chat bot.

Internal Qualities: Answer to the questions like: What internal traits do you wish your character to have? Should the character be straightforward or should it be extremely humble in conversations?

External Qualities: Give your character a visual identity as well. Users will be able to easily relate to the chat bot. 
Visuals have a deeper effect on the human brain than any other medium.
​​​​​​​

3) Make sure that the chat bot does not miss any of these steps when in conversation with     user:
These steps are required to make chat bot look sensible and user oriented.


4) Define the greetings: 

Define the goal and all possible tasks in a welcome message. "How can I help you?" usually leads to a bad start whereas "I can help you with tickets booking, cancellation and refunds." is comparatively appealing and helpful. 

Success rate increases significantly when the greeting messages aptly state what tasks the chat bot is capable of to perform. A different welcome message should be displayed for returned user.   Always greet the user with his/her name. This helps chat bot make an emotional connect.  
5) Make the chat bot Robust: 

Always have a set of synonyms handy. Chat bot should be robust enough to understand the synonyms of a particular keyword. This enhances the chat bot’s personality and helps user build trust for chat bot. 

Cover irregular cases. User might press any key on the keyboard and end up sending an irrelevant message like ‘$#y*&!@’. Chat bot should have a message of guidance for user in such cases.

User might type a word mentioning a keyword related to another branch of the decision-tree. Chat bot should not get deviated and move to another branch. Also, it should prompt user to bring him back to the right context. This helps user build trust.

6) Introduce convenience: 

Talking to a chat bot should be convenient than talking to an alternative. The decision tree and conversation flow should be designed in such a way that it covers all the possible answers within the context. This helps avoid dumbness in chat bot’s personality.


7) Strive to minimize typing, this reduces motor load:
                    
Provide Guard Rails with every thread of conversation. 
                    
Modify tone and use appealing words in options. 
                    
Do not limit the choices while using Guard Rails.

Guard Rails: Set of controls to help the user with automated inputs, to reduce errors caused by incorrect user inputs


8) Reduce excessive drill downs: 

Users are generally in hurry. To avoid increase of intellectual load, avoid drilling down too deep.
 
Use short hierarchies.
                     
Design keeping sensory and short term memories in mind.
                     
Modify tone and language after [max] 2 drill downs. 


9) Versatility: 

Bring in versatility to chat bot’s personality. Chat bot should not just be accessible but also effortless for all kinds of users.​​​​​​​
10) Make the navigation process smooth: 

This helps reduce both motor and intellectual load and make the chat bot trustworthy.

At the end of every conversation context, chat bot should contain an option to go back to main menu.

Test the chat bot on different devices to make sure users are not scrolling too much to read.

11) Specify the topic:

Not every bot is Siri, so, clearly specify the topic of conversation in the welcome message.
Repair - if needed.


12) The Help case: 

Show help text for “help” and its alternatives, and also for questions similar to “What can I do?”

When user types in gibberish for the first time, respond with “Sorry. I didn’t get that. Can you try asking again in a different way?”.

If gibberish continues, respond with:

Response Option 1: Oops! I didn't catch that. For things I can help you with, type “help.”
                           
Response Option 2: I’m good at letting you know your [Main Business Cases]. Other stuff, not so good. If you need help just enter “help.” 


13) The Feedback case:

Use the following for asking feedback after a successful business use case: “Hope you found me helpful. Could you please rate me?”

Show option buttons for feedback ratings. As soon as a button is clicked that text should go as user’s input text.

User can also type his own feedback text, and need not always choose from the option buttons.


14) General guidelines: 

When it is user’s turn to chat, the cursor should be on the user chat input text box.

Show wait indicator before the chat bot responds.

Avoid grammatical mistakes and use proper casing.

Do not use too much of technical jargon.

Keep branding guidelines of company in mind.


15) Miscellaneous:  

Respond to “No, thanks / never mind” and its alternatives with “OK. Thank you”.

For system internal errors, respond with “I can’t answer you right now. Please try talking to me later.”

Allow the user to replay information for inputs like “what?/repeat/say that again/…”.

If user doesn’t provide a response or one that bot can’t recognize after 2 or 3 times, exit context with an appropriate message – “I’m sorry. I cannot help you right now. Thank you”.

Give an option to connect to human operator if user is unable to get help from the bot.

The Conversation Flow

Designing a conversational flow on a board or paper helps identifying the loop holes and dead locks that can lead to pain points for users. So, designing a flow like this is really helpful. It is iterative and nimble in nature.


Usability Testing

First tested the bot as a designer based on the personality guidelines (mentioned above) in the following format:
Then tested chat bot's functionality and efficiency with real users (max. 5) and asked them to think out loud. Used the following format:
Conversational User Interface - Designing Chat Bot
Published:

Conversational User Interface - Designing Chat Bot

Published: