Bot Basics

Design Utterances for Your Bot

An utterance is a single portion of your bot’s overall dialog. Learn how to design your bot’s utterances to determine your bot’s tone and personality.

July 24, 2018

You’ve done it. You’ve defined your intents and designated your entities, and now it’s time to build your bot’s voice. Chatbots, or bots, usage is growing and there are hundreds of thousands of them out there—many competing with yours. The way you design your utterances will either set your bot apart or lose it in the crowd.

In this article, we explore utterances, what they are, how they keep users engaged, and how they work within a natural language processing (NLP) system.

What is an utterance?

An utterance is a single portion of your bot’s overall dialog. Your customers issue utterances to your bot every time they type a word or phrase, and your bot sends utterances back as responses.

The way that you design your bot’s utterances determines its tone and personality.

Bot tone and personality

Because your bot communicates mainly through text and images, the tone it takes can make a huge difference in user engagement. Users want to interact with bots that sound like humans. It’s much harder to get users invested in a bot that sounds like exactly what it is—a machine.

Let’s say you build a bot that helps users order food for delivery. Your bot can give straightforward answers, like, “Order confirmed. Your pepperoni pizza will arrive in 30 minutes.” Although that answer is informational, it’s not engaging or exciting. Your users can find a thousand other pizza-order bots that can say the same thing.

What if your bot said something like, “I’m sending in your order right now. Cheesy pizza goodness will be yours in 30 minutes.”? That’s a far more human response and a much more engaging interaction for your users.

How to design utterances for your bot

Most NLP systems use a method kind of like a flowchart to help your bot respond with appropriate utterances.

In the NLP system, you write and assign different responses that your bot can use for different units (called nodes). Each node has a condition (such as an intent or an entity) that triggers different responses. When the user inputs an utterance, your bot goes down the list and looks for a node with a condition that fits that input.

Design Utterances for Your Bot

An utterance is a single portion of your bot’s overall dialog. Learn how to design your bot’s utterances to determine your bot’s tone and personality.


Each node can also have sub-nodes, called child nodes. Usually, when the user responds, your bot starts at the top of the node list and looks for a condition that matches the user’s input. However, if your user activates a child node, your bot starts at the top of that sub-list rather than going back to the beginning of the main list for each new response.

For example, if you build a bot that helps people order pizza, a parent node might have a condition, like a #place_order intent, and child nodes would have conditions, like @toppings, @crust, and @sauce entities.

Remember that the utterances you put in those nodes will define your bot’s tone and personality. Make sure that your responses are cohesive and maintain a consistent tone throughout. You can’t ask users, “Are you currently prepared to place an order?” in one node, and say, “Alright old pal, we’re putting your order in a big ol’ box,” in another one.

Read through all the utterances in your nodes—in the order that a user might receive them—and make sure that your bot seems like the same “person” from beginning to end.

Include multiple response options

Humans rarely repeat the same words multiple times, especially in conversational settings. When the bot issues the same response, again and again, your users are reminded that they’re talking to a bot.

To keep your users engaged and to ease frustration, especially when your bot has to tell them that it doesn’t understand, be sure to include several different utterance options in your nodes.

This is especially important for the Anything_Else node, included by default in most NLP systems. This node activates whenever your user says something that doesn’t fit any of the other nodes. It’s the classic, “I don’t understand; try again,” response.

If your bot repeats, “I don’t understand; try again,” over and over, customers will stop trying again pretty quickly. Include alternatives that encourage your customers to engage with the bot by rephrasing their input.

Example alternatives to “I don’t understand”:

  • Could you give me more information on that?
  • I’m not sure what you mean. Can you say it another way?
  • Hold up—I’m not sure what you said.
  • I didn’t catch that.
  • What comes next

    Now that you’ve built your bot, it’s time to put it out into the world. Check out our article, “4 Proven Ways to Get Your Bot Discovered”.