Best Practices for CXone Bot Builder

This page provides the recommended best practices for using Bot Builder.

Naming and Creating Your Bot

  • Don't use a real agent name for your bot. If you use a human-sounding name, choose one that's unlikely to belong to a real person.
  • Don't use the same employee profile for more than one bot. Each bot should have its own unique profile for routing and reporting purposes.
  • Do use the same name for the bot and the bot's employee profile. This keeps things simple when you're managing multiple bots.
  • Do use an email address you have access to. This allows you to receive and respond to the invitation to CXone. You can use the same email address for multiple bot employee profiles.

Writing for Your Bot

  • Decide your bot's personality and vocabulary ahead of time. Remember that your bot is a face of your organization, just as human agents are. Ensure that its manner gives the right impression. Be clear on the mannerisms you want to replicate in the bot's responses.
  • Write all dialogue ahead of time. This allows you to ensure that the bot's way of speaking is consistent throughout the conversation. When working on a new use-case, review the dialogue you've already written to maintain the persona across all use cases.
  • Know the audience you're writing for. The language and terminology you use for the general public may differ from the language you would use for a specialized audience.
  • Keep messages from the bot short. Many people don't like to read long blocks of text. The more text your bot sends, the less engaging it's likely to be. If there's a lot of information to send, consider breaking it into several shorter responses.
  • Use the variations option when you add messages to a story. This allows you to add additional versions of the same message. The bot uses one of the versions randomly each time it uses that response. Variations makes your bot seem more human-like and improves the contact's experience while interacting with the bot.
  • Use Smart Typing to display typing indicator dots for the contact. This creates a positive user experience, as a bot that replies instantly feels too "bot-like" and many people don't like that. After you enable Smart Typing, you can customize the length of time the bot displays the typing indicator for every message it sends.
  • Read through the conversation out loud a few times. You might consider role-playing the conversation with someone else. You could also record yourself reading the bot's responses, then listen to it. These are all good ways to spot places in the bot's responses that need improvement.

Intents

  • Intents aren’t always clear-cut. Two user goals might seem different but start to gather similar examples over time. Keep your intents and their training data distinct. If you want to reuse training examples for more than one intent, it's a sign that you might be able to merge the intents into a single, more general intent instead.  This helps you avoid intent confusion.
  • Always include an out-of-scope intent. Out-of-scope intents allow your bot to respond to contact requests that are outside the tasks the bot is trained to do.They allow you to recover the conversation and often result in improved performance.
  • Use multi-intents sparingly. Only use multi-intents when they are really necessary to the natural flow of conversation. Too many multi-intents can make your bot too complicated to manage easily.

Rich Messaging

  • Verify channel support. Not all rich media types are supported by all digital channels. You can check the current matrix of support.
  • Use rich messaging fallback. This type of fallback allows you to provide a backup for channels that don't support a rich messaging option you use in a bot response.
  • Know the file type and size limitations. Bot Builder supports a variety of multimedia types, including audio and videos. There are limitations on the size and supported file types for all multimedia.

Rules

  • Don't overuse rules. The bot cannot use them to generalize unforeseen conversation paths. They should only be used for small, specific conversation patterns.
  • Only use rules when the response is always the same. If there's a chance that some contexts may require a different answer, use a story instead.
  • Don't use rules if you want variation in response. Even if a rule is an appropriate tool for a particular message, you might want your bot to vary its responses so it sounds more human. If this is the case, use stories instead.
  • Use conditions with a rule if you want to describe when it should be applied. Conditions can be set based on the active form, a specific slot, or a specific slot value.

Stories

  • Use stories when context is important. Even if a conversation only involves one exchange between the bot and the contact, if the bot needs context to understand how to respond, use a story. For example, if you have a lookup_balance intent, but some contacts want the balance of a checking account and others want to know about a savings account, you could create a story to help your bot learn to respond appropriately based on which account a user specifies.
  • Use stories to help your bot learn to make predictions. Choose the subject of each story carefully. Ensure that it's designed to help the bot learn to correctly predict responses for conversations it hasn't seen before.
  • Base stories on real-world conversations. Don't make up stories that you think might happen. Use real interactions to create them instead.
  • Design stories that follow either a happyClosed Story that produces the correct outcome for the intent path or an unhappy pathClosed Story that produces a wrong outcome for the intent.

  • Use stories to handle context-switching. This helps your bot learn to switch between two conversation flows or handle interruptions that take more than one conversation turn to respond to. If an interruption only takes a single turn to respond to and doesn't depend on context, a rule may be more appropriate.
  • Some intents need multiple stories. Create multiple stories for the same intent if there are variations of how the conversation might go, based on the contact's unique situation and needs.

    • Don't include variations of the conversation flow in the same story. This could confuse the bot.
    • If there are variations to the way a contact might phrase a message, or similar messages that all mean essentially the same thing, you can add them as examples of the intent for a contact message.

    Think in terms of happy and unhappy paths. Each intent can have more than one happy path and more than one unhappy path.

  • Create a story for your out-of-scope intent. This allows you to train your bot on the more common ways that contacts present out-of-scope information.
  • Include back-and-forth between the contact as needed. Stories and rules should not be complete conversations. When the next statement in the conversation would necessarily start a new intent, it's time to stop and create a new story.
  • Break your stories into logical subtasks. It's tempting to create one long story that encompasses the entire conversation from start to finish. However, this can actually increase the number of stories you need. Instead, break your stories into logical subtasks. If you have some subtasks that are very closely related, you can link them with checkpoints.
  • Do not overuse checkpoints. They can simplify your training data. Too many checkpoints make your stories hard to understand and actually slow down your bot's training.

Training Data and Examples

  • Always opt for quality over quantity. It's okay to start with a small data set and build it over time as you gather more high-quality examples.
  • Use examples from real-world conversations. This ensures that the data you use is realistic. It comes from things real contacts have said.
  • Don't use tools that auto-generate data and claim to train your botClosed A software application that handles customer interactions in place of a live human agent. faster. They often produce examples that don't reflect what contacts really say. They also can result in a bot that loses its ability to generalize. Over time, the bot reaches a point where it only recognizes phrases it's seen before.
  • Do not use the same training data for more than one intent. If you re-used training data, the bot won't be able to reliably determine the intent in live interactions with contacts.
  • Remain flexible and willing to adjust intents and stories over time. As you review conversation data, you may discover that what you thought was two separate intents are really shades of the same, more general intent. Or you may find that an intent is too broad, and you must break it down into more distinct intents.
  • Add new training examples only if they will help.
    • Do not add new training examples that are very similar to existing examples. If the bot correctly predicts the intent with a high confidence for an utterance, it doesn't help the bot to add additional similar examples.
    • Do add more training examples of utterances the bot has previously predicted incorrectly or with low confidence.