From punch cards to command lines to graphical user interfaces (GUIs), the way people communicate with computers has evolved over the last half century. In those historic eras users were required to communicate on the computer's terms, entering inputs that were carefully crafted to stay within parameters the machine could understand.
But now, with the advent of artificial intelligence, a new stage in the evolution of human-computer communication has begun to take root. Conversational user interfaces are designed to allow people to interact with computers naturally, without having to limit their inputs to a narrow range of options the machine has been pre-programmed to handle.
In fact, conversational interfaces are by definition designed to mimic the way humans talk to one another. They allow people to interact with computers using natural language, sometimes supplemented by onscreen menus or buttons.
Types of Conversational User Interfaces (CUIs)
At present there are two main types of conversational interfaces – voice assistants and chatbots.
Voice assistants allow a person to interact verbally with a computer using natural language. With many millions of devices having already been purchased by consumers for their homes and offices, voice based personal assistants like Amazon Alexa and Google Home are already being woven into the fabric of everyday life.
In contrast to voice assistants, chatbots are typically text-based. Users interact with a computer or mobile device by typing in commands or queries and viewing both their inputs and the machine's responses on a screen. Chatbots are now widely used by businesses to engage with users in both sales and customer service environments.
People are becoming more and more comfortable with both voice assistants and chatbots because these technologies make communicating with a computer appear easy and natural for the user. However, as is the case in many areas, making things seem simple on the surface requires some fairly complex preparations behind the scenes. In other words, for a conversational interface to be effective in helping users have a productive experience, it must be based on some well thought out design principles.
In this article we'll take a brief look at some of the principles that should guide the implementation of a first class conversational interface. To simplify things, we'll focus on chatbots, but these principles apply to voice assistants as well. Much of our discussion is based on a recent research study involving first-time chatbot users conducted by a team from IBM and the University of Washington (the "IBM study").
Here are our 10 fundamental principles of conversational user interface design.
1. Clearly define your purpose
The first step in designing a great CUI is being sure you have a good grasp of the primary task you want your chatbot to accomplish. What business objective is your chatbot expected to achieve? Who are your users, and what goals might they have for their interaction with your chatbot? In light of the objective you want your CUI to fulfill, is an automated chatbot or voice assistant even the best option, or could users be better served by a more traditional alternative such as email or telephone support?
Be careful not to allow your objectives to become too broad. A system that attempts to do everything may end up confusing users with too many choices and not doing anything very well.
2. Design from the user's perspective
One of the traps interface designers are prone to fall into is to approach their task primarily, or even exclusively from the standpoint of their corporate objectives. Yet the biggest element in the success or failure of any CUI is the degree to which users feel that it helps them achieve their goals. If users feel frustrated because a chatbot isn't helping them get what they need from the interaction, they'll quickly give up and stop using it.
You should address the user's primary concerns from the very first screen, giving them options to move the conversation in the direction they want it to go.
3. Set user expectations from the start
No matter how great your design may be, your chatbot can't do everything someone could wish for. That's why, to avoid users becoming frustrated with it, you need to set expectations for what it can and can't do from the very beginning.
All the participants in the IBM study explicitly stated that a chatbot should make its capabilities clear as part of the introduction. In the absence of such a declaration, users expected the bot to have a higher level of capability than it did, and became frustrated when those expectations were not met.
The CNN chatbot on Facebook Messenger provides an example of setting expectations at the start of the conversation. It introduces itself this way:
Hi from CNN. I'm here to bring you the most important news of the day.
There's a lot going on in the world. I can send you daily updates with top stories, or you can message me directly about a topic you're interested in, like "politics" or "tech," and I'll send you the latest.
Ok, let's get started. Here are some options.
(There are buttons for "Daily update," "Breaking news," and "Topics" at the bottom of the window).
A CUI should clarify its capabilities both at the beginning of the dialog and whenever the user asks.
4. Give your CUI a personality that matches its users and its function
People like talking to people. Research reveals that even when interacting with a robot, people are more comfortable and engaged if the machine is endowed with some human characteristics. That's why you need to fine tune your chatbot's vocabulary and tone to give your CUI an appropriate personality.
In the IBM study most participants expected a chatbot to display a personality that matched its function, whether professional (such as a news bot) or more casual (a shopping bot, for example). Users spoke of casual bots as "he" or "she," while referring to those they considered more professional as "it."
You should design your conversational flow as if the user was speaking to an actual person. The IBM study report notes that participants "started their conversation with a 'hi,' expecting the chatbot to respond back," and were disappointed if it did not. Some also commented that a chatbot that did not address them by name was "very impersonal."
Study participants were especially fond of chatbots that had some humor in their responses.
5. Be concise
When interacting with a CUI, most people don't want to read through, or listen to, long blocks of text. Having to do so can leave them confused and frustrated. One online chatbot, when asked "What can you do?", replied with a single long paragraph that used 121 words (567 characters) to list 14 separate things it could do. That's far too much information for the typical user's attention span. Instead, focus on addressing one issue at a time as briefly and concisely as possible.
Also, be aware that a majority of the visitors to your site are likely to be using mobile devices such as smartphones. In 2018 the proportion of web traffic that originates from a mobile device reached 52.2 percent, and continues to increase. You should design your conversational scripts with the limited screen size of a smartphone in mind.
6. Minimize data entry requirements
One thing that almost always frustrates chatbot users is having to enter large amounts of text. Wherever possible, provide alternatives to having the user type in text (this is especially important for mobile device users). For example, the CUI prompt can suggest alternatives that the user can choose by clicking on buttons, images, or menus. One participant in the IBM study expressed appreciation for a particular chatbot because "it doesn't require typing, just interacted with the buttons."
7. Maintain context awareness throughout the conversation
If users don't like having to type in a lot of text, they hate with a passion being required to re-enter information they've already typed in. Having once told a chatbot their location, for example, they expect it to remember that information during the rest of the conversation, and preferably in succeeding chat sessions as well.
One participant in the IBM study was impressed by a particular chatbot because, "I told [the chatbot] that X is my friend and Y is his wife. Later I asked her, who is Y, and she correctly said X's wife!"
8. Handle unexpected inputs and errors gracefully
No matter how carefully designed your interface may be, errors and confusion will inevitably occur during sessions. Jesús Martín, who designs conversational interfaces for BEEVA Labs, puts it this way:
"Chatbots need to be designed for any possible misunderstanding in every step. That means that a specific error message needs to be set just in case the misunderstanding happens."
Here are some steps you can take to minimize the chances that a session will get off track:
- Confirm user inputs before acting on them
- Provide exit paths for all foreseeable error scenarios
- Provide an "emergency exit" capability, such as cancel and undo buttons, to handle unanticipated error conditions
- Expect interruptions and make provision for users to pause the session, then pick up where they left off at a later time
9. Provide easy access to a human agent
Sometimes even the best chatbot will be stumped by user requests that are too complex for it to handle. When that happens, or if the user simply gets tired of dealing with a robot, your CUI should provide an easily accessible way for them to connect with an actual person. And be prepared for the fact that some percentage of your users will want to talk to a human rather than your CUI from the beginning.
10. End the conversation gracefully
In the IBM study some participants became very annoyed with chatbots that seemed to make no provision for ending the conversation. Said one frustrated user, "It was impossible to end the conversation. I tried 'exit', 'quit', 'stop it', 'end this', still it kept talking."
Be sure your CUI design makes it obvious to users how to end the session. And your chatbot (or voice assistant) should do so gracefully, in a way users would expect if they had been conversing with a person.
A final word: Test!
Once you've included these principles in your conversational interface design, don't assume they'll work the way you intended. Instead, you should do an ample amount of user testing before going live. Use the results to fine tune your implementation until the users who participate in your test agree that the system works well for them. Doing sufficient testing up front will prevent a lot of unnecessary frustration on both sides of the conversational interface later on.