There are a dozen ways to order a coffee. Why do dumb bots only allow one?


If bots are going to live up to their hype, we have to move beyond the fixed decision trees and pre-defined scripts.

Last week, Mikhail Larionov from Facebook, wrote a post about decision trees vs web views. He argues that web views are better than using a bunch of decision trees. We agree if you look at most of what we see being built today.

But what if there’s a much better way?

Let’s look at how people would order coffee…

Comparing a scripted decision tree to a real life coffee order experience.

Asking three questions might not be better than an app or a web view, but it still works. Until it doesn’t. What happens when someone changes their mind?

People should be able to go forward while changing their mind.

This is why bots get a bad rap. The bot didn’t expect another input, didn’t know the intent, and didn’t replace almond milk with soy milk. Start over. Fail.

This is why Mikhail’s article is right, unless we think about it completely differently.

We need to detect that almond milk is a parameter for milk, and replace the soy milk with almond milk.

If we are just building a text version of Interactive Voice Response (IVR), we should just pack up and go home today. This is about applying NLP, machine learning and a new way to think about messaging that truly will make people’s lives simpler and better and save people time.

Introducing Random Access Navigation. (R.A.N.)

This is how we believe the future of bots can truly deliver an experience people love. Give people the ability to navigate without a defined path, while also being able to change their mind at any time.

People should be able to interact with technology the same way they act in real life. We believe R.A.N. offers more than one solution for the most common bot criticism: fixed decision trees. It’s the ability to complete more complex tasks with 100% automation while also increasing customer satisfaction, reducing friction and not making people wait on hold.

The idea of R.A.N. has four aspects to it:

  1. It detects all parameters required to perform an intent (with context)
  2. It allows the user to change their mind without going back
  3. It works seamlessly with web views
  4. It requires writing copy in a completely different way

1. It detects all parameters required to perform an intent

Let’s look at our partner Sephora. We need three parameters to complete the intent for booking a makeup appointment. We should be able to understand anything the customer types.

With a combination of intent and context.

We use R.A.N. to know what is missing or what we need to change and then navigate there. The more parameters (context) we detect (or can infer), the less steps for the customer.

Detect parameters in every query.

In Mikhail’s article, he argues that web views are better than decision trees because the cost of reentry is way too high. This is not always true. Web views still require previous/next flows as well. Using R.A.N. can eliminate steps and friction.


2. It allows people to change their mind without going back

Navigating backwards or starting over is not the answer. It’s bad with web views, it’s bad with decision trees. The idea of “back” is something we made up with the web, messaging is about going forward and being able to change your mind. It’s also about keeping context. No more “don’t hit the back button or refresh” on the final checkout page.


“Simply ask” is the best way to change your mind. R.A.N. and NLP will know that you want to change the day of the reservation and will present other choices while remembering everything else you’ve entered.

The promise of messaging and R.A.N. is that a person never goes “back.” The idea of “back” is something we made up with the web, messaging is about going forward and being able to change your mind at anytime.

3. It works seamlessly with web views

Web views should be a great partner to R.A.N. experiences. While reading Mikhail’s article, we realized that we could potentially leverage web views for browsing time slots with Sephora.

At the time of this post, Facebook Messenger only has a few ways to display more than three times. A web view could be a perfect use case for seeing all available times.

An idea for how we could use web views for time slots in the future.

4. Writing copy in a completely different way

Authoring decision trees and infinite fail over scenarios is quite the task. We’ve seen people spend weeks writing copy and flows without knowing what people even want. This leads to our industry’s “Sorry, I don’t understand” problem.

We decided to rethink the entire way we go about writing copy for R.A.N. We think it is much easier to deliver something people want.

Here’s how we think about it:

  • We assume that the user input will never be complete.
  • All parameters need to be captured to perform the current intent depending on implied context
  • Once we have all parameters, you can always override any parameter because we have context. (this is how people can change their mind at anytime)

As an example, here’s what you need to book a hotel room:

  • Location (specific hotel name and/or city)
  • Check-in date
  • Duration of stay (aka check-out date)
  • Number of guests

“It looks like we have you for 3 nights in San Francisco on Monday,” would be followed by “How many guests are you?”

With a finite number of parameters needed to complete an intent, we can write copy depending on what parameters are missing. More importantly, we can write copy depending on how many parameters are missing.

Writing copy in this way actually ends up being way less work than trying to write tree flows and if-then statements for decision trees with infinite error messages. This is one method of filling gaps in context. Check out how we write copy for R.A.N. experiences below.

In the absence certain information, how would you like to respond?

Define the intents, train the engine to understand the parameters, write copy based on what is missing, and deliver experiences that help people get things done faster and simpler than before. That’s the goal here. We hope the idea of R.A.N. is one step to help us all get there.

In the end, this ain’t about bots, it’s about saving people time.

P.S. We understand that many people don’t type in full sentences on messaging. Check out something else we wrote about intelligent grouping.

Thanks to Des Traynor, Intercom founder, for the title idea :), Bryan Hurren, Mikhail Larionov, Ian Cairns, Lauren Kunze, Tony Valado, Arnold Leap and Carolyn Penner for reviewing this post.


Want to help make R.A.N. better? Help solve some of the hardest problems with bots, NLP and machine learning? We are hiring. Say hello.

Assist is the leading platform powering automation for businesses on messaging and voice. We power great brands like Sephora, Hyatt, Fandango, 1800Flowers, Lonely Planet, and more. Say hello hi@assi.st or learn more about us here http://assi.st.

We also give a shit about diversity. Read about it here.