Turn your database into a chatbot

Suppose you have a database (or an Excel file) containing the information on your products. Using Botfuel, a modern bot-building platform that is designed to easily build highly conversational chatbots, you can create a chatbot that helps clients find a product they want.

People love conversations since they are natural. By speaking with the bot, clients will feel like they are in a physical store.
Clients looking for a product speak to the bot. Depending on the client’s request and the product information in your database, the bot will ask the user relevant questions.

In the above image, a client is looking for a polo and the bot asks the client for more information. In this example the bot asks about sleeve size, but if the client were asking for a pair of jeans instead, the bot would only request information specific to jeans. In your database you can have many different kinds of products, and each product can have a different set of features, as in the table below:

Example of a product database with different types of products that have different features. The bot asks only about the relevant features.

To optimize the user journey, for each question, the bot will show only available options for the user to choose. For example, in the image below the bot shows available sizes for Lacoste polos:

The bot is capable of figuring out the relevant questions to ask regarding a given product and showing available choices.

You can test the demo bot here: https://docs.botfuel.io/dialog/demos/faceted-search


Technology: Botfuel Dialog & Faceted Search

The demo bot above is created using Botfuel Dialog, an SDK for building bots using NodeJS, and the Faceted Search module, a powerful module that allows the bot to communicate with your database.

This module is highly customizable:

  • The columns (features) in your database can have different data types such as category, list, number, etc. In the product database above, type, brand and color are categories, price is a number and size is a list. Using a list for the size feature makes your database more compact by removing the need for repeating the same product many times for every size. In the same way, you can use a list for the color, if the item is available in multiple colors.
  • For each column (feature) you can define a specific match condition besides the default ones given in the module. The default match condition is equal or exact match. But you are not limited to equal or exact match. For example, you can set the match condition for the color feature to return similar colors, so that if a user is looking for a red polo, the bot returns all the polos with a color close to red (e.g., pink). For features of type list, the match condition should be set to contains. For example, when the user specifies a size the bot will return all the articles with that size in the article’s size list.
  • You can decide when the bot should stop asking questions and return the results back to the user (for example, when there are fewer than a specified number of products found).
Moreover, the Faceted Search module will optimize the question order to make the conversation as short as possible. The users will get the results by answering as few questions as possible. You can find out more about the underlying algorithm in the documentation.

To create your own Faceted Search bot: