The chatbot space is still in it's infancy and one of the key areas of learning over the last year has been around techniques for designing conversational interfaces. This is a brave new world and it differs quite a bit from our existing forms-based user interface paradigm, whether it be on a desktop, web or mobile. The information below is certainly not my original content, but rather the collected tidbits of wisdom that I've gathered over the past year on the topic by reading various articles and blogs.
Bots Must Be Useful
- Let's face it, if you're trying to get users to accept a new interface, it has to be better than the alternative. Otherwise, we're simply creating technology for the sake of technology. In my experience, this just doesn't work.
- To be useful, your bot must solve problems for the user with fewer steps than filling out a web form.
- Make a good first impression by guiding the user through common uses of your bot. Make it easy for them to get started.
- Be honest, forthright and set proper expectations. Let the user know they are interacting with a bot is not a human. The worst way to build trust is to deceive the user.
- Don't boil the ocean. In other words, make your bot serve a specific domain rather than trying to do too many unrelated things.
- Make your bot available to users where they already are. If your users predominately on Kik or Slack, make it work on those platforms instead of making them switch to FaceBook Messenger.
- Finally, to be useful, users must be able to find your bot -- obviously.
Make the AI Work or Don't Use It
- AI is not the most important factor for adoption (see previous section).
- When your AI continually fails to understand users, they leave and don't come back. Don't frustrate the user!
- Similar to the previous point, don't continually use "Sorry, I don't understand your response/question!"
- Rich UI is becoming more available in Bot platforms, use these features when appropriate - http://adaptivecards.io/.
- FaceBook “Quick Replies” and/or Kik “Suggested Responses” can help guide the conversation.
- Predefined responses also help users avoid the frustration of typing.
- Avoid the use of jargon in your dialog.
Work Out Your Flow
- Map the conversation flow, but provide exits for the user to switch context to other dialogs.
- Don't insist on a particular flow by continuously driving the user back to the same question when they try to switch topic.
- Your responses should make sense in the context of the conversation.
- You must respond, and respond quickly (not after the user has typed "Hello!" 10 times.
- As noted above, don't use trivial or obvious responses, respond in a way that provides value to the user.
- Know when to forget. This is tricky, but there are times when the user has moved on . . . and your bot needs to as well.
- Don't ask a question that the user has already answered.
- Beware of sticking too closely to the "happy path" as conversations can yield many different responses.
Don't Be Boring
- Conversations should be in the first person.
- Use humor to keep the conversation interesting.
- When responses don't work out, be ready with fun, self-deprecating humor.
- Create different responses for the same question.
- Track responses and iterate on them to improve and keep it interesting for returning users.
Take the Long View
- Maintain the state of the conversation so users are forced to start over when they return.
- Use push notifications to re-engage users.
- Don't leave users hanging, consider an human-in-the-loop escalation workflow for difficult domains.
There is much more I'm likely to learn on the topic, so watch for more to come. O'Reilly has a couple of books on the topic that I have queued in my Amazon Shopping list:
- Designing Bots: Creating Conversational Experiences, by Amir Shevat
- Designing Voice User Interfaces: Principles of Conversational Experiences, by Cathy Pearl
Bots still have a long way to go. Keep learning!