Persistent Slots - Stored in external database?


I am just going my first steps with Rasa and first of all: Thank you all, for this wonderful and great open source project!

Here are my first two questions :smiley: I am writing a customer support bot.

Within a form, I ask for many information, such as shoe size, favorite color etc.

  1. As I have understood, this information is stored within slots. However, I need this information to be available outside of Rasa, as I use them also in other systems. What and when is the best way to take the slots after a form is done and write them into an external database? I had written a custom action at the end of the form and use this action to write all information back to the database. Is this the best approach?

  2. Later on, I need the slots in many stories. I do not want to store the entire chat history, so I do not need a persistent tracker store in my opinion. I read that the internal db is resetted when restarting Rasa. Thus, in this case, my slots were lost. What should I do to keep the slots? Is it better to use an external tracker store? Or would it be better to recover the slots from the external db?

And maybe connected to this question: When the slots are stored in the tracker store, how can I change them? Just changing the entry in the database or is there an appropriate API call?

Thank you :slight_smile:


Here’s the best slots-to-database tutorial I’ve found:

…but, all the code is Rasa v2.0, and I haven’t been successful yet in converting it to v3.1 and having it work.