Looking to build a bot and/or new to conversational design? Start here!
Moving from web design to conversational design can be a little intimidating, but you don't need to spend months developing linguistic and script writing skills before you can start. I've summarized the key things I've learned from studying language and conversation that you should remember before beginning to build a bot.
Ok, a conversation doesn't really have written rules or laws, but there are some guidelines that most people follow without realizing. A nice summation of some of those guidelines come from a philosopher called Paul Grice. Don't panic, I'm not sending you off to read a philosophy book, I've summarized most of the key points for you here. His principles are called Conversational Maxims, and I've paraphrased them here:
Be Relevant - Most chatbots don't have an issue with this one, they often can't deal with anything other than what they are designed to do!
Be Accurate and Honest - It's not enough to be honest. Make sure you are being accurate too. Don't say "there isn't any information on that" if you mean "I couldn't find any information on that".
Be Clear - Always ensure you are using words and phrases your users will understand. Also, make sure to call out important details where it might otherwise be unclear.
Don't say more (or less) than what is needed - This is especially important in a voice interface, but a key for all. Don't hide the important information amongst other non-important information.
Evaluate each part of the conversation you write against these four guidelines and you'll be off to a great start.
I often hear people say "your users could say anything", and while that's technically true, most people don't just say anything. While you can't require your users to follow the guidelines from the last section, people often naturally do. The same logic applies when trying to build a bot. Unless your user is deliberately trying to be confusing, most people will keep their conversation relevant. To do that; however, people need to understand what relevant is. Your chatbot should be very clear on what conversations it expects to have (and can handle). This will benefit you too since it will reduce user frustration if the chatbot is not constantly having to say that it doesn't understand.
Most users won't just say random things — they will try to stick to topics that make sense in the conversation.
Additionally, a conversation has a pattern. Each person takes a turn. Greetings should be responded to with greetings, questions with answers. The conversation you write for your chatbot should try to follow and respect these patterns. It should be able to respond to simple social phrases like 'hello', 'goodbye' and 'thank you'. Even more importantly it should never ask a question where it cannot accept or understand the answer.
Conversation is also very social. We adjust our speech patterns to match the person we are speaking to and to use the same words they do. If your chatbot uses certain words or phrases, make sure the user understands them. Let's look at an example below. A normal response when someone asks how you are is to respond by replicating the question and return the favor — that's a normal pattern and also an example of someone reflecting back on what you've said. If your chatbot is going to ask how someone is, it needs to be able to answer that same question.
If you do find something like this in your conversation, take a step back and consider if that part of the conversation is even necessary. Sometimes the best recommendation I can give someone about part of a conversation is to remove it. Remember the first point — stay relevant. If a conversation isn't part of the purpose of your chatbot then don't end up putting all of your attention into trying to fix it. Finally, remember that things can go wrong and you need to be kind to your users when they do. Even if your user does say something unexpected, you should always let your chatbot take the blame. Your user hasn't said the wrong thing — you just haven't understood.
No matter what, in a conversation the user is always right.
In the first conversations, you design simply ensure your chatbot apologizes when it doesn't understand. As you start to get more experience and start improving your chatbot there are more advanced strategies you can use. You can get some more details on from my recent blog post Helping Your Baby Bot Learn to Chat LIke a Grown Up Bot.
Here's a quick summary:
Make sure your user is clear on what your chatbot can do.
Use the same words and phrases you'd like the user to.
Don't make the conversation more complicated than it needs to be.
Don't make your user feel embarrassed — take the blame for anything that goes wrong.
As with everything, it's important that you really think things through before you start and continue to learn and refine as you go along.
Make a plan for your conversation flow It is important to make a plan for your conversation early in your process. You should map it out — whether that be on paper, a whiteboard, in a spreadsheet or using a tool.
Role-play acting as your bot A very quick way to get a feel for your conversation is to grab another human being and have one of you role-play portraying the bot and the other, the user. The person playing the bot can only respond with the pre-scripted responses that you plan out.
Put yourself in your chatbot's shoes — Be the Bot
If your bot is using a voice interface sit where you can't see each other to remove any visual feedback. If your bot is in a messaging application you may want to have the conversation there. I've found it an amazing way to very quickly see where the conversation sounds odd. It also helps highlight if you've forgotten to put in certain scenarios.
Get lots of feedback Try to show and test out your bot conversation with as many people as possible before you launch. There are lots of tools you can use to do this. For example, Alexa lets you invite preview users, or you can test out your bot before you've even really built it using mockups and tools like Botsociety.
No matter what your method, feedback will help you learn what a good conversation looks like for a chatbot. This isn't something that is only important when you're first starting out, this is going to be a continual process to keep making your chatbots better and better. I know I'm still learning new things all the time!
You may go through all these steps and find that you are still finding it hard to write a good conversation. That's ok. There are lots of other resources out there if you want to continue to learn, but it's also ok to get someone else to help you build a bot. Not everyone is good at everything. If your background isn't in creative writing or user experience you might want to find someone who has those skills. Form a team that has a mix of skills — you don't have to do it all yourself.
Hopefully, you have some great ideas for getting started. There is still a lot to learn…but the best way to learn is to jump in and start doing!
This post was orginally published via the Botsociety Blog and can be found at https://botsociety.io/blog/2018/04/build-a-bot/