✍️ gotta test 'em all

We found the best tool for building chat bots

How do I get started building a bot? What tool do you recommend?

These are two of the most common questions we get, and for a long time, we didn’t have a solid answer. What Quartz has built until now has been completely custom, which is both a great luxury, and also hands-down the most obnoxious answer we could offer to those questions.

So here’s our attempt at a better answer: We spent the past couple of months testing dozens of bot-building tools. (Our eyes are still twitching.) In the process, we found a tool we love and are using for all of our Bot Studio chatbot projects: Dexter.

Test all the things

Many, many tools crowd the bot-building landscape, with different purposes and promises. They range from prototyping tools that lack actual interactivity, to tools with incredibly robust back ends incorporating AI and NLP.

To test the ever-growing list of tools out there, we created a script that checked off a number of things that were important to us: branching narratives, rich media support, smooth integration into Facebook Messenger, and the ability to create nuanced notifications. (For more on this, check out our script, which has more detailed notes.)

We plugged the same script into all of the tools, to see which tools performed best on specific tasks. It also helped us view each tool objectively, so we weren’t just passively accepting what what the tool suggested.

The results

The vast majority of tools are point-and-click, meaning they’re using some assemblage of draggable boxes, lines, pop-ups, and drop-down menus to allow users to design and build their bots. This works great for single-purpose bots that don’t have many moving parts—the FAQ bots of the world, for example.

For that drag-and-drop ease, you’re usually sacrificing more ambitious bot design, the ability to effectively troubleshoot, and speed. The more capable we wanted a bot to be, the more frustrated we grew with some tools’ limitations. When things broke, we couldn’t figure out why: was it our fault, or the tool’s, or some sad combination?

motion-error-handling

Above all, though, we couldn’t imagine wanting to write in many of these tools. They’re largely production tools, which force you to figure out another tool/system for designing and writing the content. And while we were proud of our Google docs scriptwriting system, it doesn’t scale very well. In the tools, it was easy to get lost and lose track of what content was where—especially with tools that required titles for every bot message or button. Search becomes incredibly hard.

That’s why Dexter was our favorite tool by a landslide. It doesn’t overwhelm you with options, yet almost anything is possible—and unlike almost all the competition, the tool puts text front and center, allowing you to focus on the language itself as you’re writing. The tool was so much fun we spent an extra few days trying to push its limits.

How it works

Dexter packs an incredible amount of power into its simple interface. It’s built on top of RiveScript, a scripting language for building bots. It’s incredibly easy to pick up, and Dexter’s documentation manages to be concise, thorough, well organized, well written, and easy to search. In short, the documentation is dreamy. The connection to RiveScript also means it’s ready to handle a complex script: typed responses, navigation based on a history of user selections, message delays and notifications.

bot sequence

Talking to your bot

For testing, the tool has a phone built into the console, so you get an immediate feel for your flow and how the text will appear on the screen. Error messages let you know when you’ve messed up.

Deploying the bot

Dexter works with Facebook Messenger, Slack, Twilio SMS, and (in beta) Twitter. We tested exclusively with Messenger. Deploying the bot to Messenger was perhaps the most convoluted part of the process, owing to the everchanging Facebook developer portal. Once you’ve gone through the steps once, though, you’re all set. We found it was useful to do this early in the process; since Dexter works with several different platforms, you won’t get the nuanced view until you test with your platform directly.

Some others we tested

Not everyone’s needs will match up with ours, so it’s important to note that other tools out there might be great for your script.

Have another favorite we didn’t cover here? Let us know at bots@qz.com