RSS and Multi-FAQ Chatbot: High Level Design (Part 1)

This post is part of a series of blog posts about a chat bot RazType™ that I implemented recently. Given that chat bots are advertised as a modern application that’s super easy to do, I decided to implement a prototype to learn through hands-on experience. There are 5 parts to this series:

  1. High Level Design (Part 1)this post
  2. Choices and Decisions (Part 2)
  3. RSS Implementation Learnings (Part 3)
  4. FAQ Implementation Learnings (Part 4)
  5. Adding the Facebook Channel (Part 5)


From a high level, developing chat bots seems super easy. The Microsoft Bot Framework enables developers to create chat bots rapidly. In addition, the Azure Bot Service allows organizations to code and deploy once and simply connect the bot service to multiple channels.


To make it even sweeter, Microsoft created QnA Maker, which can scrape questions and answers from an FAQ URL and instantly create a chat bot knowledge base. This is not mentioning other Cognitive Services which chat bots can easily integrate with such as LUIS and Text Translation.

Scenario: Requirement decision that made it easy

I wanted to create a chat bot quickly. But after seeing the bot service reference architectures (bottom of the URL), I quickly realized that bots are only easy provided that the data sources are already available. Since I prefer having the database loosely-coupled from the app, this meant that I had to create an extra API layer which queries the DB for the bot service to consume.

Since my objective was to learn bot service itself, and learn it quickly, I did not want to spend too much time on creating a DB and API layer. This led me to the following simple requirements:

For this case, I decided not to implement LUIS and Text Translation anymore since I already learned these in a past RazType™.

High Level Design: Dialog Conversation Flow

With these simple requirements, I then used ABS-CBN’s public RSS feeds + some Philippine government agencies FAQ sites. Here is the basic flow.

This slideshow requires JavaScript.

With these requirements and design, I was able to quickly create this chatbot in around 8-12 hours (beginner skills).

chatbot-screenshot1 chatbot-screenshot2

Up next: Choices and Decisions (Part 2)

This post is licensed under CC BY 4.0 by the author.