---
id: data-structure-reference
sidebar_label: Data structure reference
title: Data structure reference
abstract: Overview of the data structure created by the Analytics pipeline.
  Description of all tables and attributes that can be used to build
  analytics dashboards.
---

import useBaseUrl from "@docusaurus/useBaseUrl";

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](https://rasa.com/rasa-product-release-and-maintenance-policy/).
All [Internal Tables](#internal-tables) should be considered private and may
change without notice.

## Database Table Overview

<!-- the diagram is generated from a database that has the correct schema
     you need to connect to a live database, e.g. the one connected to our
     example metabase. afterwards, you can use
     https://app.trevor.io/datasources/617ec3a0-526f-4295-ad5a-3a31f0f4c027#m=ap
     and its database map to create screenshots for all tables or the individual
     tables -->

<div align="center">
  <img
    alt="An overview of the components of Rasa Pro."
    src={useBaseUrl("/img/analytics/analytics-er-db.png")}
    width="100%"
  />
</div>

## 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](../../domain.mdx#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.

<div align="center">
  <img
    alt="Rasa Slot ER."
    src={useBaseUrl("/img/analytics/analytics-er-rasa-sender.png")}
    height="100%"
  />
</div>

#### `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](../../domain.mdx#session-configuration).

<div align="center">
  <img
    alt="Rasa Slot ER."
    src={useBaseUrl("/img/analytics/analytics-er-rasa-session.png")}
    height="100%"
  />
</div>

#### `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`](#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. All events between the user message and the end of the turn
belong to the same turn.

<div align="center">
  <img
    alt="Rasa Slot ER."
    src={useBaseUrl("/img/analytics/analytics-er-rasa-turn.png")}
    height="100%"
  />
</div>

#### `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`](#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`](#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](../../action-server/events.mdx).

<div align="center">
  <img
    alt="Rasa Slot ER."
    src={useBaseUrl("/img/analytics/analytics-er-rasa-event.png")}
    height="100%"
  />
</div>

#### `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`](#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`](#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.

<div align="center">
  <img
    alt="Rasa Slot ER."
    src={useBaseUrl("/img/analytics/analytics-er-rasa-bot-message.png")}
    height="100%"
  />
</div>

#### `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`](#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`](#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`](#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.

<div align="center">
  <img
    alt="Rasa Slot ER."
    src={useBaseUrl("/img/analytics/analytics-er-rasa-user-message.png")}
    height="100%"
  />
</div>

#### `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`](#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`](#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`](#rasa_session) 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.

<div align="center">
  <img
    alt="Rasa Slot ER."
    src={useBaseUrl("/img/analytics/analytics-er-rasa-action.png")}
    height="100%"
  />
</div>

#### `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`](#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`](#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`](#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.

<div align="center">
  <img
    alt="Rasa Slot ER."
    src={useBaseUrl("/img/analytics/analytics-er-rasa-slot.png")}
    height="100%"
  />
</div>

#### `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`](#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`](#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`](#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.

<div align="center">
  <img
    alt="Rasa Slot ER."
    src={useBaseUrl("/img/analytics/analytics-er-rasa-session-slot-state.png")}
    height="100%"
  />
</div>

#### `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`](#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`](#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`](#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`](#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`](#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`


## 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`
