Guidelines to creating a chatbot

With all the hype around chatbots, I was glad to get a chance to actually get some experience in developing one. A few weeks ago, within our Immerstive Automation project, we had Nick Diakopoulos, an Associate Professor in computational and data journalism, lead a workshop on creating chatbots. I was very excited to get to build my first chatbot.

Image source – https://i.ytimg.com/vi/YeLh-Fzm5Eg/maxresdefault.jpg

During the workshop, we were introduced to one tool, Chatfuel, for developing Facebook messenger chatbots. It is used by many companies and newsrooms (shown here https://chatfuel.com/bots/) and is easy to use for beginners.  Examples of chatbots include those that give you weather updates when you ask, ones that help you pick out and order groceries for the week or news bots that alert you when something interesting happens. For many of these companies, chatbots provide several advantages, as they are able to handle tasks automatically, thus reducing manual hours.

In the workshop, we were teamed up in groups of three. In my group we ended up creating a chatbot that serves you a poem when you ask from it. Nothing fancy as we just implemented a few conversational rules and we didn’t publicly release it. Future plans include experimenting with something more advanced using machine learning, as Chatfuel is rule-based and has limitations in conversational depth.

When designing chatbots, however, here are a few guidelines we were given in the workshop that can guide you on creating a chatbot:

1) Select a specific problem or opportunity that you want to address.

2) Define audience and goal(s) of audience interacting with bot. What will the bot do? Does it solve a problem? Who will use it? Does it serve a particular demographic or niche? In what context will the audience use it?

3) Create a persona for your bot: what are the bot’s goals and behaviors? Will it have a name or personality? What kind of tone will it take?

4) Define the interaction: How will your bot interact? Can you describe a scenario that walks though those interactions step by step? – Good practice here is to try and improvise the conversation: Act out the conversation.

5) Check if there is any data or knowledge-base that your bot needs in order to work?

Lastly, always have a fall back, a user friendly way for your bot to react when it does not ‘understand’ user input.

That’s it! Feel free to share any interesting chatbots that you have created or your favorite tools and approaches, etc.