So you want to build a chat bot

Jason C - Apr 21 '20 - - Dev Community

There are countless articles popping up about how chatbots will replace web sites and change the way people interact with your brand or product. But you need to answer some important questions before diving into the bot world.

What should my bot be able to do?

Real world bots are doing things like answering basic questions (FAQs), ordering pizza, schedule meetings, updating task lists, and booking hotel rooms. While repeatable task automation will see continued bot growth, creating a great bot isn't always that easy. A bot is only as good as the service it exposes.

Make a list of features you think your bot should offer. How are these features different then using an existing website or app? Will these features bring unexpected customer delight? (hint: they should!)

Where will my bot be located?

A bot can be built for many different channels. It may be hosted on your website, inside Facebook Messenger, Skype, or Slack. The bot could communicate over SMS or E-mail. It could be a voice assistant running on Alexa, or Google Home.

Knowing the channel where your bot will live has a direct impact on what type of content you can be provide. In a visual channel, like the web, a bot can send images and videos, but in a voice channel it will be limited to speech. Some channels will limit the interaction with the user to one session. For example, if the chat is directly on a web page you may have a hard time reaching the user after the chat ends since they may have left your site. However, in a messenger application you can send reminders and notifications long after the original conversation has ended.

A major factor in picking the right channel is determining where users are looking for you. If you have a strong social media following, that channel may be easier to start in. If no one is following you on Facebook, you may have a hard time launching a FB Messenger bot.

How will users interact with my bot?

Think back to the last time you called an automated phone system. You were presented with a menu of options and drilled through a massive tree with no idea what was next. Don't put your users through that same pain!

Don't try to be a fake human. If the bot announces itself as a machine, and not a human, the user is more likely to forgive it for not knowing an answer. This also gives you the opportunity to create brand focused personality for your bot.

Users will expect your bot to be a bit more open ended than a traditional web page or input form. Don't force users into a box or restricted flow. Provide help when needed and allow the user to jump around. The flow of your bot should feel like a conversation and not an interrogation.

How do I design a conversational bot?

In the world of conversational based bots, the user will be talking in their own terms, the bot is expected to figure out what they mean and reply. The bot's response should also guide the user on what to do next. This could be another question or a list of options. If the user feels stuck or doesn't know what to do next they will likely leave and not return.

Designing the conversation will likely be your most challenging task. You will need to think about common phrases a user might say and the responses a bot will return. Think about all the different ways the user utters the same sentence. Write down the intent of each of these utterances. Start to group utterances with intents and create bot replies for each of them.

Don't use terms that are internal to your business, you will need to write the conversation based on how a user talks.

Get two different color sticky notes. Pick a color for the user and a color for the bot. Write out a few different dialog flows between users and bot. Is the dialog too completed? Was the user able to easily accomplish their goal? If you answered no, go back and rewrite the conversation. If you have a hard time drawing the conversation, the user is going to have a hard time too.

Don't forget to include ways for the user to change their mind and how you would handle unexpected user input. Be on the lookout for areas where users may get stuck. Provide them with a way to start over or transfer to a live person if appropriate.

Where do I go from here?

Now that you defined your feature set, picked a channel, and wrote the dialogs, you should be on your way to building and release your bot!

You should research and interact with other bots. Take note of bots that do things well and times where they struggle. Find a few bots in your target industry and think of ways you would improve them.

Check out these additional resources:

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .