After signing up, our guided setup walks you through a simple two-step process:
  1. Connect your Supabase account - With a click of a button, an OAuth flow launches to securely authenticate with your Supabase project
  2. Provide database credentials - This allows Dreamlit to securely connect your app and complete the integration.
Once connected, you can immediately start creating workflows for database events, auth emails, and more in Dreamlit.

Configuring Supabase Auth emails

If you’re using Supabase Auth for user authentication, you’ll need to set up a proper email sender for all your auth emails—otherwise you’ll be stuck with Supabase’s defaults, which are not production-ready.

Setting up Supabase Auth with Dreamlit

As part of the setup process, you’ll be asked if you’d like to configure auth emails with Dreamlit. Simply select “yes” and the process will take care of the rest. It’s that easy! If you select “yes”, the setup will:
  • Setup an auth hook for your Supabase project
  • Automatically create and publish 6 workflows for you in Dreamlit, one for each of the auth email types in Supabase Auth: password reset, magic link, reauthentication, email change, confirm email, and invite link
  • Generate beautiful default templates branded with your app name and sender
  • Configure everything to work immediately with your existing Supabase Auth setup
Of course, you can customize these templates anytime using Dreamlit’s workflow builder or by simply asking the Workflow AI to make changes. Want a different tone? New design? Additional content or personalization? Just describe what you want, and the AI will update everything accordingly.

How to trigger auth emails

When you configure auth emails through Dreamlit’s setup process, we automatically install a Supabase Auth Hook in your project. This hook intercepts auth events and routes them to Dreamlit for custom email delivery. Unlike regular database-triggered workflows, Supabase Auth emails work through API calls: Auth emails ONLY trigger when your app calls Supabase auth APIs. Your app code must invoke the appropriate method for each email type:
Email TypeSupabase API MethodWhen to Use
Password Resetsupabase.auth.resetPasswordForEmail()User clicks “Forgot Password”
Magic Linksupabase.auth.signInWithOtp()For passwordless login (magic link or OTP)
Reauthenticationsupabase.auth.reauthenticate()Before password change (if Secure Password Change enabled)
Email Changesupabase.auth.updateUser({email})Changing user email (if Secure Email Change enabled)
Confirm Emailsupabase.auth.signUp()New user registration (if Confirm Email enabled)
Invite Linksupabase.auth.admin.inviteUserByEmail()Admin inviting new users
To reemphasize: Supabase specific auth emails are not triggered by persisting events to your database. Auth emails only work through Supabase API calls.

Making schema changes safely

As your application evolves, you’ll need to update your database schema. To ensure your Dreamlit workflows continue running smoothly during schema migrations, we recommend one of the following approaches:

Technical deep dive: how Dreamlit configures your database

Dreamlit’s notification architecture is optimized for the performance and robustness of your workflows. Your database is minimally instrumented accordingly. The very first time you set up a database connection, Dreamlit creates a dreamlit schema (if it doesn’t already exist) and an event_log table inside it. Then, whenever you publish a workflow containing a Database Trigger step, Dreamlit creates:
  1. A table trigger on the specified table, which activates whenever a relevant insert or update occurs.
  2. A trigger function in the dreamlit schema that runs when the trigger fires, which simply logs a row to the dreamlit.event_log table indicating that a new event has occurred.
From there, Dreamlit efficiently monitors the dreamlit.event_log table, and whenever it sees a new row matching an active trigger, it launches the associated workflow.
In addition to the event_log table, Dreamlit may create other small housekeeping tables in the dreamlit schema. It never writes to your existing tables (beyond installing triggers).

Uninstalling Dreamlit

If you ever want to remove Dreamlit entirely:
  1. Unpublish all workflows that depend on your Supabase connection (this removes triggers/functions).
  2. Delete the connection in the Dreamlit dashboard.
  3. (Optional) Drop the dreamlit schema to remove all Dreamlit-managed objects.
That’s it! By connecting Supabase to Dreamlit, you can create powerful, real-time workflows triggered by database changes — without writing any custom code in your application.