All chatbots are not created equal. What separates a good chatbot from a bad one? A good chatbot helps users accomplish something more efficiently. A great one makes it enjoyable. A bad bot wastes time, returns nonsense, and may annoy or frustrate users enough to drive them away.

No one wants to build a bad chatbot, but if you’ve never designed one it’s easy to underestimate the effort involved, or assume technology is all it takes. And that can result in a chatbot that harms the user experience instead of enhancing it. Creating a useful chatbot to successfully automate a process or solve a problem takes planning, writing skill, iteration and ongoing effort. Powerful technologies still need people dedicated to understanding and anticipating users’ needs to craft the right experience. Read on to learn how to plan and design a chatbot that delivers users value—and not just a lot of talk.

Bot Basics: What makes a chatbot “intelligent?”

A bot is a computer program that automates tasks. A bot that engages with people using a conversational or “chat” interface is a chatbot. Using text or voice inputs, it simulates how humans interact when conversing. Chatbots can complete a simple action like retrieving information or provide a practical service like communicating with customers. Any task that doesn’t require a human interaction—asking questions about reservations, ordering food, checking the weather—may be done more efficiently by chatbots.

There are chatbots that use artificial intelligence (AI) and those that don’t. A simple chatbot may use rules or a decision-tree to chat. Its paths are limited, and users select from defined options. Instead of programmed responses, an AI chatbot can use machine learning or natural language processing systems to respond. Machine learning uses continuously updated algorithms to test data and responses against an outcome–data is taken in, applied, and “learned.” Users ask a question, the chatbot deciphers it and responds using its intelligence and turns the user’s input into more data. An intelligent chatbot becomes “aware” of user needs and can handle different scenarios. (For examples, check out Chatbot Magazine Beginner’s Guide and list of best AI chatbots.)

Sidenote: What’s the difference between AI and machine learning?

Artificial Intelligence is the larger concept of computers systems executing tasks normally done by humans in an “intelligent” way. Machine learning is an application of AI where machines use data to improve their responses learn on their own. Natural language processing is an application of machine learning. Read more about how these terms are different.

Why build a chatbot? (Or when not to)

The reason to build a chatbot is not to have a chatbot. Just because it’s the new, fun thing to have doesn’t make it a good idea. If a chatbot is going to help meet business goals and achieve tangible returns, it needs to do more than make jokes and follow limited direct commands. A chatbot must have a purpose or fulfill a need for users. If you can’t identify a task, service or process that a chatbot can perform to make something easier, faster, or better than it’s probably not the right solution. When a chatbot is an appropriate solution for users and company objectives, a successful implementation can lead to benefits like:

Increased brand affinity and loyalty

Reinforced brand voice and personality

Differentiation from the competition

Increased engagement and interaction times

Higher conversion rates

Better informed customer support before live chat sessions

Chatbots are also an amazing source of rich data to better understand users. Beyond simple analytics like visit times, clicks, and abandon points, chatbots can gather data on user language, sentiment, and needs or ask for direct feedback during chat sessions. This intelligence can generate ideas for content or services, uncover frustrations, or identify opportunities to build a better bot.

Chatbot Purpose and Planning

With so many creation options and open access to AI platforms with codes, templates, and instructions, it may be tempting to jump right into development. Experimentation is great, but taking the time to design the experience will result in a better outcome for the chatbot and users. As one Smashing Magazine article details, “Building a conversational chatbot that isn’t awful is extremely hard.” Use these steps to plan the chatbot project and avoid meaningless conversation.

1.Define the purpose and strategy

Whether it’s a two-person R&D project or a customer service department effort, there needs to be a defensible reason for having a chatbot. Answer these questions to help articulate the chatbot’s purpose and rationale for investing in its creation.

Who is the audience?

What do they want?

What service will the chatbot provide? What problem will it solve or common task can it make easier or faster?

How will the bot provide value to the audience/users? What will make it useful?

How does the bot align with our business or marketing objectives?

Is this the right customer service model for our company and brand?

2. Outline the scope

After identifying the need the chatbot will fulfill, outline the details of its specific capabilities. Not all tasks or experiences transfer well to a chatbot interaction. Define what the bot will and won’t do. Make a list of the use cases. This will keep the development work focused and help manage expectations regarding the end product. This is especially important if it is the first time stakeholders or your team have worked on a chatbot project. Have the discussion at the beginning to gain consensus and avoid misunderstandings or disappointments later.

For example, will the bot use a hard-coded straight path or be a dynamic, intelligent decision engine? Do you really need to implement a sophisticated chatbot that can dig into customer questions or would a simple linear model work instead?

My advice: start simple. Build what is needed to address users’ needs and don’t over-architect it. Focus on the chatbot doing one thing really well and then add complementary features later. See what is and isn’t working before adding complexity that might diminish what could have been a simple and satisfactory solution.

3. Define success

After implementing the chatbot, how will the team know if it is a success? Establish measurable metrics to show the results. The metrics should relate to the strategy (step one above) and will depend on the service the bot is providing. (e.g. Reducing customer service calls by X. Increasing traffic to Y page. Improving user efficiency time by Z to find a certain product.)

Tools like Google’s Chatbase, Dashbot and Botanalytics can illustrate how users interact with the bot, providing insight to improve the bot’s conversation flow and effectiveness. Put the chatbot to work gathering metrics too with direct feedback questions. Ask users about accuracy and helpfulness, “Is this what you are looking for? Was I able to solve your problem?” And if the answer isn’t positive, make sure your chatbot has a good response. More on that below…

4. Identify triggers and scenarios

How will the chatbot integrate with—and not interrupt—the user experience? Outline the trigger actions and entry points when users will encounter the chatbot. What has the user done or seen and what does he/she want to do that the chatbot can now assist with? Write the scenarios for your user personas (or do user research if you don’t have any) to plan the varying interactions the chatbot will need to support. Whether a user is a first-time visitor, returning to a transaction, or arriving after clicking an ad or link from another site may change the chatbot’s initial engagement and the conversation flow.. (These scenarios are also useful later for testing conversations scripts.)

5. Create a chatbot persona and personality that reflects the company brand

While a persona isn’t required, creating one can make planning interactions and scripting responses easier. The bot should have a personality that is appropriate for the company, brand, and the users it will interact with. Be creative, but use the company style guides for voice and tone within the conversational writing. A persona can help writers determine the right words and syntax and bring consistency to dialogues so the chatbot doesn’t have multiple personalities. (Meet Poncho, a weather chatbot with personality.) No matter what the personality is, don’t ever be insulting or put users down.

Crafting the Chatbot Conversation

Outlining the conversation experience can be the hardest—and most fun—part of designing a chatbot. To begin, generate ideas in a collaborative ideation, team up at a whiteboard, or grab a pencil and start sketching. Pick an ideation method that fits the project and how your brain or team works best. The tools don’t matter, but planning out the conversation to create something valuable for users does. Use these suggestions to craft the conversation.

Paths and Flow

Outline possible topics, functions (things the bot can help with), and conversation paths.

functions (things the bot can help with), and conversation paths. Look for patterns and arrange ideas in categories or functional groups. (This E-commerce example uses “Don’t know, known product, known brand, known category” groups.)

and arrange ideas in categories or functional groups. (This E-commerce example uses “Don’t know, known product, known brand, known category” groups.) Create a tree diagram, decision-process flowchart, or mind map (tools like motion.ai, xmind, mindnode, or twine) to visually organize information and show relationships.

decision-process flowchart, or mind map (tools like motion.ai, xmind, mindnode, or twine) to visually organize information and show relationships. Start with the “happy” path (Google’s example) for when the conversation goes according to plan and a user accomplishes the task in the ideal way.

(Google’s example) for when the conversation goes according to plan and a user accomplishes the task in the ideal way. Branch into exploratory paths. These are additional conversational turns the user might take that still accomplish the task.

These are additional conversational turns the user might take that still accomplish the task. Lastly, tackle errors edge-cases. Plot rescue paths to handle situations when users do something unexpected that the chatbot doesn’t understand or have the data to respond. What happens if a user sends an image and orders “find me this sneaker” or inputs garbage “asdfsdfs” text? Give users alternative paths or exit options beyond a string of, “I’m sorry, I don’t understand” bot replies that go no where.

Boundaries and Constraints

Conversation is limitless. Users can ask anything in any format. When a user interacts with a chatbot, the program must determine what his/her intent is and decipher word variations and syntax. It must figure out what the user is asking for or wants. Intent can be explicitly declared through text or set selections or inferred based on the context of the interaction. There needs to be a map between what a user inputs and the corresponding reply or action taken by the bot. User intent is a big topic, so let’s focus on when it’s not an AI chatbot. (For more on intents, read key concepts every AI developer should know.)

To prevent conversations from going astray you need to create boundaries. Stay away from having the chatbot ask open-ended questions—you won’t be able to plan out relevant responses. A few open-ended questions might be needed (e.g. asking a person’s name or email), but you’ll go crazy trying to anticipate paths unless you limit them.

Another technique is to restrict user responses to a limited set of predefined options. Don’t ask “What can I do for you?” Ask, “Would you like to do X or Y?” such as “Can I help you find a contact or submit a service request?” Many chatbot platforms also allow the addition of buttons or menus. Using these UI elements with user input creates constraints to keep the dialog focused on what the bot can actually help users with.

Dialogue and Scripts

Dialogue scripting takes time and skill. Pullstring, the AI platform behind Mattel’s talking Hello Barbie had a team of writers develop 8,000 dialogues lines to make sure her words were credible, consistent, and right for the Barbie brand. A talking Barbie is way more complicated than a web chatbot or app, but the point is powerful technologies still need people dedicated to envisioning the right conversational experience.

Write like a person talks but don’t have the bot pretend to be one. It won’t fool anyone and can be offputting.

Approach it like scripting a play, or have a real conversation and capture the interaction.

Don’t go overboard with personal dialogue; keep it brief and productive. Too little personality and the bot will be mechanical, too much and it will be distracting.

Accommodate a range of communication styles (Yes, yea, please do), phrases, and word variations. (Smashing Magazine’s designing voice experiences article has an example of a phrase mapping table.)

Draft alternatives where syntax might vary. Switching “good morning” with “good afternoon” based on time or greeting a returning visitor differently from a first-time user.

What will the bot say when people are negative or swear? “I see you’re frustrated. Would you like to contact support?” might not solve the user’s frustration but it’s better than silence or a smart-ass chatbot response.

Write a fallback phrase that can be used for unanticipated situations. “I don’t understand. Would you like to email [email protected] for help?” provides an alternative path to abandonment.

When the script is done, read it out loud. Hearing it can help identify things that sound awkward or aren’t a natural fit for the bot’s persona

Conversation starters: How to make a good first impression

When it’s time to put your chatbox into action, successfully onboard users to make a good impression and keep them coming back.

Manage expectations. Be upfront about what the chabot can and can’t do. Explain the its limitations from the beginning of the interaction.

Guide people into how to use it. Provide examples and help users get started.

Use standard conversation conventions. Start with a greeting and introduction, acknowledge questions, and end with a conclusion.

Repeat things back to confirm understanding and reduce errors.

Be patient and give people enough time to respond. Speed varies for texting, typing, speaking, thinking, reading.

Above all, keep interactions short and simple. The user is trying to accomplish something and is not there to to chatter. Respect people’s time and get them on their way as quickly and easily as possible. If the chatbot was helpful, they’ll be back to chat another time.

Want to continue the chatbot conversation? Check out these articles.