Designing A Chatbot Conversation: How To Keep Users In The Loop

This is Part 4 in a 5 part series about why a chatbot was the hardest thing I’ve ever designed. This article will explain the best practices of designing a conversation—the core of your experience.

This series is a follow-up to The Ultimate Guide to Chatbots article I wrote and a sample of what’s to come from my follow-up eBook, The Ultimate Guide to Chatbots.

If you haven’t already, I’d check out Part 1, Part 2, & Part 3 at some point too.

Conversation Design

Designing a conversation is going to be one of the most challenging things you’ve done in your life. I feel very comfortable making that statement.

Conversation is something we participate in every day, but it’s something we do unconsciously. We don’t think of the rules of grammar. We don’t think of everything required to understand, interpret, and respond. We don’t think about outlying possibilities that we unconsciously know don’t matter.

We just speak. Or type. But we don’t think.

And conversation only becomes more difficult as we extend it into the form of a machine output. In order to do this we have to abstract our thought patterns and unconscious habits into something that can be interacted with in an inorganic way — but it still needs to feel organic.

Defining A Loop

The concept of a loop within a conversation is intangible. We can speak to it, but it’s not always so easy to define what’s actually happening, and it’s even harder to visualize.

It’s also something that is going to change with each new conversation. There’s no absolute template for how you should design a conversation. This isn’t a binary subject, it’s an infinitely complex organic system that we’re trying to replicate through binary interactions — inputs and outputs.

However, there are concepts from web design we can extend to help us wrap our minds around it, and that’s what this article is going to discuss. Hopefully it will demystify some of the challenges of designing a conversation.

The Infinite Scroll

We’ve all heard of infinite scroll. It’s a very popular concept employed by many digital products in hopes that they can keep you around — and they often do.

If we were to make a very simple map of an infinite scroll interaction, it might look something like this, with the red dot representing where you would start:

Facebook is probably the most popular product on the planet to employ the infinite scroll technique.

The infinite scroll works for Facebook because a majority of the content you are fed will be something you inherently like — otherwise you wouldn’t see it. And it works for many other companies for the same reason.

But the infinite scroll is not that compelling of an experience and, ultimately, it creates an experience based on a filter bubble. It lacks the ability to go in any direction, like a conversation can. It lacks serendipity.

The Relevant Content Loop

However, there are much more complex and interesting ways to feed users content. A very popular alternative is what I’m going to refer to as the infinite loop — you can scroll forever, find content you like, and then just keep doing the same until you get sick of it.

With infinite scroll behavior you don’t have control of the content other than defining the filters before you start scrolling. With these infinite loop interactions you get to see what you want and only what you want. And there’s no end to the content. You can’t break the loop unless you start over.

If we were to map this interaction out at a very basic level, it might look something like this, where the red circle represents the piece of content a user is on and the blue circles represent related, but different content.

We see this more and more across the web, especially on news sites, help sections, and other sites that curate content.

However, while news links are easy to curate, they’re not the most interesting concept to loop through.

Typically users land on the article they clicked on to enter the site, maybe read a couple more if the curated links are interesting to them. But not long after entering the site, they’re gone.

The Infinite Loop — A Rabbit Hole Of Relevance

Pinterest is probably the best at the infinite loop concept. It’s magic because they take a world worth of information and curate it specifically to what you’re looking for in the moment you’re looking for it.

If we were to map out the Pinterest experience, each piece of content might look a little like this.

The difference between Pinterest and what news sites/apps do is that once you choose one piece of content, discovering more content on Pinterest is much more organic and serendipitous. You could literally keep searching content until the Pinterest universe runs out of content to serve you, and each click would take you closer to what you’re looking for.

The Pinterest experience is a lot like a choose-your-own-adventure story, but with millions of options — pictures of food porn and DIY inspo until you want to puke. And because of this, it’s easy for users to get lost in the rabbit hole of relevancy.

By doing this, Pinterest has created an interaction that takes a conscious effort to cut off. It’s often easier to continue than stop.

This is what we, ideally, hope to replicate within our bots.

Conversation as a Loop

Designing a conversation has many similarities to designing an interface, it’s just a matter of finding where they overlap and extending the concept. But first, let’s define a few words before moving forward, so that what I’m about to say makes more sense.


In the examples below, a card represents one piece of content. It could take the shape of a text bubble, it could be rich media, it could be links. It doesn’t matter exactly what it is, so much as that it is one output, based on a previous user input.


A track represents multiple cards that make a larger story when strung together. There are infinite possibilities as to how the track might be created, depending on what information is available and what needs to be told.

A single news story or blog post would be a great example of a track.


A topic represents multiple tracks. As bots get more complex, there are specific parts of the content that represent major navigational points, which include subsets of topics within it.

If we were to keep the news metaphor, this might be different categories of news: Sports, Weather, Crime, Money, etc.

A single topic could also represent multiple topics. For example, within Sports you could have different sports: Basketball, football, baseball, etc. You could even have topics within each of those topics, represented by each team of each sport.

So in this case Sports would be the meta-topic representing sub-topics represented by each sport, which each have sub-topics represented by the sports teams.

Author: Joe Toscano⚡️

Collect by: