Skip to main content

Overview

Studio ingests conversation events from a Kafka topic (rasa-events) and stores them in a PostgreSQL database. An event ingestion service consumes each message and writes structured records into analytics tables — capturing individual conversation events as well as aggregated daily statistics by channel/version and by flow. These tables are available as a standard PostgreSQL database, which means you can connect any SQL-compatible BI tool — such as Metabase, Tableau, Looker, Grafana, or Redash — directly to the database and build custom dashboards on top of the data.

Connecting to the database

Studio uses a standard PostgreSQL connection. Use the following connection string format:
Example (local development):
For production deployments, ask your administrator for the host, port, and credentials. It is recommended to create a dedicated read-only database user with SELECT privileges on the analytics tables before connecting your BI tool.

Data model

Analytics database schema

Table reference

Conversation

Each row represents a single conversation session between a user and the assistant.

ConversationEvent

Each row represents a single Rasa event within a conversation, such as an action execution, slot update, or flow transition. type enum values: ACTION, SESSION_STARTED, SLOT, RESET_SLOTS, FLOW_STARTED, FLOW_INTERRUPTED, FLOW_RESUMED, FLOW_COMPLETED, FLOW_CANCELLED, FORM, ACTIVE_LOOP, RESTART, CONVERSATION_INACTIVE, SESSION_ENDED, ENTITIES, FOLLOWUP, ACTION_EXECUTION_REJECTED, STACK, ROUTING_SESSION_ENDED, REMINDER, CANCEL_REMINDER, REWIND, UNDO, EXPORT, PAUSE, RESUME, LOOP_INTERRUPTED, AGENT_STARTED, AGENT_COMPLETED, AGENT_INTERRUPTED, AGENT_CANCELLED, AGENT_RESUMED

VersionDailyStatistics

Each row contains aggregated daily metrics for a specific channel and assistant version combination. This table is the primary source for time-series dashboards tracking volume, automation rate, latency, and CSAT.

FlowDailyStatistics

Each row contains aggregated daily metrics for a specific flow, allowing you to compare flow-level engagement and escalation rates over time.

SuccessCriteria

Stores the custom success filter configured per assistant, which defines which flows must (or must not) be executed for a session to be counted as successful. Referenced by VersionDailyStatistics to compute customSuccessCount and customFailureCount.