Like any software project, building a chatbot requires careful planning. While all software projects fall along the Waterfall-Agile spectrum. I believe chatbot projects should lean closer to the Agile end, emphasizing rapid prototyping and iteration over extensive upfront planning. This post draws on my experience with numerous chatbot projects and outlines what successful teams have done at the start.

Step 1: Defend Your Thesis

Why do you want to build a chatbot? Are you certain there isn’t a better tool for the job?

Chatbots excel at providing a unified interface to disparate resources. For example, the city services bot for St. Louis County aggregates information from city planning, tax, and police websites to address residents’ questions. It’s far more convenient to ask the bot than to search through three different websites. In short, bots provide value when presenting new information or aggregating existing data in a new format.

Conversely, chatbots struggle with long questionnaires and form-filling. There is a limit to how much interrogation users will endure. What happens when users wish to modify a single answer? How can they make small adjustments from the confirmation screen without redoing the entire process? Flows with more than three questions in a row become onerous; At that point, redirect users to another webpage or use a pop-up form.

Chatbots also falter at detailed, technical comparisons. Take the Vanguard Fund Comparison Tool as an example. It allows users to search for up to five funds and build their own comparison table.

an image of a comparions table between the vanguard funds VTSAX and VTTSX

Compare that to ChatGPT’s answer comparing VTSAX and VTTSX - here is a section of its verbose reply:

The Vanguard mutual funds VTSAX (Vanguard Total Stock Market Index Fund Admiral Shares) and VTTSX (Vanguard Target Retirement 2060 Fund) cater to different investment needs. Here’s a comparison:

1. Objective and Composition

VTSAX (Vanguard Total Stock Market Index Fund)

  • Objective: Tracks the performance of the CRSP US Total Market Index.
  • Composition: Represents the entire U.S. stock market, including large-, mid-, small-, and micro-cap stocks. It has a broad exposure to all sectors of the U.S. economy.
    Holdings: More than 4,000 stocks, offering exposure to virtually the entire U.S. equity market.

VTTSX (Vanguard Target Retirement 2060 Fund)

  • Objective: Designed for investors who plan to retire around 2060. It is a “fund of funds” with a mix of Vanguard funds that gradually becomes more conservative as the target date approaches.
  • Composition: Includes a mix of U.S. and international stocks, as well as bonds. The asset allocation automatically shifts to become more conservative (less equity exposure and more bonds) over time as the investor nears retirement.

ChatGPT continues for five additional sections covering risk, expense ratios, strategy, and more. It is safe to say that GPT is more verbose than the table while conveying the same information. This verbosity complicates the user’s understanding, forces scrolling between paragraphs, and makes assumptions about their interests. In contrast, users viewing the table are in control of what information they see and when. The table also incorporates graphical elements like sliding scales, which GPT cannot replicate.

This could have been an email

Join my mailing list to get content like this directly in your inbox

    I won't spam you, promise. Unsubscribe at any time.

    Step 2: Make a Shopping List

    I like to think of planning documents in terms of Shopping Lists and Recipes. Both are lists of food, but they offer different levels of precision. A shopping list guides you to the general shape of dinner, while a recipe provides an exact dinner. Shopping lists are faster to create and carry lower stakes if something goes awry. They strike a balance between Waterfall planning and Agile development.

    Start by writing the bot’s value proposition at the top of the list. This keeps the planning and development grounded in business value throughout the exercise. For our example, let’s create a bot for an international skincare and wellness brand that will live on the brand’s main website and aim to sell products to visitors rather than assist with customer support. At the top of our shopping list, we’ll write:

    Chatbot Shopping List

    This bot will increase revenue by booking consultations and upselling products.

    Success Criteria

    Goals alone are merely wishes. To convert them into actionable tasks, define measurable success criteria. Quantifiable success metrics and criteria separate casual bot projects from serious business ventures.

    Our goal statement begins with “increase revenue,” emphasizing two specific avenues for focus:

    1. Booking consultations
    2. Upselling products
    Goodhart's law xkcd comic

    Booking consultations is easy to measure. The brand already tracks daily consultations, allowing for comparison before and after the bot’s launch.

    Upselling is also straightforward to measure. The brand can monitor average cart value through their merchant system and compare before and after launch. The bot can also count how often it suggests an upsell, and track the rate of acceptance versus rejection.

    Note that we focus on how success can be measured without assigning targets at this stage. It is premature to fall for Goodhart’s Law by establishing a performance baseline before going live. These targets will come after the bot has spoken with real users and sufficient performance data gathered.

    To our shopping list, we can add these success criteria:

    Chatbot Shopping List

    This bot will increase revenue by booking consultations and upselling products.

    Success will be measured by counting the number of consultations booked, monitoring upsell success rates, and tracking average cart value over time.

    Next, we list methods the bot will employ to achieve those goals, grouping them into two categories: Information Features and Automation Features.

    Information features

    AI generated image of robot hands filling out a standardized test sheet Information Features enable the chatbot to accomplish its goal by sharing information with users. This includes answering questions and summarizing documents. Information features can scale quickly because adding documents and knowledge to a bot is relatively easy. However, a bot with only information features can frustrate users who expect actionable solutions.

    Automation features

    Automation Features enable the chatbot to interact with tools or third-party services to fulfill its objectives. Examples include scheduling appointments and retrieving real-time data, such as checking the weather. Automation features power genuinely useful bots that delight users with their capabilities. However, each automation feature requires careful planning and development time, making them less scalable compared to information features.

    For our example sales bot, we can add the following to our shopping list:

    Chatbot Shopping List

    This bot will increase revenue by booking consultations and upselling products.

    Success will be measured by counting the number of consultations booked, monitoring upsell success rates, and tracking average cart value over time.

    Information Features:

    • Answers questions about products, ingredients, and scents.
    • Asks users about their skin type to make personalized recommendations.

    Automation Features

    • Schedules video call consultations with skincare experts.
    • Fetches the user’s shopping cart information to make upsells.

    Channel and Persona

    Goodhart's law xkcd comic

    The final two components to add to your shopping list are the bot’s Channel and Persona. The Channel is where users will interact with the bot—this can be a website, WhatsApp, SMS, Discord, or any other messaging app. Different channels have various capabilities and expectations, so your chatbot must align accordingly. For instance, SMS cannot handle voice notes or audio recordings, making it a poor choice for voice bots. Users on Discord expect emojis, while Slack can send HTML forms as messages.

    Persona refers to the bot’s personality and tone. Just as authors develop unique styles, chatbots need have distinct personas. While this doesn’t need to be overly detailed at this stage, outlining it can be helpful. You might base the persona on a particular employee or a fictional character. Persona decisions should also consider the use of slang and emojis.

    Chatbot Shopping List

    This bot will increase revenue by booking consultations and upselling products.

    Success will be measured by counting the number of consultations booked, monitoring upsell success rates, and tracking average cart value over time.

    Information Features:

    • Answers questions about products, ingredients, and scents.
    • Asks users about their skin type to make personalized recommendations.

    Automation Features:

    • Schedules video call consultations with skincare experts.
    • Fetches the user’s shopping cart information to make upsells.

    Channel

    • The bot will appear in a traditional widget in the bottom right corner of the website.
    • The web widget must be responsive to accommodate both large and small screens.

    Persona:

    • The bot should resemble retail employees.
    • The personality should align with a younger, trendier clientele, avoiding slang and emojis for the premium brand.

    Step 3: Scope Your POC

    The final step before development is scoping your proof-of-concept, or POC. The POC aims to answer two key questions:

    1. Will the bot deliver on its promises of extraodinary value?
    2. How challenging will it be to develop?

    The POC should address each item on the shopping list while fulfilling the minimal requirements. For example, the shopping list item “Answers questions about products, ingredients, and scents” can be satisfied by a bot that can only respond to inquiries about one or two products. “Schedules video call consultations with skincare experts” can be met with a brief flow for selecting a date and time, along with a placeholder API call.

    The most successful teams I’ve worked with start with a third-party platform or framework to build their POCs, even if they don’t plan on staying with that platform for the final product. These tools allow developers to skip all the non-chatbot elements of a bot project-like channel integrations, agent abstractions, and memory-and focus on building workflows and implementing business logic.

    My favorite low-code chatbot platforms are:

    My favorite code libraries and frameworks are:

    Once the POC is scoped and tools are selected, it’s time to build—and that will be covered in another post.

    ❤️

    Gordy