Recently, I read about Shneiderman’s eight golden rules for user interface design in an Interaction Design Foundation (IDF) article. It was a very insightful article and I would recommend that you give it a read too. I wanted to explore how those rules can be applied to chatbots and conversational experiences. So here I go..
Chatbots are user interfaces too. Although they are more conversational and allow the use of natural language when compared to other types of interfaces like graphical user interfaces (GUI) and command-line interfaces (CLI). Shneiderman’s rules for UI can therefore be applied to chatbots too. In this article, let us explore how each of those rules can be applied in chatbot design.
An interface whose behaviour is consistent with others is easy to onboard. And one that is internally consistent is easy to learn and use. Consistency is therefore a key factor in adoption and successful use of an interface.
Although we do lack common standards to follow, chatbot designers could learn from other successful ones and design theirs to behave consistently with others. For instance, it is common for users to ask for help by asking “What can you do?” or “What can I say?” to chatbots when they do not know how to use the chatbot. By designing chatbots to answer common queries such as these, we can make our chatbots more easy to adopt.
Internally too, a chatbot needs to be consistent. We may not want a chatbot to greet the user in the same way all the time. So sometimes, we want it to say “hello” and other times “hi” and so on. While a little variation is necessary to make a chatbot sound a little less monotonous, consistency is possible one level up. For instance, it can always start with a greeting, consistently.
Another behaviour that needs to be consistent is on the input side. Many chatbots use machine learning to understand what the user says. With iterative training, understanding utterances can be a bit inconsistent. The chatbot may have understood an unseen utterance (not in training example set) and mapped it to an intent at some point in time. But it might map it to another intent after a few iterations of training with new data. Ensuring consistency in understanding user utterances will be key to reducing user confusion and frustration.
As users start using your product or service more frequently, there should be ways to make frequent tasks easier to perform. Shneiderman suggests that we provide shortcuts to users so that they can perform their most frequent tasks quickly. In chatbots, this can be achieved by maintaining a user profile database where every user’s most frequent tasks can be identified and stored. Such a record can then be used to provide shortcut buttons along with greeting message.
Informative feedback is key to a successful conversation. There are many places in the conversation where feedback is essential. Tell the user what your chatbot understood. This can be managed using implicit and explicit feedback. Implicit feedback is when you acknowledge what you understood and move on to the next question (e.g. “Ok. Flying to Paris. And when do you want to fly?”). Explicit feedback is when you stop, ask if your understanding is correct and then move on to the next question (e.g. “Did you say you want to fly to Paris?”). Explicit feedback can be used when you are less confident in your understanding of user’s input, probably due to noise in speech or spelling errors. Implicit feedback will do, otherwise. Either way, the user is more confident about the conversation going the right way.
Also, don’t let your users guess what’s going on in the backend. Tell them. If the chatbot needs to query the database to get some results, why not tell the user as he waits (e.g. “Hold on a sec, I am going search for flights for you. This can take a few seconds.”). Also if the database is not responding quick enough, inform the user (e.g. “It’s taking a while. Hold on. I am still processing”).
This relates to the rule about feedback. When a task is finished, inform that to the user in certain terms. Best, summarize the whole thing (e.g. “Your payment of £30 to John has been made.”) If the task needs more time than the user would care to wait, then tell the user that it will done offline and the user will be notified when it is finished (e.g. “I have setup the payment of £30 to John to be made on the 15th. I will notify you when it is done.”). Also follow up and send a notification, if the chatbot is capable of push notification. If not, be ready to inform that the next time the user engages. Providing closure to tasks can reduce confusion and duplicate tasks and therefore build trust.
Error handling ought to be simple. I haven’t seen any chatbots as yet throwing error codes such as 404 or 500. However, they do a lot of “I am sorry. I do not understand.” type messages. Such messages are confusing. Can we be more specific as to what the issue is? We can. If the chatbot can understand a request but has no response, it could say something like “I see you are talking about hotel booking, but I can’t do that yet.” instead of something generic like i-dont-understand. If the user’s input is a question that the chatbot does not know the answer to, it could say “I don’t know the answer to your question”. And if its a request, then say “I don’t know how to process your request”. At least the chatbot understood it was a question/request and not just any string of words.
Error messages should be clear and simple to understand. If the database is not responding, it could say “Sorry, the database seems to be down. Try again later.” This would make the user to come back later than abandon the whole experience because the chatbot said “Sorry. Something wrong. Try later.”. Also with each error message, suggest a plan of action — try later, call a human, try the website, etc so that the user perceives that your chatbot is really trying to help.
One of the biggest barriers to chatbot use is the perceived lack of reversal of actions. If a chatbot is asking me a series of questions, more often than not, I will not be able to reverse the answer to my previous question. This is a serious problem. If an online form would allow me to reverse a previous answer, why wouldn’t a chatbot? So try and design conversations in such a way that users can revisit previous answers and amend them.
This one is about putting users in full control of the experience. Although it is important for the chatbot to drive conversations in many cases, it is also important to let the user know that she is in control. Users should be able to quit a task mid-way, or possibly even pause it for a while or stack it for later. Users should be able to call for help from human agents if in case they feel stuck or confused. Some chatbots would not allow any other inputs than predefined ones in the middle of a conversation. Such instances will make users being out of control and would force them to abandon the conversation entirely. Have a list of interrupt messages (e.g. quit, pause, call human, stack it, restart, etc) that you will let through in the middle of a conversation to users can use and be in control.
Finally, the conversational experience that the chatbot provides the user should not overload the user’s memory. Us, humans have very limited attention span and can’t remember too many things in the short term. When provinding options to choose from make sure the list is not too long. Do not have too many buttons to choose from in response to a chatbot question. Ideally it should be a maximum of 3 to 5. If you have more, then make the last button “more” and provide more options when its pressed. Humans do well in recognition tasks than recall tasks. Giving the user a few options and making them choose is better than asking them to come up with an option by themselves. It is therefore good to provide response buttons to direct the flow of conversation than leave it empty for user to type in his response.
Always provide help, if possible adapted to context, as the user is not going to remember all the conversations the chatbot is capable of and all the natural language input it will and will not understand. Use shortcuts to provide an easy way to carry out their frequently used tasks and reduce the burden on their memory to store the procedures needed to carry them out.
So there we go! Shneiderman’s eight golden rules to building better chatbots and conversational experiences. Hope you found them useful. Please do comment and share with me your thoughts on how we can build great conversational experiences.
#UX #ConversationalUI #UI #UserInterface #Chatbot #ConversationalAI