Version: Main/Unreleased

Data structure reference

Overview of the data structure created by the Analytics pipeline. Description of all tables and attributes that can be used to build analytics dashboards.

The data structure is created by the Analytics pipeline and treated as a public API. The versioning of the API follows the Rasa Product Release and Maintenance Policy. All Internal Tables should be considered private and may change without notice.

Database Table Overview

An overview of the components of Rasa Pro.

Common Terms

  • a sender is a user who is talking to the assistant through a channel. A user might have multiple senders if they use multiple channels, e.g. communicating with the assistant through a website and through a channel integrated into a mobile app.
  • a session is a conversation between a sender and the assistant. A session is started when a sender sends a message to the assistant and ends when the session either has been timed out or explicitly ended. If a session is interrupted by a longer period of inactivity new activity will trigger a new session to be created (configurable through the session timeout).
  • a turn always starts with a message from a sender and ends right before the next message from the sender. A turn can also end with a session being timed out or explicitly ended. A turn will usually contain at least one bot response.

Tables

rasa_sender

A sender is a user who interacts with the assistant through a Rasa Channel. If the assistant supports more than one channel, a user might have multiple senders. For example, a user might have a sender for the Facebook channel and a sender for the Slack channel.

Rasa Slot ER.

id sender identifier

The unique identifier of the sender is generated by Analytics. Sender gets a different, generated id assigned. The id differs from the sender_id used by the Rasa channels, the sender_id in Rasa is the sender_key in Analytics.

  • Type: varchar(36)
  • Example: a78783c4-bef7-4e55-9ec7-5afb4420f19a

sender_key Rasa channel sender identifier

The unique identifier used by the Rasa channel to identify this sender. The sender_key is specific to the channel implementation in Rasa and the format depends on the channel.

  • Type: varchar(255)
  • Example: fb26ba0a9d8b4bd99e2b8716acb19e4b

channel Rasa channel name

Name of the channel that is used for this sender. The channel names are defined in the implementation of the respective Rasa channel.

  • Type: varchar(255)
  • Example: socket.io

first_seen first contact with this sender

The date and time of the first contact with this sender. Corresponds to the time of the first event of the first session created for this sender.

  • Type: DateTime
  • Example: 2022-06-28 02:15:49.326936

last_seen latest contact with this sender

The date and time of the last contact with this sender. Corresponds to the time of the latest event of the latest session created for this sender.

  • Type: DateTime
  • Example: 2022-10-28 02:15:49.326936

rasa_session

The rasa_session table contains information about all conversation sessions that users started with the assistant. New sessions are created for every new user and for users who return to the assistant. The conditions that trigger a new session to start can be configured in the Rasa Domain.

Rasa Slot ER.

id session identifier

The unique identifier of the session. Every session gets a different, generated id assigned.

  • Type: varchar(36)
  • Example: 63b150a6-21a3-4e6c-bb24-5ab6ddc30cf1

sender_id sender who started the session

The unique identifier of the sender who started the session. It is a foreign key to the rasa_sender.id column.

  • Type: varchar(36)
  • Example: 9e4ebded-f232-4cc5-af78-d98daa0c1a53

timestamp creation date time

The timestamp when the session was created. The timestamp is a UTC.

  • Type: DateTime
  • Example: 2022-06-28 02:15:49.326936

start_sequence_number start of the session

The sequence number of the first event in this session. All events belong to exactly one session. The start sequence number is always smaller or equal to the end_sequence_number. The difference between start and end sequence numbers does not equal the number of events in this session since sequence numbers are incremented across multiple conversations.

  • Type: Integer
  • Example: 78

end_sequence_number end of the session

The sequence number of the last event in the session.

  • Type: Integer
  • Example: 91

rasa_turn

The rasa_turn table contains information about all conversation turns. A turn is one interaction between a user and an assistant. A turn always starts with a user message. It ends with the last event before the next user message or with the end of a session. A turn will usually be one user message followed by one or multiple assistant responses. All events between the user message and the end of the turn belong to the same turn.

Rasa Slot ER.

id session identifier

The unique identifier of the turn. Every turn gets a different generated id assigned.

  • Type: varchar(36)
  • Example: ffa5d0cd-f5a6-45a4-9506-ba7ffd76edf1

sender_id sender who started the turn

The unique identifier of the sender who started the turn. It is a foreign key to the rasa_sender.id column.

  • Type: varchar(36)
  • Example: 9e4ebded-f232-4cc5-af78-d98daa0c1a53

session_id session identifier

The unique identifier of the session this turn is part of. It is a foreign key to the rasa_session.id column.

  • Type: varchar(36)
  • Example: 63b150a6-21a3-4e6c-bb24-5ab6ddc30cf1

start_sequence_number start of the turn

The sequence number of the first event in this turn. All events belong to exactly one session. The start sequence number is always smaller or equal to the end_sequence_number. The difference between start and end sequence numbers does not equal the number of events in this session since sequence numbers are incremented across multiple conversations.

  • Type: Integer
  • Example: 79

end_sequence_number end of the turn

The sequence number of the last event in this turn.

  • Type: Integer
  • Example: 82

rasa_event

The rasa_event table contains all events that an assistant created. Events are created for every user message, bot response, and action that is executed as well as for a lot of internal changes to a conversation session. Overview of all Rasa Events.

Rasa Slot ER.

id event identifier

The unique identifier of the event. Every event gets different, generated id assigned.

  • Type: varchar(36)
  • Example: f5adcd16-b18d-4c5c-95f0-1747b20cb0e6

sender_id sender whose conversation the event belongs to

The unique identifier of the sender whose conversation this event is part of. It is a foreign key to the rasa_sender.id column.

  • Type: varchar(36)
  • Example: 9e4ebded-f232-4cc5-af78-d98daa0c1a53

session_id session identifier

The unique identifier of the session this event is part of. It is a foreign key to the rasa_session.id column.

  • Type: varchar(36)
  • Example: 63b150a6-21a3-4e6c-bb24-5ab6ddc30cf1

timestamp creation date time

The timestamp when the event was created. The timestamp is a UTC.

  • Type: DateTime
  • Example: 2022-06-28 02:15:49.326936

event_type kind of event

The type of the event. The event type is a string and can be one of the following:

  • user: The user sent a message to the assistant.
  • bot: The assistant sent a message to the user.
  • action: The assistant executed an action.
  • session_started: A new session was started.
  • action_execution_rejected: An action failed to execute.
  • active_loop: The assistant is currently in a loop.
  • slot: A slot was set.
  • followup: A follow-up action was triggered.
  • loop_interrupted: A loop was interrupted.
  • pause: A session is paused, e.g. because the session was handed over to a human agent.
  • restart: A session was restarted. This will trigger a new session to be started. The state of the assistant will be reset.
  • rewind: The assistant rewinds to a previous state.
  • user_featurization: The assistant featurized the user input.

The event type defines how the event is interpreted and how the event affects the conversation. For example, the user event type will be interpreted as a user message and the bot event type will be interpreted as a bot response.

  • Type: varchar(255)
  • Example: action

model_id model identifier

The identifier of the Rasa model that was running as part of the assistant when this event was created.

  • Type: varchar(255)
  • Example: 75a985b7b86d442ca013d61ea4781b22

environment name of the assistant environment

The name of the environment of the assistant that created this event. The environment is a string that is set up during the start of the assistant,

  • Type: varchar(255)
  • Example: production

sequence_number start of the event

The sequence number of the event. The events of a session always have increasing sequence numbers. Sequence numbers are not guaranteed to be sequential for events following one another. But sequence numbers can be used to order the events of a session.

  • Type: Integer
  • Example: 78

rasa_bot_message

A message sent by the assistant to a user will be tracked in the rasa_bot_message table. The table contains information about the sent message.

Rasa Slot ER.

id bot message identifier

The unique identifier of the bot message is generated by Analytics.

  • Type: varchar(36)
  • Example: 2f2e5384-1bfa-4b53-90a7-c75e5f20b117

event_id id of the event of this message

The unique identifier of the event that created this bot message. It is a foreign key to the rasa_event.id column.

  • Type: varchar(36)
  • Example: f5adcd16-b18d-4c5c-95f0-1747b20cb0e6

sender_id sender whose conversation the message belongs to

The unique identifier of the sender whose conversation this message is part of. It is a foreign key to the rasa_sender.id column.

  • Type: varchar(36)
  • Example: 9e4ebded-f232-4cc5-af78-d98daa0c1a53

session_id session identifier

The unique identifier of the session this message is part of. It is a foreign key to the rasa_session.id column.

  • Type: varchar(36)
  • Example: 63b150a6-21a3-4e6c-bb24-5ab6ddc30cf1

timestamp creation date time

The timestamp when the message was created. The timestamp is a UTC.

  • Type: DateTime
  • Example: 2022-06-28 02:15:49.326936

template_name name of the template used to generate the message

The name of the template that Rasa used to generate the bot message. Might be empty if the message was not generated from a template but a custom action.

  • Type: varchar(255)
  • Example: utter_greet

text message content

The text of the bot message.

  • Type: varchar(65535)
  • Example: Ok, what can I help you with?

model_id model identifier

The identifier of the Rasa model that was running as part of the assistant when this message was created.

  • Type: varchar(255)
  • Example: 75a985b7b86d442ca013d61ea4781b22

sequence_number start of the event

The sequence number of the message. The events of a session always have increasing sequence numbers. The sequence number of this message is the same as the one of the underlying event.

  • Type: Integer
  • Example: 78

rasa_user_message

A message sent by a user to the assistant will be tracked in the rasa_user_message table. The table contains information about the sent message.

Rasa Slot ER.

id user message identifier

The unique identifier of the user message is generated by Analytics.

  • Type: varchar(36)
  • Example: 49fdd79e-976b-47c2-ab27-a4c3d743a1c9

event_id id of the event of this message

The unique identifier of the event that created this user message. It is a foreign key to the rasa_event.id column.

  • Type: varchar(36)
  • Example: f5adcd16-b18d-4c5c-95f0-1747b20cb0e6

sender_id sender whose conversation the message belongs to

The unique identifier of the sender whose conversation this message is part of. It is a foreign key to the rasa_sender.id column.

  • Type: varchar(36)
  • Example: 9e4ebded-f232-4cc5-af78-d98daa0c1a53

session_id session identifier

The unique identifier of the session this message is part of. It is a foreign key to the rasa_session.id column.

  • Type: varchar(36)
  • Example: 63b150a6-21a3-4e6c-bb24-5ab6ddc30cf1

intent classification of the text

The name of the intent that Rasa classified the text as. One of the intents in the domain used to train the model.

  • Type: varchar(255)
  • Example: book_flight

retrieval_intent classification of the text

The name of the retrieval intent that Rasa classified the text as. Only populated if there is a configured retrieval intent.

  • Type: varchar(255)
  • Example: book_flight/faq

confidence certainty the model predicted for classifications

The confidence of the ML model's intent prediction. The confidence is a value between 0 and 1. The higher the value, the more certain the model is that the intent is correct.

  • Type: Float
  • Example: 0.8798527419567108

text message content

The text of the user message.

  • Type: varchar(65535)
  • Example: I want to book a flight.

timestamp creation date time

The timestamp when the message was created. The timestamp is a UTC.

  • Type: DateTime
  • Example: 2022-06-28 02:15:49.326936

model_id model identifier

The identifier of the Rasa model that was running as part of the assistant when this message was created.

  • Type: varchar(255)
  • Example: 75a985b7b86d442ca013d61ea4781b22

sequence_number start of the event

The sequence number of the message. The events of a session always have increasing sequence numbers. The sequence number of this message is the same as the one of the underlying event.

  • Type: Integer
  • Example: 78

message_id unique id for the message text

A unique id that identifies the text of the message.

  • Type: varchar(255)
  • Example: 7cdb5700ac9c493aa46987b77d91c363

rasa_action

An action executed by the assistant. All actions the bot executes are tracked in the rasa_action table. The table contains information about the executed action and its prediction.

Rasa Slot ER.

id action identifier

The unique identifier of the action execution is generated by Analytics.

  • Type: varchar(36)
  • Example: bd074dc7-e745-4db6-86d0-75b0af7bc067

event_id id of the event of this action execution

The unique identifier of the event that created this action execution. It is a foreign key to the rasa_event.id column.

  • Type: varchar(36)
  • Example: f5adcd16-b18d-4c5c-95f0-1747b20cb0e6

sender_id sender whose conversation triggered this action execution

The unique identifier of the sender whose conversation triggered this action execution. It is a foreign key to the rasa_sender.id column.

  • Type: varchar(36)
  • Example: 9e4ebded-f232-4cc5-af78-d98daa0c1a53

session_id session identifier

The unique identifier of the session this action execution is part of. It is a foreign key to the rasa_session.id column.

  • Type: varchar(36)
  • Example: 63b150a6-21a3-4e6c-bb24-5ab6ddc30cf1

name name of the executed action

The name of the action that Rasa has predicted and executed. One of the actions in the domain used to train the model.

  • Type: varchar(255)
  • Example: action_book_flight

confidence ML models certainty of the predicted action

The confidence of ML model's action prediction. The confidence is a value between 0 and 1. The higher the value, the more certain the model is that the action is correct.

  • Type: Float
  • Example: 0.9398527419567108

policy name of the policy that predicted the action

The name of the policy that predicted this action. The policy is a component in the Rasa assistant that makes a prediction. The policy can be a rule policy, a memoization policy, or an ML policy.

  • Type: varchar(255)
  • Example: policy_2_TEDPolicy

timestamp creation date time

The timestamp when the action was executed. The timestamp is a UTC.

  • Type: DateTime
  • Example: 2022-06-28 02:15:49.326936

model_id model identifier

The identifier of the Rasa model that was running as part of the assistant when this action was executed.

  • Type: varchar(255)
  • Example: 75a985b7b86d442ca013d61ea4781b22

sequence_number start of the event

The sequence number of the executed action. The events of a session always have increasing sequence numbers. The sequence number of this executed action is the same as the one of the underlying event.

  • Type: Integer
  • Example: 78

rasa_slot

A slot that has been set for a session. All changes to slot values are tracked in the rasa_slot table. The table contains information about the change in the value of the slot.

Rasa Slot ER.

id slot change identifier

The unique identifier of this change in slot values is generated by Analytics.

  • Type: varchar(36)
  • Example: a793d284-b5b9-4cef-be8a-bc0f58c70c28

event_id id of the event that triggered this slot change

The unique identifier of the event that triggered this change in the slot value. It is a foreign key to the rasa_event.id column.

  • Type: varchar(36)
  • Example: f5adcd16-b18d-4c5c-95f0-1747b20cb0e6

sender_id sender whose conversation triggered this slot change

The unique identifier of the sender whose conversation triggered this slot change. It is a foreign key to the rasa_sender.id column.

  • Type: varchar(36)
  • Example: 9e4ebded-f232-4cc5-af78-d98daa0c1a53

session_id session identifier

The unique identifier of the session this slot change is part of. It is a foreign key to the rasa_session.id column.

  • Type: varchar(36)
  • Example: 63b150a6-21a3-4e6c-bb24-5ab6ddc30cf1

slot_path path of the slot

A path to the slot that was changed. The path identifies the slot by its name, the sender and the session. The path is a string that looks like <sender_id>/<session_id>/<slot_name>.

  • Type: varchar(255)
  • Example: 9e4ebded-f232-4cc5-af78-d98daa0c1a53/63b150a6-21a3-4e6c-bb24-5ab6ddc30cf1/email

name name of the slot

The name of the changed slot. The name of the slot is the same as the name of the slot in the domain.

  • Type: varchar(255)
  • Example: email

value new slot value

The new value of the slot for the session. The value is a dumped JSON object.

  • Type: varchar(65535)
  • Example: john@example.com

timestamp creation date time

The timestamp when the slot value was changed. The timestamp is a UTC.

  • Type: DateTime
  • Example: 2022-06-28 02:15:49.326936

sequence_number start of the event

The sequence number of the slot change. The events of a session always have increasing sequence numbers. The sequence number of the slot change is the same as the one of the underlying event.

  • Type: Integer
  • Example: 78

rasa_session_slot_state

The state of a slot at the end of a session. The state of a slot is the value of the slot at the end of a session. The state of a slot is stored in the rasa_session_slot_state table.

Rasa Slot ER.

id path of the slot

A path to the slot. The path identifies the slot by its name, the sender and the session. The path is a string that looks like <sender_id>/<session_id>/<slot_name>.

  • Type: varchar(255)
  • Example: 9e4ebded-f232-4cc5-af78-d98daa0c1a53/63b150a6-21a3-4e6c-bb24-5ab6ddc30cf1/email

sender_id sender whose conversation this slot is part of

The unique identifier of the sender whose conversation this slot is part of. It is a foreign key to the rasa_sender.id column.

  • Type: varchar(36)
  • Example: 9e4ebded-f232-4cc5-af78-d98daa0c1a53

session_id session identifier

The unique identifier of the session this slot is part of. It is a foreign key to the rasa_session.id column.

  • Type: varchar(36)
  • Example: 63b150a6-21a3-4e6c-bb24-5ab6ddc30cf1

name name of the slot

The name of the slot. The name of the slot is the same as the name of the slot in the domain.

  • Type: varchar(255)
  • Example: email

value last value of the slot in the session

The value of the slot at the end of the session. The value is a dumped JSON object. If a slot is changed multiple times during a session, the value is set to the last change.

  • Type: varchar(65535)
  • Example: john@example.com

timestamp creation date time

Time of the last update of the slot in this session. The timestamp is a UTC.

  • Type: DateTime
  • Example: 2022-06-21 02:15:49.326936

rasa_patterns

Patterns are marker definitions that have been received from Rasa. This table is called patterns to distinguish them from extracted markers which are stored in rasa_markers table. It stores the configuration of markers (which can be thought of as a pattern of conversational events) along with their metadata.

id pattern identifier

The unique identifier of the rasa pattern is generated by Analytics.

  • Type: varchar(36)
  • Example: bd074dc7-e745-4db6-86d0-75b0af7bc067

name pattern name

Name of the pattern

  • Type: varchar()
  • Example: registration success

description pattern description

Description of the pattern

  • Type: varchar()
  • Example: This marker identifies successful account registration in the chat

config pattern configuration

Pattern configuration dictionary stored as an escaped string

  • Type: varchar()
  • Example: "{'or': [{'intent': 'mood_unhappy'},{'intent': 'mood_great'}]}"

is_active soft-delete flag

Only patterns with is_active==True are processed during real-time analysis

  • Type: boolean

created_at creation date time

Time of creation of this pattern. The timestamp is a UTC.

  • Type: DateTime
  • Example: 2022-06-21 02:15:49.326936

updated_at update date time

Time of the last update of the pattern in this session. The timestamp is a UTC.

  • Type: DateTime
  • Example: 2022-06-21 02:15:49.326936

rasa_markers

Extracted markers from the conversations. Each row in this table corresponds to a marker along with details of the pattern, sender, session and the last event where it was extracted.

id marker identifier

The unique identifier of the extracted rasa marker is generated by Analytics.

  • Type: varchar(36)
  • Example: bd074dc7-e745-4db6-86d0-75b0af7bc067

pattern_id pattern which was applied in this marker

The unique identifier of the pattern which was applied in this marker. It is a foreign key to the rasa_patterns.id column

  • Type: varchar(36)
  • Example: 9e4ebded-f232-4cc5-af78-d98daa0c1a53

sender_id sender identifier

The unique identifier of the sender whose conversation this marker is part of. It is a foreign key to the rasa_sender.id column.

  • Type: varchar(36)
  • Example: 9e4ebded-f232-4cc5-af78-d98daa0c1a53

session_id session identifier

The unique identifier of the session this marker is part of. It is a foreign key to the rasa_session.id column.

  • Type: varchar(36)
  • Example: 63b150a6-21a3-4e6c-bb24-5ab6ddc30cf1

event_id event identifier

The unique identifier of the event from event broker where this marker was applied. Note that a marker can be applied across multiple events, this is the ID of the last event in the sequence.

  • Type: varchar(36)
  • Example: 63b150a6-21a3-4e6c-bb24-5ab6ddc30cf1

num_preceding_user_turns Number of Proeeding User turns

an integer indicating the number of user turns preceding the event at which the marker applied.

  • Type: integer
  • Example: 4

created_at creation date time

Time of creation of this marker. The timestamp is a UTC.

  • Type: DateTime
  • Example: 2022-06-21 02:15:49.326936

Internal Tables

Internal tables are used to store information about the assistant and the events that are sent to the assistant. They are not meant to be queried directly but are required for the functioning of Analytics. They are a private API that is used by the Analytics service internally and might change without notice.

Internal tables:

  • _rasa_raw_event
  • alembic_version