ENGL 8122  ※  User-Experience Research & Writitng



Designing Bots: Creating Conversational Experiences 1st Edition

Notebook for Designing Bots: Creating Conversational Experiences Shevat, Amir Preface
  • -Page 3 Designing bots is a new design proficiency, and is not a trivial matter. While bots are a great new user interface, they are not suited for every use case, and you will need to learn how to use bots effectively.
  • Page 10 The bot is only an interface into the service, in the same way a website can be an interface for booking a flight.
  • > Page 12 Messaging and the ubiquity of connectivity mean that people are more available and responsive via messaging than alternative, indirect modes of communication.
  • > Page 13 conversational interfaces.
  • > Page 13 It is important to note that mobile interfaces were better than web interfaces in many ways and could facilitate new use cases (such as location-based services and camera-based services),
  • > Page 13 as another venue to engage with your users.
  • > Page 14 The biggest value of the bot here is that users are already accustomed to getting notifications through their messaging apps, so the engagement rates are much higher.
  • > Page 16 conversational interfaces are going to surface in more and more of the tools and services that we use every day.
  • > Page 24 The purpose of bots for business is to facilitate a task or a business process in an easy, pleasant, and productive way. Communication should be to the point, with a focus on getting things done rather than talking about it.
  • > Page 25 consumer bots are less task and workflow oriented and more experience oriented.
  • > Page 26 There are a few consumer bots that need to be more similar to the business bots--joking with my bank bot about my finances is probably not a best practice.
  • > Page 30 Designing Voice User Interfaces (http:// bit.ly/ designing-voice-user-interfaces), written by my friend Cathy Pearl
  • > Page 31 like with many new services, the minimum viable product (MVP) approach applies to these new bots--start with a single focused value proposition and grow from there. 3. Major Platforms
  • > Page 41 Validate your decision by talking to potential users. Try to create a prototype (you'll see how in Chapter 17) and have them access the service and use your bot.
  • > Page 45 There is a strong incentive to use bots for business workflows--facilitating short, contextual, and actionable tasks can greatly improve the productivity of a team.
  • > Page 46 Personal bot coaches that help users with weight loss, finances, parenting, sports, and more.
  • > Page 46 A good example of a coach bot is Lark
  • > Page 47 bots can provide a more personal experience that is harder to ignore, compared to mobile apps for example, and users are often more willing to provide information to a bot than to fill forms in an app.
  • > Page 50 The hope is that text-based bots that are delightful, personalized, and actually get us to the right person can change our negative perception of most common answering machine-like IVR systems.
  • > Page 50 Bots can easily cover approximately 40% of internal and external support tickets.
  • > Page 51 users do not want to context-switch between apps to get the information they need or run their workflows.
  • > Page 53 The core incentive here is app fatigue--users are tired of installing specific brand apps. Bots provide brands a new and fresh way to engage with their users in a useful way.
  • > Page 55 I talked to one of the CEOs of a leading mobile platform, and he said that no one could have guessed that asking strangers to come pick you up from your home, with their private cars, would become one of the most profitable use cases of the mobile world. We still do not know which bot will make it big, but history has taught us that a few will change our world.
  • > Page 56 The key is not to teach the user how to fill in a form, or to take them to the right page, but rather to recognize the user's intent (what does the user wish to do?) and to guide them in accomplishing that intent.
  • > Page 57 Personality
  • > Page 58 (getting things done versus having fun, for example),
  • > Page 58 Logos and icons--. As bots are a transparent( ish) UI, having a logo and an icon allows the user to identify the bot, which contributes to brand recognition.
  • > Page 58 Naming a bot with a human name can create a stronger emotional connection.
  • > Page 58 Human intervention--. Routing a conversation to a human is quite easy, and can be transparent to the user in chat conversations.
  • > Page 59 Onboarding -- you relay information to the users about the bot's purpose, ways to interact with the bot, what functionality is provided by the bot, and how to get help. ... Functionality scripting--. This is the meat of things. Here you script the flows (sometimes called stories) for each function, including happy paths and mitigations for failure. ... Feedback and error handling--. This is an important part of the script that is sometimes overlooked. Feedback is one of the keys to making your bot better, ... Help and support--. At any time during the conversation, the user might get lost or thrown out of the happy path or flow (the main expected flow).
  • > Page 61 Bots are therefore required to infer contexts, keep the state of a conversation, and remember key details of previous conversations.
  • > Page 61 Discovery and installation. You need to think about the bot habitat, the listing of the bot in a directory, and ways to initiate the first bot interaction
    Engagement methods.
    Notifications
    User-led bot invocation
    Subscription
    Monetization
  • > Page 62 The first step to a successful bot design is understanding what it does. Defining the core purpose and functionality of the bot lies at the heart of your bot's anatomy.
  • > Page 62 As bots are more limited in the richness of their interface than web or mobile apps, it is important to be very clear about what functionality the bot exposes and provide ways to educate the users on how to invoke that functionality as part of the conversation.
  • Logo ... the sticker is used as a header to the conversation, setting context but also keeping up the brand recognition throughout the conversation. ... Picking the right name for your bot is as important as (if not more important than) picking a name for a mobile app. ... Naming your bot in a way that implies its functionality (making the name descriptive) can be very useful and help make it memorable ... If you have a strong brand name and a single bot that exposes your service, you might name your bot with the same or a very similar name ... avoid using another company's trademark. ... Try to avoid using too generic a name that might conflict with another bot's name.
  • > Page 75 Personality is one of the key attributes that can differentiate your bot from other bots that provide a similar service. ... Consider whether the target environment is a work environment or a consumer environment, ... Consider the type of audience who will be the primary users of your bot ... The task the user is intending to execute implies different personality characteristics, even for what initially might seem like similar tasks. ...
  • > Page 78 I did not want the personality to overshadow the service,
  • > Page 81 Once you have defined a personality, it is important to keep it consistent across the experience.
  • > Page 83 Some bot builders focus solely on the personality, rather than on the service, and that is like painting a crappy car with shiny colors--it might work for the first impression, but not for much longer than that.
  • > Page 83 personality is exposed in the script itself,
  • > Page 84 we gave our agent a proper full name (Amy Ingram, and Andrew Ingram). And when scripting her end of the dialog, we built in things like empathy.
  • > Page 84 if you are on the third reschedule, Amy needs to signal that she realizes that this is not an ideal situation,
  • > Page 84 many of the traditionally accepted social interactions that humans abide by must be catered to in an Intelligent Agent world as well.
  • > Page 84 Don't send two emails while people are likely to be sleeping,
  • > Page 85 Focusing on designing how your bot converses with its users, adding empathy, and making it more friendly and approachable is a great best practice.
  • > Page 86 While bots can address some use cases very efficiently, having a human in the loop might save the bot from many embarrassing and frustrating situations.
  • > Page 87 Another common pattern is where humans help train a bot. As software is great at repeating tasks and at pattern recognition, having humans teach bots by example can be a great way to automate processes on the job.
  • > Page 88 Currently, the best way to train an AI is by giving it a lot of examples. This human training by example pattern provides the seed data that the bot requires to start being productive.
  • > Page 88 Live logs are super useful to get an understanding of what works and what does not.
  • > Page 90 Make sure you are looping humans in at the right time and for the right reasons. 7. Artificial Intelligence
  • > Page 92 AI today is not a single thing, but a set of tools that designers and bot developers can choose to use in order to build a conversational bot.
  • > Page 94 Conversation management technologies are in their infancy, and there is a lot of progress to be made in this area.
  • > Page 98 AI usually does a good job of finding patterns and predicting outcomes based on past data.
  • Page 98 One unique AI service that is useful for conversation is sentiment analysis. This AI service gives you a prediction about the user's emotional state, together with a level of confidence in that analysis.
  • > Page 99 Please note that sentiment analysis is still in the early stages, and currently not very accurate--catching swear words or terms of endearment through simple pattern recognition might be as effective as AI for many bot use cases.
  • > Page 100 Most bots today use simple regular expressions to understand the intent of the user;
  • > Page 103 During onboarding the bot declares its purpose in the context of the conversation, making it transparent to the user or the team.
  • > Page 105 Now that the user knows what the bot is for, it is time to move to the next stage, which is telling the user how to use the bot.
  • > Page 110 Offering added value to the user at the first engagement contributes to the user's perception of the bot. Useful bots are more likely to be remembered and reengaged with by the user.
  • > Page 111 Onboarding a bot to a team is very similar to onboarding a new human team member.
  • > Page 113 After the bot has been properly introduced to the team, it can communicate directly with team members without the supervision of the installing user--there's
  • > Page 113 We will explore designing two types of conversations. The first will be a task-led conversation, where the target is to accomplish a task. The second will be a topic-led conversation, which aims to discuss information and exchange ideas around a specific set of subjects.
  • > Page 119 As a conversation designer you need to define and list the set of entities you need to extract from the conversation.
  • > Page 119 You will also need to specify their priority and acceptable data types.
  • > Page 119 entity extraction mechanisms:
  • > Page 121 Bots need to provide this task switching functionality as well--your bot needs to give the user a way to go back "home," to where they can restart a task or pick another task to execute. This is especially necessary when a user gets lost or stuck while trying to
  • > Page 121 complete a task.
  • > Page 121 of a conversation. Stories are used to describe a distinct flow or part of a flow.
  • > Page 127 Task-led conversations need to have the least amount of steps possible to accomplish a task. Topic-led conversations can have more steps, determined by user engagement with the topic.
  • > Page 129 From some perspectives, topic-led conversations can actually be easier than task-led conversations, because there is more room for divergence; there is also less of a need for mandatory entity extraction and intent mapping, as the intent and the subject can be abstracted.
  • > Page 131 Entity extraction
  • > Page 132 The bot needs to extract the user's general preferences; for example, whether they are interested in men's clothing or women's clothing. This is critical information to have in order to have a productive conversation about clothes. Collecting more entities, like favorite color, age, and preferred style, will contribute to more constructive and engaging future conversations.
  • > Page 133 The use of stories/ flows might even be more important in topic-led conversations than in task-led conversations.
  • > Page 133 The stories can be connected through association of interest.
  • > Page 133 Both kitchen utensils and food dishes can be tied to multiple stories, and you can create relations that connect the stories as shown in Figure 8-24.
  • > Page 134 Decoration refers to words that we add to sentences that do not contribute directly to the conversation itself, but rather add color and character.
  • > Page 134 variation adds depth to the conversation and minimizes the sensation that you are talking to a machine.
  • > Page 135 Decorations do not have to be verbal. For example, the sentence: Coffee-bot: Got to love New York...
  • > Page 136 emojis
  • > Page 136 Another way to decorate a conversation is with memes and images.
  • > Page 137 we all love to decorate our conversations. We add facial expressions to scary stories, we reply to threads with funny memes that say more than is polite to say with words.
  • > Page 138 that users may decorate their conversations with it. I have talked to many bot designers who were surprised to see an imoji
  • > Page 138 Another popular form of decoration on Slack is with text formatting.
  • > Page 139 Randomization is another form of decoration, but one that transforms the core part of the conversation.
  • > Page 139 we do not always use the same phrase to express the same thing. For example, we will not say "I understand" 10 times in a row,
  • > Page 139 Bots that do not randomize their phrases to express confirmation, agreement, or anything else that is repetitive in the conversation tend to sound mechanical
  • > Page 140 it could be a source of delight--not knowing what the bot will say makes it more interesting
  • > Page 140 Priming the User to Give the Right Information
  • > Page 141 Users can provide the same information in many different forms. For example, denoting April 3, 2017, might be done in several ways:
  • > Page 141 Getting the right answer depends a lot on how you frame the question. Instead of saying, "When would you like the meeting to take place?" the bot can say, "At what date would you like this meeting to take place?"
  • > Page 141 Another priming strategy is to limit the options the user has,
  • > Page 142 Bot: I am ready to send the meeting invitation for your meeting on April 3rd at 2 p.m. You can send or modify. Which one would you like? Now answering "Yes" makes less sense... Making the options bold primes the user to pick one of these options specifically. ... aligning the user expectations with the bot's purpose and capabilities. For example, for a train ticket booking bot, it is wrong to ask "Where do you want to go?" This question does not align the user expectations with the bot capabilities. For example, the user is not able to understand immediately if the bot expects a city, an address, or even something more personal, like "I want to go home." Unless your bot is capable of processing all of those phrases correctly (and it probably isn't), then you will need to design its conversation better, by aligning the user expectations with the bot capabilities.
  • > Page 143 Limiting the options for the conversation to derail and applying simple priming techniques can significantly improve your bot's usability and the experience users have with
  • > Page 143 Acknowledgment and Confirmation ... A bot should never ignore a user--when a user asks a question or makes a comment, the bot should reply to the user, either with an acknowledgment or with a related sentence. ... A bot should never ignore a user.
  • > Page 144 In very long-running processes it might be useful to give the users an indication of when they can expect the results.
  • > Page 145 Explicit confirmation typically involves checking with the user that the input provided by the user was processed correctly, or requesting permission to act.
  • > Page 145 Explicit confirmation is very taxing on humans. We do not need to confirm every aspect of our conversations with our conversational counterparts. Use explicit confirmation only in use cases that mandate it, or if you are not confident that you are processing the user input correctly.
  • > Page 146 Avoid repetition
  • Page 147 Consistency should also be maintained when the conversation is routed to a human supervisor. Humans managing the conversation should be aware of the branding and the style the bot provides as the interface of the service, and keep the conversational tone consistent.
  • > Page 147 Reciprocity is a key aspect of human interaction. Every conversation is composed of reciprocal give and take. ...Communicate Value Before Asking for Input ...Users are willing to invest as long as they understand what they are getting in return.
  • > Page 149 Humans will expect, and in most cases positively respond to, a timely suggestion from the bot.
  • > Page 151 Now the bot has acknowledged the user's request, expressed empathy, and continued the conversation. While the user did not get exactly what they needed, the conversation is much less frustrating.
  • > Page 151 knowing when to shut up.
  • > Page 151 Other aspects of common courtesy might be giving the user enough time to perform an action, providing sensitive information privately (we will talk about that in depth in the next section), and being empathetic to the user's needs and pains.
  • > Page 152 The bot in this use case needs to know how to work with multiple users in the same channel or environment. The bot needs to acknowledge input by user and communicate to different members in the channel.
  • > Page 156 it is important to stress that onboarding is very different in a private conversation with one person and in a team environment, where a bot is installed by one member and then used by multiple members.
  • > Page 156 One of the important things to remember about a bot in a team conversation is that most of the communication is not directed at the bot.
  • > Page 156 only reply to messages that are addressed to the bot or that are a part of the conversation it is having.
  • > Page 159 Course Correction Course correction relies on the bot's ability to pull the user back into the happy flow of the conversation.
  • > Page 159 another way to handle a request from a user that cannot be fulfilled at the moment, and that is to collect that information and use it to grow your product.
  • > Page 159 User: Wait, no! I want a cappuccino! Bot: We currently do not serve cappuccino (you can order regular coffee or espresso), but I will also notify you when we start to serve cappuccino.
  • > Page 160 If the communication breakdown with users occurs in the middle of a conversation, and you're able to maintain context, you can serve up two messages in succession. The first is the fallback message to indicate misunderstanding, and the second is a reminder of the context.
  • > Page 160 Another redirection strategy is to ask the user if they would like the bot to escalate the request and if they concur, you're able to funnel the user into another response channel and minimize the risk of losing them.
  • > Page 161 Deferring to a human supervisor is a viable and common solution to error handling with bots.
  • > Page 161 You can build a process of course correction, followed by human intervention if that fails. In some instances, support like this is an expected pattern--the bot serves as a first line of defense and the human supervisor steps in to provide assistance in cases where the bot fails.
  • > Page 164 Conversation design should be done with a growth mindset. Designing a conversation is an ongoing process of learning from your bot's mistakes.
  • > Page 164 the bot constantly misses a specific intent or offers the intent too often, it might be time to fine-tune the text-to-intent mapping.
  • > Page 165 Providing Help Help should always be available to the user--if a user at any point in the conversation says "Help" or "Help me" or any variant of this, the bot should move to a help mode. Help can be as simple as repeating the section in the onboarding script that teaches the user how to use the bot.
  • > Page 168 Support the "feedback" command This should be a best practice for all bots. Whenever a user says "feedback," start a feedback conversation.
  • > Page 168 Especially when the conversation is task-based, ask for the user's feedback at the end. 9. Rich Interactions
  • > Page 183 Buttons can be a great way to guide the conversation, frame the interaction, or limit the user to a set of options.
  • > Page 198 Lead designers and product managers at both Facebook and Slack recommend using buttons to enable better conversation flow.
  • > Page 199 but it is important to note that the user can still post free text to the bot, and that the bot should still apply logic to understand the user's input and to navigate to the right step in the conversation.
  • > Page 200 For us buttons yield a much higher response rate than natural language question and answer, specifically for yes/ no questions.
  • > Page 200 By switching from plain text to buttons, the team at Donut were able to work around the hard problem of understanding users' unstructured responses
  • > Page 200 Buttons are not a great user experience when there are a large number of options.
  • > Page 201 Another example where buttons would not work is in free-form inputs, from describing how you are feeling to a coach bot, to providing expense justification to a finance bot.
  • > Page 201 Templates, in this context, are a structured way to collect different UI elements in a pre-formatted, standard way, and to expose these in a conversational interface.
  • > Page 211 ensure user reengagement.
  • > Page 212 Links are an easy way to send the user out of the conversation and into the web.
  • > Page 212 Links also serve as a way to refer to something on the web and surface a preview of it in the conversational interface--technically this is referred to as unfurling.
  • > Page 213 Statsbot pulls out the summary and key performance indicators, and posts them in the conversation--but when it comes to drilling down to see the full report, the bot posts a link to Google Analytics.
  • > Page 213 The key is to provide enough value in the chat interface so the user does not get the feeling of a shallow bot.
  • > Page 216 most bot developers report seeing emojis in the conversational input from users.
  • > Page 217 It is pretty delighting to get a ? from a bot when you ask it to perform a task.
  • > Page 219 Use emojis to relay information, enrich the conversation, and indicate actions taken.
  • > Page 219 In several platforms you can send a "typing" event on the bot's behalf, which is usually visualized inline in the chat app. This is useful to give the user the impression that the bot is working
  • > Page 219 Conversely, some users get unsettled when the bot answers too fast. 10. Context and Memory
  • > Page 229 Bot Amnesia
  • > Page 230 Many bots today focus on a request/ response paradigm. In this paradigm each request has a new context, and all past contexts are forgotten. Some bots do a better job of maintaining context than others
  • > Page 233 Other forms of bot amnesia include forgetting the user's name, address, preferences, and more.
  • > Page 234 global variables as the long-term memory and scoped variables as the short-term memory—
  • > Page 234 bots should not time out context--if a user starts an intent, they should be able to come back to it after a while and the bot should persist (remember) the context.
  • > Page 243 building trust
  • > Page 243 Users need to feel that they can go back and edit/ modify/ cancel or just revisit past transactions.
  • > Page 244 Recollection of past conversations is also a good way to reengage with the user.
  • > Page 252 The key value of QR codes is that they can be placed in the physical world.
  • > Page 255 Bots can potentially refer users to other bots within a conversation: User: And I will also need a ride from the airport to the hotel. Travel-bot: Well, I cannot help you book a ride, but you can talk to my colleague LyftBot and we can sort this out. Here is the link to install the LyftBot -[link]. User: Fantastic, installing now!
  • > Page 256 It is hard to stay emotionally detached from all but the most utilitarian bots, and most people use strong feelings and words when they describe bots.
  • > Page 256 Create a great first impression--make the other side fall in love. Keep on adding value--value wears off. Continue evolving your design--users like to be slightly and pleasantly surprised from time to time.
  • > Page 257 One key to a positive first engagement is a clear intent
  • > Page 257 Another key is product fit--the ability of the product or service to address that intent or need.
  • > Page 257 serendipity--a moment where the users understand the value of the product or service and realize it is beneficial for them.
  • > Page 257 Demonstrating value and creating a habit should be part of your bot's onboarding experience.
  • > Page 257 Clearly define the purpose
  • > Page 257 Educate or inspire the user about the product fit of the bot and how it addresses the intent.
  • > Page 257 Generate a trigger that will build a usage habit.
    Trigger

    Action
    Reward
    Investment-- An action that makes the service better with use and generates future triggering opportunities.
  • > Page 264 The act of opting in makes users less inclined to consider these notifications as spam and more likely to interact with them.
  • > Page 266 The risk with unsolicited notifications is that they can be perceived as spammy and might motivate users to disengage from or even uninstall or block your bot.
  • > Page 266 make sure you capture the user's intent to receive them, and ask for permission before sending them ongoing notifications.
  • > Page 266 Make sure your notifications are valuable and give your users a way to opt out.
  • > Page 266 we found out that the rate of unsubscribes skyrockets if a user gets more than 1.9 messages/ day. That doesn't mean you should send ~ 2 messages a day, but you definitely should have a very good reason to send more than that.
  • > Page 267 Ultimately, engagement cannot be artificially generated; it stems from your bot's usefulness. 13. Monetization
  • > Page 268 End users do not pay for bots, they pay for the services the bots expose;
  • > Page 268 This is currently the most common way that bots drive revenue--the bot provides an ongoing service that the user subscribes to and pays for.
  • > Page 271 Bots are in a unique position when it comes to ads, as they can build a personal relationship with the user, as well as collecting a lot of personal information that can contribute to more targeted and finely tuned ads that lead to a better click-through rate.
  • > Page 272 provide an engaging fan experience as well as to deliver value to the brand, and to do so in an authentic way that is more conversational and personal than traditional advertising.
  • > Page 273 Bots can collect a lot of data about user preferences and interests, through engaging in a conversation or playing a game.
  • > Page 275 Bots can also become the channel through which you sell goods and services.
  • > Page 276 This is another major business model on mobile and web that is moving to bots--the bot can help you decide what to buy or which service to consume and then refer you to the right service, rather than actually completing the transaction itself.
  • > Page 278 Thinking about the bot as a frontend representative of your product or service can make a lot of sense,
  • > Page 281 You should only start considering charging for your bot when you feel that you have reached product/ market fit.
  • > Page 288 Defining a Persona Now let's sketch out the personas for our two bots. First, the PTOBot: Name: PTOBot Environment: Work Audience: Adults aged ~ 25– 55, early adopters Task at hand: PTO requests Runtime variations: Report abuse, zero tolerance to not safe for work (NSFW) content Locally relevant social acceptance: Work environment Service branding: Professional, productive Values: Getting things done, and fast Derived personality: Serious, to the point, friendly but not humoristic, safe for work. This bot should be like a company office manager or a personal assistant. Then the VacationBot:
  • > Page 289 Name: VacationBot Environment: Consumer Audience: Adults aged ~ 25– 55, early adopters Task at hand: Provide fun activity recommendations Runtime variations: Provide a more casual conversation during the vacation itself Locally relevant social acceptance: Family-friendly Service branding: Professional, fun but still not too casual Values: Enriching employees lives while they're on vacation Derived personality: Friendly but not too humoristic, family-friendly, safe for work. This bot should be like the
  • > Page 291 We will use a method called Wizard of Oz user research. The Wizard of Oz technique enables unimplemented technology to be evaluated by using a human to simulate the response of a system--in our case, the bot.
  • > Page 294 Another, even easier, way to explore a conversational interface is actually to have a conversation in person, or to observe a conversation in action. 16. Conversation Scripting
  • > Page 296 We will break down the conversations into flows (sometimes called stories), and detail the entities we want to extract.
  • > Page 296 edge cases and error handling,
  • > Page 297 As previously discussed, a thoughtful onboarding could be the difference between a successful bot engagement and an abandoned bot.
  • > Page 298 Main Flow In this flow we will describe the main happy path. This encapsulates the main functionality of the bot, without errors or divergences.
  • > Page 299 Help The help flow aims to support the user in case they need assistance in the main flow of the bot. This flow can kick off by the user asking for help, or the bot understanding that the user needs help due to errors in the main
  • > Page 301 Feedback As discussed previously, feedback is an important part of a conversation--it gives the user the ability to share valuable information with the bot's designer.
  • > Page 302 Capturing positive feedback is sometimes as important as capturing negative feedback. You can use this type of feedback as client testimony, to prompt the user to provide a good review or rating in a directory listing, and to encourage users to share the bot with others.
  • > Page 304 Intent Mapping
  • > Page 304 sample of keywords
  • > Page 305 Entities are variables we want to collect from the user. These entities can be collected using plain text or rich controls. Let's map the entities of our already outlined stories.
  • > Page 305 Start date {Date} End date {Date} Description {Text--up to one paragraph} Approved {Yes/ No}
  • > Page 305 Destination {Location} Schedule notifications {Yes/ No} When to send the notification {Morning/ Evening}
  • > Page 309 Use buttons and Quick Replies for non-open-ended questions to indicate to the user what the valid choices are.
  • > Page 311 provide the employee with a receipt-like experience that will hopefully increase their trust in the system.
  • > Page 317 Avoid dead ends, but do not spend all your time trying to think of every possible input. At a certain point you will need to default the user to the generic error messages.
  • > Page 318 Bot: Sorry, I did not understand that. Bot: < display relevant contextual help > ... This is an example of one flow pulling in another flow. We are in an entity extraction flow (let's say, in the main use case), and the user inputs invalid text. The bot then provides a simple apology and error message, and pulls in the help script relevant to this specific context.
  • > Page 319 We spent a lot of time building anti-trolling tools (naughty word filters), anti-abuse tools (allowing Poncho to ignore abusive users), and conversations for a variety of the anticipated trolling, testing, & abuse.
    User: < Curse > Bot: Sorry you feel that way. < Consider pulling in a feedback script >
  • > Page 319 they recommend a "three strikes and you're out" rule, in which the bot bans the user after three abuse warnings.
  • > Page 320 these are simply sample scripts, and that in real life you will need to provide a lot more variations, both in inputs and in outputs of the bot.
  • > Page 320 Scripting is just like creating mockups of a mobile or web application. You need to validate the scripts you have written in real life.
  • > Page 320 Advanced bot builders hold these scripts in a content management system (CMS) and have scriptwriters go over and optimize the conversations on a daily basis.
  • > Page 355 Now that we have designed the main flow of both bots, it is time to put them in front of actual users. First, we need to decide how we want to test our design.
  • > Page 355 There are a few options: Show users a video or a step-by-step replay of the conversation and get their inputs. Create a mock (fake) bot and let users play with it. Create a working alpha and let users work with it.
  • > Page 355 A mock bot is a great tool for testing interactions. It doesn't really matter that the bot is not connected to the real backend system.
  • > Page 356 Laura Klein has written a great "Step-by-Step Usability Testing Guide" (https:// guides.co/ g/ usability-testing-guide/ 7996) that outlines the steps in usability testing.