Writing Natural Chatbot Responses
While writing dialogue for ATB Financial’s virtual assistant on Facebook Messenger, I realized something about how people talk to bots and it changed the way I write bot responses.
Prior to thinking much about writing bot responses, I wrote them as direct replies to the training phrases (or utterances) we had for each task the customer could complete (the intent). But, our analysis of people’s conversations with the bot shows that people make requests in two distinct forms: they give commands and they make inquiries.
I’d like to highlight the way these utterances differ and share some recommendations for writing more natural responses, regardless of the utterance.
When someone treats a chat bot like a servant, they bark orders or commands at it. For example:
- “Get my balance” or just “balance”
- “Send money”
- “Show branches”
These commands reflect the master–servant perspective that humans often take with machines (think command line interfaces like DOS or Terminal). Here’s an example:
So far so good, right?
When someone converses with a bot like it’s another person, they tend to be more polite and make inquiries or ask questions rather than give commands. For example:
- “How much do I have in my chequing account?”
- “I want to send Travis $50" (this statement implies “Can I…?”)
- “Where’s the nearest branch?”
Inquiries like this reflect a more natural language approach to the dialogue and build a stronger relationship between the customer and the brand. Here’s an example:
A different form of request, but the same answer. Makes sense, right?
Get Straight to the Point
So far, the bot has only given factual responses that fulfill the request, then waits for the next utterance.
If your brand personality (via the bot) is more direct, or the response won’t take any time at all to retrieve, you can just provide the answer, like we saw above.
However, there’s another way.
It’s often useful for a bot to acknowledge the request before fulfilling it. An acknowledgement step can add personality to the dialogue and/or buy time to fetch the response.
Here’s a command utterance with acknowledgement from the bot:
Here’s an inquiry utterance with acknowledgement from the bot:
You can see how an acknowledgement makes the conversation feel more natural. But watch what happens when we swap the acknowledgements between the two responses.
Here’s the command utterance with the acknowledgement from the previous inquiry dialogue:
Cool. That still works.
Does the inquiry utterance still work using the acknowledgement from the previous command dialogue?
Nope. That feels unnatural, right?! The structure of the response needs to change.
So, How Do I Write Responses That Feel Natural?
The simplest thing to do when writing responses to command and inquiry utterances in a conversational UI is to get straight to the point: respond with facts. That’ll remove a lot of the ambiguity and simplify your dialogue.
When you want to give your bot more personality and make the conversation feel more natural, include an acknowledgement response before fulfilling the request.
To make your responses more nimble and natural, I recommend:
- Use a factual response in most cases because it makes the fewest assumptions about the utterance and gets to the point.
- Write each acknowledgement response like you heard an inquiry, not a command. Responses to inquiries tend to work in both scenarios, but not the other way around.
- Test every response you write against both types of utterances and adjust accordingly.
Writing for bots is still fairly new to me but this realization has really helped me improve the conversational flow. I hope it helps you, too! 👏