What are the Key Guidelines for a Better Conversational Design?
- Getting Started
- Bot Building
- Smart Agent Chat
- Conversation Design
-
Developer Guides
Code Step Integration Static Step Integration Shopify Integration SETU Integration Exotel Integration CIBIL integration Freshdesk KMS Integration PayU Integration Zendesk Guide Integration Twilio Integration Razorpay Integration LeadSquared Integration USU(Unymira) Integration Helo(VivaConnect) Integration Salesforce KMS Integration Stripe Integration PayPal Integration CleverTap Integration Fynd Integration HubSpot Integration Magento Integration WooCommerce Integration Microsoft Dynamics 365 Integration
- Deployment
- External Agent Tool Setup
- Analytics & Reporting
- Notifications
- Commerce Plus
- Troubleshooting Guides
- Release Notes
As conversation designers, it’s important to acknowledge our limitations. There’s pretty much no way we can make chatbots as responsive and intuitive as real human beings. In fact, many users expect the exact opposite from virtual chat experiences. When I describe my job to family, friends, or acquaintances, they often share how frustrating and useless they find chatbots to be. They see IVAs as rigid, unhelpful, and largely unable to answer the specific questions that they pose.
Solid natural language processing capabilities are key to addressing these problems. However, there are small steps that conversation designers can take to reduce the friction and frustration that chatbot users often feel. Even if a bot is unable to respond to questions with the accuracy or flexibility of a real person, simple language tweaks can make a conversational experience much more fluid, gentle, and pleasant.
With this in mind, consider following these guidelines while designing your next IVA.
1. Don’t Overpromise
While designing conversations for a chatbot, it is important to be upfront about what an IVA can and cannot do. Especially in situations where a user’s mental or physical well-being may be at stake, it’s crucial not to promise support a bot cannot give (and then, of course, to provide higher-touch alternatives for users who are really struggling.) Even in lower-stakes use cases, it’s important not to promise more than you can deliver – in other words, to make users believe that the bot can understand or assist them in ways that it actually can’t.
One key way to avoid this is to set expectations from the very first message. When your bot introduces itself, make sure to mention its name (if any), a few points about what it can do, and then a direct question about what the user wants to do next – preferably one that guides them down a fully fleshed-out conversational path. And if your bot slips up, don’t hesitate to remind the user that it’s not human – it faces limitations, but is continually learning. Especially in moments where users might feel disappointed – like bot breaks or instances of negative feedback – it’s better to admit shortcomings than to try (and fail) to maintain the illusion of human intelligence.
Example #1: Imagine you’re crafting an initial message for a bot that teaches people how to use cleaning products.
DON'T |
DO |
Write a message like “Hi there! I’m here to help you with all of your cleaning needs. What can I assist you with first?”
This statement is broad, vague, and probably not true – can this bot really help the user with all their cleaning needs? As such, it may lead users to ask hyper-specific questions that the bot can’t actually answer – like “How do I polish my antique toilet?” This will almost certainly set them up for disappointment.
|
Write a message like “Hi there! I’m Clarence, your trusty hygiene advisor. I’m here to show you how to use our latest line of CleanCo products. Which product would you like to learn about first?”
This positions the bot as an expert on a distinct topic – how to use CleanCo products. It states very clearly what it’s capable of, which will likely prevent users from asking unrelated questions. To make the conversation even more structured and predictable, consider adding quick replies that lead to well-developed conversational flows – in this case, the names of specific products would be a good choice. This way, users will be impressed by the bot’s subject-area expertise, rather than asking questions it doesn’t know the answer to.
|
Example #2: Imagine you’re crafting bot breaks for the same bot (a “hygiene advisor” that provides information on a specific line of cleaning products.)
DON'T |
DO |
Write a curt, vague bot break like “I’m sorry, but I’m not able to understand that.” This will only irritate and confuse users who expected more from the bot. (See also: point #6 in this document. With regards to bot breaks, it’s often better to err on the side of more detail!) |
Write a bot break that’s up front about what the bot can’t do, ultimately pointing users towards the things it can do. Something like: “I’m sorry, but I’m not sure how to answer that question. I’m still catching up to my human co-workers when it comes to cleaning expertise. Can I help you with a CleanCo-related query – for instance, how to use our kitchen or bathroom products?” |
2. Craft Natural Quick Replies
Quick replies are a handy way to guide users down conversational paths that your bot is capable of handling. However, if quick replies aren’t carefully worded, these pre-set paths can become rigid, awkward, and uninviting. To remedy this, take care to model your quick replies on natural, everyday speech. In other words: make sure they sound like something a real person would say in response to the preceding prompt or question. Stick to replies that are speech-like and direct, rather than long, technical intents that likely wouldn’t show up in a real-life conversation. This can make a guided, pre-set conversational path feel natural to the user, even within highly structured journeys like FAQ bots.
Example #1: Imagine that the bot asks the user, “What would you like to learn about this product?”
DON'T |
DO |
Use quick replies like “Product Instructions” or “See Product Instructions.” Those responses don’t make sense given the actual question. Think about how weird it would sound if someone asked you “What would you like to learn about this product?” and you responded, “Product Instructions.” You’d sound like… a robot, right? 🤖 |
Use quick replies like “How to use it” “Show me how to use it.” These are things you might actually say if you were asked this question in a real-life conversation. |
Example #2: you can also rephrase the initial question in order to make quick replies seem more conversational.
DON'T |
DO |
Pair a question like “Would you like to learn more about either of these products?” with quick replies like “Product 1” and “Product 2.” Again, these answers don’t really match up with the question at hand. |
Rephrase the question to say “Which of these products would you like to learn more about?” Now “Product 1” and “Product 2” make sense as quick replies. |
Example #3: Re-phrasing the initial question can also help you avoid long, technical quick replies, which can be tough for users to parse at first glance (and also hard to fit within character limits.)
DON'T |
DO |
Pose a short, simple question like “What would you like to do next?” when the next step in the conversation is somewhat complex, like “Review safety guidelines and hazard labels.” That would be a tough intent to fit into a quick reply – you might end up with something like “See safety guidelines + hazard lbls,” which is awkward and abbreviated.
|
Provide enough context in the initial question so that quick replies can stay simple and brief. In this case, you might rephrase the previous question as: “Now that you’ve reviewed the product instructions, would you like to take a look at safety guidelines and hazard labels?” The quick replies could then be something like “Yes” and “Ask a different question.” Much simpler and more conversational! |
3. Avoid Repetition
Sometimes, development constraints make repetition unavoidable. Conversational paths often need to loop back to previous nodes, which can’t always be altered for the sake of variety. However, if possible, consider altering the language in your design so that the same words and phrases are not repeated over and over again. This can be achieved by creating follow-up messages that are differently phrased than initial messages, or by implementing variants. Essentially, variants are slightly different versions of the same message that get randomly served to users as they encounter them again and again. They are especially useful when added to messages or flows that users may see repeatedly, such as feedback nodes or main FAQ menus. This, along with scanning through your design to catch repetitive words or phrases, will do wonders to make the experience feel less robotic and more natural. Real people vary their phrasing in subtle ways as conversations proceed, so bots should too, where possible.
Example: Let’s say the user encounters an initial main menu-type message that reads “What would you like to learn about today?” The answer selects “Canceling a reservation,” reads the answer, and then indicates that they have understood the information.
DON'T |
DO |
Direct them back to the original menu message (“What would you like to learn about today?”) If you did, the exchange would go something like this, which is decidedly stiff and repetitive: BOT: What would you like to learn about today? USER: Selects “Canceling a reservation” BOT: We’ll gladly refund you if you cancel 24 hours ahead of time. If you must cancel at short notice, we must, unfortunately, ask that you pay your security deposit in full. USER: Selects “Ok, got it” BOT: What would you like to learn about today? (Rigid! Repetitive! Ack!) |
Create a slightly altered, secondary menu message that acknowledges that the user has asked a question already. The conversation might go something like this: BOT: What would you like to learn about today? USER: Selects “Canceling a reservation” BOT: We’ll gladly refund you if you cancel 24 hours ahead of time. If you must cancel at short notice, we must, unfortunately, ask that you pay your security deposit in full. USER: Selects “Ok, got it” BOT: What else can I help you out with today? (Only slightly different, but better!) |
4. Give Users an Out
The average chatbot user doesn’t have time or energy for a long, drawn-out interaction. But if they want or need to leave a conversation ASAP, the way out isn’t always clear. Many users end up saying goodbye or closing out of the chat window before the conversation reaches a clear end, which can feel abrupt and dissatisfying. To prevent this, consider giving users opportunities to exit the conversation at natural stopping points. This is a decidedly more natural, pleasant experience – like saying a quick goodbye to a friend instead of abruptly hanging up. Of course, if you do decide to add elective stopping points into your conversation, it’s important to make sure that they segue smoothly into whatever pre-set outro is built into the bot, whether that’s a feedback node or a final question, like “Is there anything else I can help you with?”
Example: Let’s consider the same example as above– an initial main menu message that reads “What would you like to learn about today?” with 4 quick reply options (“Canceling a reservation,” “Booking a reservation,” “Purchasing a gift card,” “Hosting an event.”) Imagine that a user ONLY wants to cancel their reservation, and isn’t interested in any of the other topics.
DON'T |
DO |
Direct them back to a menu message with the exact same quick replies. The user won’t want to proceed through any of them, so they’ll probably just exit the conversation. BOT: What would you like to learn about today? USER: Selects “Canceling a reservation” BOT: We’ll gladly refund you if you cancel 24 hours ahead of time. If you need to cancel at short notice, we must unfortunately ask that you pay your security deposit in full. USER: Selects “Ok, got it” BOT: What else can I help you out with today? [Options: “Canceling a reservation,” “Booking a reservation,” “Purchasing a gift card,” “Hosting an event.”] USER: *Abruptly leaves the conversation without closure or an opportunity for feedback. Feels slightly awkward and perhaps even dissatisfied.* |
Direct them to a secondary menu message that offers them the opportunity to wrap up the conversation. That way, they can have some closure, and provide feedback if they so choose. BOT: What would you like to learn about today? USER: Selects “Canceling a reservation” BOT: We’ll gladly refund you if you cancel 24 hours ahead of time. If you need to cancel at short notice, we must unfortunately ask that you pay your security deposit in full. USER: Selects “Ok, got it” BOT: What else can I help you out with today? [Options: “Canceling a reservation,” “Booking a reservation,” “Purchasing a gift card,” “Hosting an event.” “I’m done for now.”] USER: Selects “I’m done for now” BOT: Ok, sounds good. Would you like to give me some feedback on how I did today? [QR Options: “Sure,” “No thanks”] USER: Selects “No thanks” BOT: No problem. Glad you stopped by today! Bye for now 👋 USER: *Leaves the interaction with the information they needed, plus a sense of closure and (hopefully) satisfaction.* |
5. Don’t Mind-Read
A key step towards designing effective, enjoyable conversations is to imagine yourself in the user’s shoes. However, don’t assume that you know how they will feel at each stage of the conversation. If your bot makes a statement that assumes a certain emotion or reaction on the part of the user, it may be wrong – which, of course, is a key giveaway that you’re speaking to a bot, rather than a human. That’s why it’s best to stick to broad, neutral responses when you can’t be totally sure of a user’s feelings or attitude. This is especially important when a user has entered a free-text statement versus a quick reply – you never know what they might say, so take care not to assume anything in your response.
Example: imagine that you’re working on a bot designed to help frequent travellers manage flying anxiety. The bot has guided the user through a breathing exercise and is now wrapping up the conversation.
DON'T |
DO |
Assume that the user has found the interaction helpful. This can come off as oblivious at best, and actively cruel at worst. Here’s how this might play out: BOT: Now that we’ve wrapped up this breathing exercise, how are you feeling? USER: I’m actually feeling worse. My heart is racing and my palms are sweaty. I can’t stop thinking about this plane falling out of the sky. BOT: That’s great! I’m so happy I was able to help! (Oof. Not good, right?) |
Provide a broader, more general statement that could work in response to almost anything the user might say. BOT: Now that we’ve wrapped up this breathing exercise, how are you feeling? USER: I’m actually feeling worse. My heart is racing and my palms are sweaty. I can’t stop thinking about this plane falling out of the sky. BOT: I’m glad you shared that with me. Would you like to try a different exercise, or end this conversation for now? (This message is not totally perfect, but it leaves room for the user to feel what they’re feeling, whether they were satisfied with the exercise or not. It also offers them an alternative path forward that may better suit their needs.) USER: Okay, maybe I’ll try something else… |
6. Put some heart into your bot breaks
If you’re like me, you often add bot breaks into your design at the very end, when time and patience are running low. It’s tempting to write these types of messages as quickly and efficiently as possible, but this can yield curt, overly brief copy that will probably make frustrated users feel even worse. It’s not easy or fun, but if you can, try to imagine that you’re speaking to someone you really care about, and that you actually feel bad that you’re unable to help them. Do your best to write bot break messages that are genuine, sincere, and helpful (of course, without rambling or becoming overly apologetic.) Receiving a message like this instead of a cold, cookie-cutter response just might make a difference in the user’s overall experience, even if they didn’t get the answers they needed.
This is especially important if you’re writing a bot for a client that has specifically requested a formal and/or friendly tone. A bot’s personality is often most evident when it falls short of user expectations, so it’s important to make sure that your bot breaks align with an overall attitude or persona.
Example: Imagine that you’re working on a bot for a hotel that will transfer users to a concierge if they’re unable to understand a request. The client has requested a bot personality that’s both formal and helpful, in line with their employee training guidelines.
DON'T |
DO |
1. Write a brief, abrupt bot break like this… USER: Can you set up a charcuterie board in my room before I arrive? BOT: I’m sorry, I didn’t understand that question. Do you want to speak with the concierge? (Too brief, too abrupt, probably not something that a trained luxury hotel worker would say!) 2. Write a goofy bot break that doesn’t fit with the bot’s personality, and might rub some users the wrong way. USER: Can you set up a charcuterie board in my room before I arrive? BOT: Oops! Looks like I’m broken. Want to chat with our concierge while I grab my toolbox and fix what’s wrong? (Too cute, potentially irritating, DEFINITELY not something that a trained luxury hotel worker would say.) 3. Write a bot break that’s overly apologetic. USER: Can you set up a charcuterie board in my room before I arrive? BOT: I am so incredibly sorry, but I must inform you that I cannot understand your request. I deeply regret my inability to assist you. May I humbly offer the services of our concierge at this time? I’d be happy to hand you over to them. Apologies once again. (Too many apologies, which assumes that the user is more upset than they actually might be. This could seem insincere and actually make them more upset.) |
Strike a balance between apologetic, sincere, and true to the bot’s personality. This is hard to do, but possible with practice. USER: Can you set up a charcuterie board in my room before I arrive? BOT: My apologies, but I’m unable to understand your question. I’m sorry that I can’t support you at this moment. I'd be happy to re-direct you to the main menu, where you can choose a topic related to your question. Alternatively, I can put you in touch with our concierge, who would be delighted to provide further help. (Apologetic and formal, but not overly so. Offers clear next steps that will actually be helpful to the user. It is a bit wordy, but in my personal experience, this can be okay – better to write a lengthier bot break than an overly brief one that makes it seem as if the bot doesn’t care.) |