Skip to main content

👋 Welcome

We're Sequin. Sequin lets you integrate without using bespoke, limited HTTP APIs. Instead, integrate with third-party platforms like Salesforce or Stripe using your Postgres database.

Select the objects and fields you want to work with, like Salesforce Contacts or Stripe Subscriptions. Then specify how you want these objects and fields to translate into tables and columns in your Postgres database.

Sequin will setup a real-time, persistent sync to keep the data between Postgres and the API up-to-date. When changes are made in the API, they're synced to Postgres. When changes are made in Postgres, they're synced to the API.

Only Salesforce and HubSpot sync bidirectionally. For our other platforms, data flows one-way from the API to your database. Bidirectional sync is coming to all platforms soon.

At the moment, we support HubSpot, Salesforce, Airtable, Close, Stripe, and Zoho CRM with more platforms on the way.

Getting started

Most developers are up and querying their data in about 2 minutes. See our platform-specific guides to get a step-by-step walk-through:

How it works

Connect

Connect Sequin to the API you want to sync with using OAuth or API keys. Then connect Sequin to your Postgres database.

Map

Map the objects and fields from the API you're working with to tables and columns in your database.

Backfill

After you setup your sync, Sequin will first backfill all the objects from the API you're syncing to your database. For example, say you're syncing Salesforce Contacts. During the backfill all the Contacts present in Salesforce will be loaded into the table you specified (e.g. contact).

Real-time sync

After the backfill, Sequin runs a real-time sync process to ensure the data in the API and your database is kept in-sync.

Every API has a rate limit or quota that specifies how many requests you can make to the API in a given interval. Sequin retrieves data from APIs at a frequency that respects this rate limit. By default, we use a fraction of your total quota. The amount of your quota we use is configurable on the Sequin console.

The speed of your sync from the API to your database is assessed as the "max lag time" of any given change. That is: when a change is made in the API, what is the maximum amount of time you'd expect to wait before seeing that change reflected in your database?

Max lag time is subject to a few factors:

  • the API you're syncing with
  • the rate limit you set Sequin to consume

For all syncs aside from Airtable, the max lag time is rarely above one minute. For example, by default we make one request every three seconds for Salesforce syncs. Assume you kept this default and you're syncing five Salesforce objects. It will take Sequin about 15 seconds to check each object endpoint for changes. So, the max lag time for this hypothetical sync is 15 seconds.

For Airtable, lag time of the sync depends on (1) how big your base is and (2) how much of your base's API quota we're using. The lag time of your Airtable database is shown in your Sequin console. By default, we use 3 out of 5 of your alloted requests per second, but you can configure this in your console. (More about how our sync works for Airtable on our blog.)

Syncing data from your database to the API is a little different. By default, changes are propagated within a few seconds. Writes to the API share quota with reads from the API. If your application is write-heavy, consider configuring batching for your writes. This means Sequin will more effectively use your quota.. You can tell Sequin to wait for a batch of Y records for up to X seconds.

Postgres databases

We only sync with Postgres databases. Support for other databases coming soon. (Write us and let us know which you'd like to see!)

Separate schema

Sequin syncs to a dedicated schema in your Postgres database. A schema in Postgres is a namespace for tables. This makes it clear which tables are for your API integration. For example, if you sync Salesforce to a salesforce schema, you'd interact with your Salesforce contact table like so:

select * from salesforce.contact;

Demo databases

To get started as fast as possible, Sequin can provision you a private database on a shared AWS RDS instance. These databases have limited performance and should be considered for demonstration purposes only.

Our hosted databases are in the AWS us-west-2 region in Oregon, USA. Provisioning takes just a few seconds.

ORMs

Sequin provides you with a Postgres database that works seamlessly with the entire Postgres ecosystem - including ORMs.

You'll simply configure your ORM to connect with your Sequin database using the connection URL we provide in the Sequin console.

See it

Want to get a feel for how this all comes together? Check out this short video:

Questions and support

Our docs won't be able to cover everything, so if you have any issues, don't hesitate to reach out through Intercom on the bottom left. We'd love to hear what you're building.