Monitoring a bot’s behavior is almost as important as the initial creation of the bot itself. Every chatbot project should come with a clear monitoring plan to identify, for instance, frequent user utterances that the chatbot is unable to match.
This is a feature that all our eCommerce users have integrated in their bots, but it’s a feature also available to anybody interested in creating their own chatbots with the open source Xatkit bot engine.
In fact, today we announce a brand new open-source extension to store and retrieve your bot’s monitoring data in Xatkit: a PostgreSQL database! With this new Xatkit – PostgreSQL integration you can easily configure your own Xatkit bots to store their running data (matched and unmatched entities, user utterances, sessions,…) in a plain relational database.
Once you’re ready to inspect the bot’s behaviour, you have two options:
- Keep using Xatkit’s monitoring API, which presents the data in a “digested” way to facilitate their analysis and understanding.
- Use any SQL-based tool to directly query the table data for custom analysis
Note that the PostgreSQL connector is fully compatible with the monitoring API, so what option to choose is really up to you!
One way or the other, you’ll be able to easily build nice visualizations that make sure that even non-technical users can understand how people are using the bot and the aspects of the bot that should be optimized in the future for a better communication experience.
This page details all the steps required for this integration to work, including the SQL script to create the chatbot monitoring tables you need to have in your PostgreSQL schema and the properties you should add to the bot configuration file to make sure Xatkit can communicate with PostgreSQL and use it to store and retrieve all monitoring data.
Of course, the other options to store your monitoring data: MapDB (for an internal / embedded option) and InfluxDB (for a more temporal perspective) are still available but we felt a relational database option offered a great trade-off. Great for long-term persistence and scalability, while still easy enough for a large variety of users.