Prepare for the PgBouncer and IPv4 deprecations on 26th January 2024

Learn more



Bracket syncs Supabase with SaaS tools like Salesforce, Hubspot, Airtable, G-Sheets and more. With automatic 2-way data syncs, Bracket enables business teams to read & write to their Supabase database without ever leaving their SaaS tool of choice.

  • Sync Supabase and Salesforce in real-time so data in your user-facing app is always up to date
  • Spin up new Postgres instances in Supabase based on the data already living in Hubspot
  • Turn Airtable / G-Sheets into a UI for your Supabase database

Individuals who aren’t given access to the backend database can now have primary contact with data that is relevant to them while still keeping controls on protection and permissions over data.

No more building brittle data pipelines, cobbling together multiple ETL solutions, or hacking together internal tools.

Just add your Supabase credentials, connect your SaaS tool, map the fields between Supabase and your SaaS tool, and start syncing!


This guide explains how to set up a sync between your Supabase database and tools like Salesforce, Hubspot, Google Sheets, Airtable, or Notion using Bracket — a two-way data syncing tool.

With customizable two-way and one-way syncs, Bracket enables business teams to read from & write to their Supabase database without ever leaving a spreadsheet or CRM. If you don’t have a Bracket account, you can create one here.

This guide assumes you have a Supabase account and database. You do not need existing tables in Supabase if you are replicating data from a SaaS tool into Supabase. Otherwise, an existing table in Supabase is required.

We’ll go through an example using Supabase and Airtable.

Step 1: Connect Bracket to Supabase

To connect Supabase to Bracket, you'll first need to pull the credentials for your Supabase database:

  1. In the Supabase dashboard, go to the settings page using the gear icon on the bottom left, and open up your Database settings. In the Connection parameters section, you'll find the credentials required to connect to Bracket.

    Connection parameters for Bracket

  2. On the Bracket web app, decide whether you want Supabase as your primary or secondary source. You should choose Supabase as your primary source if 1) you’re syncing one-way from Supabase, or 2) you’re syncing two ways, but want edits made in Supabase to win any merge conflicts with the secondary source. For the rest of this example, we’ll use the Supabase database as the primary source.

    Choose new source

  3. Choose Postgres as your source in the dropdown

    Connect Postgres

  4. Use the credentials you found in the Supabase dashboard under Database settings to fill out this section in the Bracket web app

    Select Postgres data

  5. Either select a full table or write a SQL query. Note that regardless of which option you choose, you must have a primary key with unique constraints.

Step 2: Connect Bracket to your Secondary Source

  1. Select the Secondary Source and use the OAuth flow to grant limited and secure syncing access to your Airtable base, Notion database, or Google Sheet. For this example, we’ll assume an Airtable base.
  2. Select an existing Airtable table to sync, or generate a table from scratch using an existing Postgres table.

Step 3: Map fields and configure the sync

  1. Choose the direction you want data to be syncing (one-way vs. two-way)

  2. Map each Supabase field to each Airtable field.

    1. Each field can only be mapped to one field in the other source
    2. You don’t need to sync all fields over for a sync to work

    Map fields

  3. Name your sync and set the sync frequency. After that, you’re ready to start syncing!

Step 4: Get syncing

  1. Click Test Run to ensure that Supabase and Airtable are connected to each other via Bracket. Note: this doesn’t sync data, it only tests that they can connect to each other properly

  2. Click Run Once to get data synced over for the first time. If there are errors, you can view them in the Run History section by clicking the errors link

  3. If there are no errors, go ahead and turn on the sync by clicking the Active/Inactive toggle. Once the toggle is on, the Run history, Field mapping, and Advanced sections cannot be clicked or edited. In order to interact or make changes to these sections, first turn the sync toggle off

    Sync overview


  1. If you start with data in Supabase, you can auto-generate an Airtable table with the same fields and easily sync data between the two. You can also do the reverse if Airtable is your primary source!
  2. If you generate a Supabase table from an existing Airtable, you can find it in the Table Editor on the Supabase dashboard.


If you want to limit Bracket’s permissions to a specific role within Supabase, the roles must meet the following minimum RLS permissions:

  1. If syncing one way from Supabase: SELECT permissions on all tables synced with Bracket
  2. If syncing one way to Supabase or syncing two ways with deletes disabled: SELECT, INSERT, and UPDATE permissions on all tables synced with Bracket
  3. If syncing one way to Supabase or syncing two ways with deletes enabled: ALL permissions on all tables synced with Bracket