Adventures in Conversation: Designing an Informational Chatbot


Tasked with designing a chat bot that tackled a “tense” topic, my group designed a bot that gave information about alternative energies. We attempted to skirt the issue of performing natural language processing on the user’s input by giving the user set responses to chose from. Maintaining user interest and engagement was a high priority, so we tried to write dialog in a way that was both interesting and informative. In our final testing, users generally appreciated the writing style and had little difficulty interacting with the bot.

Demo video created by group member Meixintong Zha


The first thing our group had to consider was what topic we could feasibly cover. Initially we mulled over making a bot that played devils advocate for some controversial issue. Despite our early interest, we ended up avoiding this style of topic. It seemed it would inevitably devolve into little more than repeating talking points. Instead of presenting two sides of an issue, we thought it would be better to try to give the user information about a subject and let them draw their own conclusions.

Alternative energies seemed like an ideal field for this sort of approach. Most educated people can agree that there’s a need for some alternative to fossil fuels, but there are many potential solutions out there. Since many of them are poorly understood or little known, a chat bot where a user could ask questions about the relative pros and cons of each energy source seems useful. Ideally, someone who used our bot would be able to make more informed decisions to support or oppose energy initiatives.


We started off by listing what energies we’d talk about, then drew out a basic sketch of the opening conversation flow. Each group member was assigned to research and write dialog for two energy sources, then we parted ways. For my part, I gathered information on geothermal energy and nuclear power.

When we next met we had a rough script for what our bot would say. We discussed it for a bit, and made some minor modifications to be more conversational. When it came time to implement our script into flowxo however, problems quickly emerged. Limits on the free version we were using made it so that we could only fit a fraction of the topics we researched. Being new to the software, we had considerable issues getting dialog to flow in the way we wanted. Our dialog structures had to be simplified for implementation.

Final User Testing

On the day of final testing we booted up an instance of our bot, prepared to record observations, and eagerly awaited users. Regarding the “conversationality” of our program we received several criticisms. Users said that the length of most bot messages were about right, but some of them really should have been split into two messages. One user appreciated how we put personality and emotion in the user choices, but found the bot wanting for personality. Multiple users said they thought we had conveyed just the right amount of information for the medium.

One criticism struck us as obvious in retrospect, and was probably the greatest shortcoming of our bot. We had failed to take advantage of web features like links and embedded images. Links could have been used to cite our claims and provide further reading on topics. Charts and infographics could have been embedded to help visualize relevant statistics.

Looking Back

This project presented unique and novel challenges. There was the recurring challenge of learning a new tool quickly, then negotiating its limitations. Writing in a conversational style likewise proved challenging. Despite having significant experience with writing in a variety of styles, the non-linear nature of conversational writing was completely new to me.

If I had more time to work on this project I would try to improve on a few key fields. Firstly, I would try to implement links and images into the bot. Secondly, I would spend more time trying to add personality to the bot’s informational messages. In retrospect a lot of the dialog I wrote comes off overly formal, and maybe even a little dry. Lastly, I would attempt to improve the general quality of the bot system. Users didn’t directly complain about it, but loops where you see the same message presented twice don’t feel natural. This could be fixed by writing multiple versions of every message. Additionally, I think there would be benefit in adding a few more buttons for actions a user could take at any time, such as returning to the beginning, or leaving the chat.

Wrapping Up

In conclusion, our bot fulfilled its intended purpose of informing users about an important issue. There were challenges with the software and style of writing used, but generally users were happy with the final prototype. As always, there’s more that could be done with more time. For now at least, this chat bot is done.