Salesforce Reference
Salesforce database schema
Your Sequin database will contain tables for Salesforce objects like:
- Account
- Contact
- Lead
- Opportunity
- User
- Product2
We will also sync any custom objects you may have.
If you don't see your Salesforce object listed during setup, just send us a note! We can toggle on support for almost any available Salesforce object.
The syncing process
By default, we limit our sync to one request every three seconds. This means about 20 request per minute or 29,000 requests per day. We use these limits to stay well below your daily API quota. You can adjust the rate-limit you allocate to Sequin in your sync's settings.
We first backfill your database with all your Salesforce data. We're able to pull 200 records per request. This means, by default, we can process just over 200,000 records per hour. So, if your Salesforce instance contains millions of records, the backfill can take a while. We'll email you when your backfill is complete and all your data is loaded into your database.
After the initial backfill, we'll continuously poll your Salesforce instance to monitor changes. Respecting the rate limit, we'll round-robin each of the tables you've selected to sync. We're able to handle up to 200 creates and updates across your tables every three seconds. So if you're syncing five tables, we'll be able to process up to 1,000 creates and updates between those five tables every 15 seconds.
Learn more about our syncing process.
Writes
Salesforce Proxy
Sequin provisions a read-only sync of your Salesforce data. This is to promote a one-way data flow architecture.
To mutate your data, you write to the Salesforce API through Sequin. Sequin applies those mutations to your Salesforce instance and your Sequin database at the same time. This means subsequent reads by your code or a SQL client will reflect the update data:

With this architecture, your code is structured so that you're using SQL for reads but API calls for writes. This gives you the best of both worlds and ensures your database stays in sync with your Salesforce instance.
How to write through the proxy
To use the Sequin Proxy, you craft HTTP requests to the Salesforce API like you normally would. Except, you prepend proxy.sequin.io/{sync_id}
to the beginning of the hostname.
For example, here's a request that creates a new subscription:
curl https://proxy.sequin.io/{sync_id}/YourDomainName.my.salesforce.com/services/data/v57.0/sobjects/Accounts
-H "Authorization: Bearer {access_token}"
Note the request looks exactly the same as what you'd find in the Salesforce API docs, except for the URL. The base of the URL is https://proxy.sequin.io/{sync_id}/MyDomainName.my.salesforce.com/services/data/
instead of https://MyDomainName.my.salesforce.com/services/data/
. This sends the request through the Sequin Proxy so that mutations are applied immediately to your Postgres database at the same time as your Salesforce instance.
The proxy works with every Salesforce API procedure available: list requests (GET), updates (PATCH), creates (POST), and deletes (DELETE). All fields will be written to your database immediately.
Security
Your Sequin database will contain all your Salesforce data - which includes PII and sensitive information. We take the security of that data seriously.
Please read about our full security practices. Here is a short synopsis of how we keep your Salesforce data secure:
- You supply us with an API key which is encrypted at rest. The Sequin application database is only accessible through a bastion host.
- We only access customer databases by request or to diagnose a sync issue.
- Sequin workers first backfill your database with all your Salesforce data. During this backfill, Sequin will receive events as they happen to keep your data in-sync.
- Data flows directly from Salesforce, through Sequin workers, to your database. We don't cache or store Salesforce data anywhere else.
- We use Sentry and Datadog for error monitoring. Sometimes errors Datadog catches will contain API response data. But these are minimized and our logs in Datadog have a shelf-life of 30 days.
- By default, Sequin provisions a private database and a database user for you on a shared RDS instance. While Sequin shared instances are secure, we can also sync to a database you own for greater peace of mind.