I’ve always loved interactive stories. When I learnt to build websites as a teenager, the first thing I built was clickable choose-your-own adventure fiction. Paragraphs of adventure and tension – segmented with a dramatic “do you take the hallway to the left, or right?” Admittedly, at the time my amazing work was usually themed around Harry Potter fanfiction, but we were all sixteen once, right?

Over the last decade, I dabbled in coding and designing street games as hobbies. I loved working with that fragile balance between crafting a story for readers and users finding a unique story through their actions. In my mind, I loved being able to add the depth of hundreds of possibilities and experiences by leveraging technology layered on top of the classic Choose-Your-Own-Adventure books of my childhood.

For fun, I’ve created games where people need to solve puzzles sent to them by twitterbots to get the GPS coordinates of a location (usually a alley in the back of Newtown), and from there, find a piece of streetart to get the codeword to solve the puzzle for the next location. If they send the correct codeword to the twitterbot, it would reveal the next location.

While I’d heard of Facebook chatbots over the last few months, but I hadn’t looked that closely at them because the examples I’d heard about didn’t really seem that exciting – just pulling out an RSS feed of the day’s news. It didn’t light that passion that I had from the interactive stories of my childhood.

Until I discovered that chatbots could respond to free text commands. And then I was all in.

So I created a chatbot.

If you’re still not sure what a chatbot is, a chatbot is a pre-programmed script that responds to specific phrases people type in, or to serve people content based on the options they pick from a series of buttons. A Facebook chatbot sits on a Facebook Page, in Messenger, so when someone opens chat to talk to the page, they are talking to a bot.

What is my chatbot? It’s a little educational bot that pulls up articles on my site based on what the user wants to learn about. (I know! You were hoping for dragons! Next time! ;))

I’ve called my little chatbot BeanBot. She looks like this (below), and you can chat with her here.

Here are the lessons I’ve learnt from my creating my chatbot, if you’re looking at building your own for your business.

It’s easier than you think

I thought I needed to be a programmer to design a chatbot. I don’t. Designing a chatbot is really easy with drop-and-drag features using chatbot creators like Chatfuel. The system is really simple and easy to use. I designed mine from concept to being live in an hour.

While I haven’t explored the advanced features yet, I can see there are heaps of extensions and plugins to add nifty features, like pulling in your latest blog posts, or creating custom lists to send broadcast messages based on a user’s preferences.

I hope to have a play in the future with these additional features because they look really fun – but require a bit more time and tech know-how to execute. But for now, version 1.0 of my chatbot is live.

There are loads of media options

When designing a chatbot, it’s important to understand the architecture you’re working within. The default is a ‘block’ which can have a different content within it.

I like to think of it as a ‘scene’ – you can have a variety of text, images, or advanced tools (plugins) active within a block. You can then lead people down a path through of a variety of blocks.

Blocks (the blue sections) can contain many different types of media.

This article is great to show you the types of media you can put into a chatbot. Once you know what media types are available to you, you can be a lot more creative with your bot!

Once I saw I could create media galleries, it defined the direction of my chatbot.

Planning is essential

Design your chatbot like a decision tree – every point must have some options of where to go next, or to go back to the start.

Draft it on paper first, so you know the blocks you need to build. Then, when you build your bot, you simply need to connect the each point to the blocks that come next.

Sometimes your bot will be very simple, with a very linear path. Sometimes it will have many forks. Ensure it’s clear to your audience how they interact with your bot. For example, it might be a series of buttons they press, or it might be where you provide a list of the keywords your bot is programmed to respond to.

Chatfuel has a handy tool where there is a ‘menu’ button on the bottom left corner where the audience can always access if they get stuck. It’s useful to have this programmed with something handy like ‘back to start’.

PRO TIP: Make a dummy Facebook page and connect your bot there for testing. Otherwise, it’s live on your page while you’re testing it!

I let people know the keywords the bot is programmed with.

Closing the loop

Every ‘block’ must lead somewhere. Your bot can’t leave your user hanging anywhere along the path.

If there is nowhere else to travel along your path, suggest the user heads back to the main menu or the start.

At the end of every fork, I give the options for a user to return to the main listing, or explore something new.

While you can guide a user through a set of paths most of the time, sometimes a user will stray off the path, get lost or type in a command that doesn’t do anything.

In Chatfuel there is a great ‘default’ text block which is served when someone types in a command the bot doesn’t understand. I like to think of this as the chatbot equivalent of a 404 page. Provide helpful options in that menu, whether it’s back to the start, head to a main menu or to contact a human.

If a user types in something the bot doesn’t have a response for, I provide a 404-style message with links to exit or contact me.

Give it context

Chatbots are new and many people still don’t know what they are. It’s important to consider that while you might have many savvy users, you’re always going to have someone who doesn’t know they’ve found a chatbot.

It’s made a bit more confusing because the only way to launch a chatbot is through the ’messenger’ service of Facebook. For the last few years, this has been manned exclusively by humans, so suddenly connecting to a chatbot might be confusing for users who still aren’t aware of what chatbots are.

It’s important that in your very first message, explain clearly that people have found a chatbot and what it can do, or how to use it.

When I was researching, I saw other chatbots that had a button that said ‘what’s going on?’. I added this to my bot, because even though you might announce you’re a chatbot, you might have a user who still doesn’t know what a chatbot is at all.

Also consider adding a clear path for users to also contact a human if your Messenger tool has traditionally been a customer service tool.

Provide context in your Intro message, including more info on chatbots.

PRO TIP: If you don’t want to commit to a full chatbot, Facebook also has an ‘auto-response’ feature on Messenger, which acts similar to an ‘out of office’ response on an email. You can reply with an instant automated message when someone contacts you, whether that is that you will be in touch soon, or divert them to another channel of communication.

Predict your audience’s questions

It’s best practise to guide your audience through your chatbot with a series of predefined paths using buttons. The reason for this is so that there is less chance of a user typing in something the bot can’t answer.

But…text imput is my favourite part of chatbots. So, I didn’t design my bot using buttons as the primary tool to define a path. I love thinking of the questions people will ask my chatbot, and coming up with fun responses.

If you’re going down the text route, the reality is that people will use a chatbot however they want. They will type their own questions and your job is to anticipate what these might be and try to serve content based on that.

Chatfuel makes this easier to manage because there is a section for ‘AI responses’. Outside of your usual ‘decision tree’ path you may be leading users down, there is also the option to add text replies based on specific phrases people type.

Get out a thesaurus or Urban Dictionary for this part! I have a block on my chatbot which shares information about images people can use for social media. The keyword I suggest to access this is images. But I’ve also programmed it to serve up my ‘images’ block if people use words like photo, canva, photoshop.

For clarity, I instruct users that I have only one keyword to access my ‘images’ block, but I add additional keywords to attempt to predict user queries and reduce the chance of 404ing.

I’ve got a response to the question ‘how are you?’. I’ve also got it triggered to work on ‘how r u’. Consider slang, internet speech or common typos when defining the keywords your bot will respond to.

It’s worth considering answers programmed for the essentials people might ask: hello, goodbye, help.

If you’re designing your chatbot around your business, you might find your FAQs will give you inspiration for the questions people are likely to frequently ask.

Always optimise

My bot is only just born. It’s day one. But I know that it’s just the first step. Like every digital creation, it’s a living, breathing creature. I need to look after it.

My chatbot builder has an analytics section and my next step is to monitor the analytics and see how people use it.

I will need to analyse – what paths are people more likely to travel down? Should I create more paths around those topics? What keywords are people typing in which is leading to the default message (aka 404 page)? How can I reduce this – is it through clearer instructions, or proving information on what they are searching which leads to the 404?

PROTIP: Pop a reminder in your calendar to come back and revise your chatbot monthly or quarterly based on the paths people are taking or updated information.

Are you ready to build your own bot? Get in on it! I used Chatfuel, but there are plenty of other options, too.

Let’s hook in

Here’s the checklist to keep in mind:

  • Plan it out: What’s the purpose of your bot? Design your chatbot on paper, using a decision tree to plan it’s paths. Start simple and make it more complex after you’ve mastered the simple stuff.
  • Close the loop: send people back to the start, to menus, or to contact a human at the end of a path. Create helpful ‘404’ messages.
  • Give it context: Explain what your chatbot is and how it use it. Every bot is different. Teach people how to use yours.
  • Free text: Try to predict what questions people will ask your bot. Provide answers for those questions. Remember to think about different phrases or words people will use to ask those questions.
  • Optimise: Review your analytics regularly to improve your bot. What can be optimised to make your baby better serve the needs of your audience?

Additional Reading

I found these resources super useful when I was designing my chatbot:

And a BIG thanks to the awesome folks in the Bean Social group who helped test BeanBot!