> ## Documentation Index
> Fetch the complete documentation index at: https://dreamlit.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# How it works

> How Dreamlit Autopilot turns a read-only database connection into a measured funnel, expert-reviewed campaigns, and a weekly report. No code, no tracking snippets, nothing installed in your database.

Autopilot works the way an analytics platform does: it reads your database, never writes to it, and builds its understanding of your users from what they actually do. The difference is that Autopilot also acts on what it finds, with a person from our team reviewing every step and you approving every send.

<CardGroup cols={3}>
  <Card title="1. Connect" icon="database">
    One read-only connection to your Postgres or Supabase database, plus your
    website URL. Usually live within a day, no code.
  </Card>

  <Card title="2. Diagnose" icon="magnifying-glass-chart">
    Autopilot builds your activation funnel, finds where users stall, and ranks
    the emails you should be sending by impact.
  </Card>

  <Card title="3. Activate" icon="paper-plane">
    We draft the workflows, you approve them, and they run in real time off
    activity in your database. Every week you get a report of what moved.
  </Card>
</CardGroup>

<Info>
  **Database compatibility:** Autopilot connects to **PostgreSQL** and
  **Supabase** databases. See [Connect your
  database](/docs/autopilot/connect-your-database) for requirements.
</Info>

## The loop

```mermaid theme={null}
sequenceDiagram
    participant DB as Your Database
    participant AP as Dreamlit Autopilot
    participant You as You
    actor User as Your Users

    DB->>AP: Live user activity (read-only)
    AP->>AP: Measure funnel, find gaps
    AP->>You: Proposed workflows and campaigns
    You->>AP: Approve
    AP->>User: Nudges sent at the right moment
    User->>DB: Activity continues
    AP->>You: Weekly report: what moved, what is next
```

<Steps>
  <Step title="Connect your database">
    You create a read-only database user and share a connection string, enabling
    logical replication first if your provider doesn't already. No SDK, no
    webhooks, no tracking script. [Setup
    details](/docs/autopilot/connect-your-database).
  </Step>

  <Step title="Autopilot learns your product">
    From your database, Autopilot understands who your users are, what they do,
    and what activation means in your product. From your website, it learns your
    positioning, pricing, features, and voice.
  </Step>

  <Step title="Your funnel, measured">
    Autopilot builds a funnel specific to your business, from signup to habit,
    and measures it week over week. You see exactly where users drop off and
    what it is costing you.
  </Step>

  <Step title="Gaps become proposals">
    Autopilot identifies the moments where a message would move a user forward
    and drafts the workflow: who it goes to, when, and what it says. Previews
    render with real rows from your database, so you see the exact email a real
    user would receive.
  </Step>

  <Step title="You approve">
    A Dreamlit expert reviews every proposal before it reaches you. You approve,
    edit, or decline.
  </Step>

  <Step title="Workflows run in real time">
    Once live, a workflow fires the moment the matching activity lands in your
    database. Delivery, timing, retries, and unsubscribe handling are all taken
    care of.
  </Step>

  <Step title="The weekly report">
    Deliveries, opens, clicks, and funnel movement feed back in. Every week you
    get a report of what we shipped, what it moved, and what is next, and
    campaigns keep being adjusted as results come in.
  </Step>
</Steps>

## How Autopilot reads your database

Autopilot connects the same way modern analytics and data platforms do. Your database keeps a built-in, ordered feed of every committed change. Autopilot subscribes to that feed through a read-only user. This is the standard, log-based approach to change data capture (CDC) that data platforms such as Fivetran and Airbyte use to keep a warehouse in sync, and it is the same mechanism PostgreSQL uses for its own replication.

* **Nothing is installed in your database.** No triggers, no tables, no functions, no schema. Your app does not change, and your schema does not change.
* **It never writes to your data.** The Autopilot user can read your tables and follow the change feed. It can't insert, update, delete, or alter anything.
* **It's light on your database.** Following the change feed is light work for your database, much lighter than repeatedly querying your tables.
* **It's real time.** A change is visible to Autopilot moments after it commits, so a nudge can go out while the moment still matters.

### What happens at setup

When you connect, Autopilot reads the current contents of the tables that matter for your funnel once. This is the same initial sync an analytics warehouse performs. Large tables are read in small batches in the background, so your database keeps serving your app as usual.

When that read completes, Autopilot is ready. From then on, only new activity can trigger a workflow. **Setup itself never sends anything**: rows that already existed, and changes that happened while Autopilot was getting ready, shape the funnel but do not start a campaign.

### After setup

Autopilot keeps its own up-to-date copy of the fields it uses, maintained from the change feed. That copy is what lets it measure your funnel over time, evaluate workflow conditions, and render previews without querying your database again and again.

If the connection drops, or Dreamlit is briefly unavailable, your database holds the changes until we reconnect. Autopilot then picks up exactly where it left off. Nothing is missed, and nobody gets the same email twice.

<Note>
  Want the details on what is read, what is kept, and how to revoke access? See
  [Your data](/docs/autopilot/your-data).
</Note>

## Where workflows run

Autopilot's campaigns run on the Dreamlit Engine, the same workflow runtime behind Dreamlit's self-serve product. Autopilot workflows trigger from the change feed rather than from the database triggers the self-serve Engine installs, so nothing is added to your database. Each step runs durably with automatic retries, wait steps are scheduled for you, and every send is tracked for delivery and engagement. Autopilot workflows can be inspected and re-run in your Dreamlit dashboard like any other. The [Dreamlit Engine](/docs/getting-started/introduction) docs cover the runtime in depth.

## How Autopilot compares

| Concern                       | Dreamlit Autopilot                   | Marketing automation (Customer.io, Braze, Klaviyo) | Analytics warehouse sync (Fivetran, Airbyte) |
| ----------------------------- | ------------------------------------ | -------------------------------------------------- | -------------------------------------------- |
| **Integration**               | One read-only database connection    | SDK or API calls in your app, or CSV imports       | One read-only database connection            |
| **How it learns about users** | Live change feed from your database  | Events you explicitly send                         | Live change feed from your database          |
| **Who does the work**         | Dreamlit experts, with your approval | Your team                                          | Your team, in a separate BI tool             |
| **Acts on what it finds**     | Yes, with expert-reviewed campaigns  | Yes, if you build them                             | No, analysis only                            |
| **Changes to your app**       | None                                 | Code changes and deploys                           | None                                         |

***

Last validated: 2026-09-08
