You are viewing documentation for our open source project which is maintained by the community. If you want to get started building assistants with Rasa please check out our latest [documentation here](/content/docs/index.html).

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](/content/rasa-product-release-and-maintenance-policy/index.html). All [Internal Tables](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#internal-tables) should be considered private and may change without notice.

## Database Table Overview

## 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](https://legacy-docs-oss.rasa.com/docs/rasa/next/domain#session-configuration)).
- **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.

#### `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](https://legacy-docs-oss.rasa.com/docs/rasa/next/domain#session-configuration).

#### `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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_sender) 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.

#### `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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_sender) 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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_session) 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](https://legacy-docs-oss.rasa.com/docs/rasa/next/action-server/events).

#### `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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_sender) 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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_session) 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.

#### `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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_event) 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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_sender) 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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_session) 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.

#### `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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_event) column.

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

#### `sender_id` sender whose conversation the message belongs to

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

#### `session_id` session identifier

- 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

- 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.

#### `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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_event) 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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_sender) 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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_session) 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.

#### `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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_event) 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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_sender) 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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_session) 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.

#### `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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_sender) 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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_session) 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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_patterns) 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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_sender) 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`](https://legacy-docs-oss.rasa.com/docs/rasa/next/monitoring/analytics/data-structure-reference/#rasa_session) 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`
