Salesforce to Snowflake integration for analytics-ready CRM data
The Salesforce to Snowflake integration from Adapters loads accounts, contacts, opportunities, and activity from Salesforce into Snowflake tables on an incremental schedule, so your warehouse stays analytics-ready without draining Salesforce API limits. Field mapping is no-code, so try it against sample records in the live demo.
No credit card required.
Field mapping auto-plugged · tap a port to rewire
Plug a source port into
Transform on this cable
JSON in
JSON out
5 sample records ready
Last updated September 2026
What running Salesforce to Snowflake by hand costs you
- Full table pulls burn Salesforce API calls and hit daily governor limits during business hours.
- Hand-built ELT scripts break the moment someone adds a custom field or renames an object.
- Stale CRM data in the warehouse means dashboards and models report last week, not today.
The field mapping, out of the box
These cables are pre-wired when you pick the pair. Rewire any of them, or add your own, in the same visual data mapping tool you use for every adapter.
Input / SALESFORCE
Output / SNOWFLAKE
Transforms included
Incremental loads use the Salesforce SystemModstamp watermark so each run only moves changed rows; Salesforce field types cast to Snowflake column types, currency stays numeric, and timestamps land in UTC so downstream dbt models and BI tools read a clean, deduplicated table.
Salesforce to Snowflake: the API allocations, the type mapping, and the identifiers that change case on arrival
Loading Salesforce into Snowflake is rarely hard because of the transfer. It is hard because Salesforce meters what you are allowed to read, Snowflake silently reshapes what you write, and the object model you extract does not match the one your analysts think exists. Below: the allocations that decide how the extract has to be written, the type conversions worth setting explicitly, and the failure modes that only appear in month two. Salesforce developer limits and Snowflake documentation read 19 August 2026.
Salesforce meters the read, so the extract shape decides the cost
Daily API calls run to 100,000 plus 1,000 per Salesforce license on Enterprise and Professional, 100,000 plus 5,000 per license on Unlimited and Performance, 15,000 on Developer Edition and 5,000,000 on a full sandbox. That pool is shared across every integration in the org, so a connector that issues one REST call per record is spending an allocation that four other systems also need. Bulk API 2.0 ingests and extracts up to 150,000,000 records per 24 hours, with a job payload capped at 150 MB of base64-encoded CSV, 400,000 characters per record and 131,072 per field. The quieter ceiling is concurrency: only 25 requests lasting 20 seconds or longer can run at once in production, and 5 in a Developer or trial org. A vendor that parallelizes long SOQL queries can exhaust that while the daily number still looks healthy.
Identifiers change case on arrival, and it breaks the first dbt model
Snowflake folds unquoted identifiers to UPPERCASE. Salesforce API names arrive in mixed case, often with a trailing __c on custom fields. So Annual_Revenue__c becomes ANNUAL_REVENUE__C unless the loader quotes it, and if the loader does quote it, every query against that column must quote it too, forever. Pick one convention before the first load rather than after twelve models depend on the other one. The same applies to object names: Opportunity and OPPORTUNITY are the same table only if nothing quoted them on the way in.
The type conversions worth setting explicitly
Three matter. Snowflake NUMBER defaults to precision 38, scale 0, so a currency column that lands on the default loses its cents without an error: define NUMBER(18,2) for amounts. Salesforce datetimes are UTC and Snowflake TIMESTAMP_NTZ carries no zone at all, so if any reporting is done in a local fiscal calendar, store TIMESTAMP_TZ or keep the UTC discipline documented. And long text: Snowflake VARCHAR defaults to 16 MB and maxes at 128 MB, which is generous, but Salesforce caps a single field at 131,072 characters, so truncation on this route comes from the source side, not the destination.
Formula fields, rollups and deletes are where the numbers diverge
Formula and rollup summary fields are computed in Salesforce at read time and have no stored history. Extract them and you get today value attached to a row that may be six months old, which makes any point-in-time analysis wrong in a way nobody notices until a board slide. Recompute them in Snowflake from the underlying fields instead. Deletes are the second divergence: a record moved to the Salesforce Recycle Bin disappears from a standard query but stays in the warehouse unless the extract explicitly requests deleted records. If your Opportunity count in Snowflake drifts above Salesforce over months, that is why.
File sizing on the Snowflake side, and when to use Snowpipe instead
Snowflake recommends staged files of 100 to 250 MB compressed, and explicitly does not recommend files of 100 GB or more. The default COPY timeout is 24 hours, which sounds generous until a single oversized file spends all of it. For a large Salesforce backfill, split the extract rather than submitting one enormous file. If several jobs need to load into the same table concurrently, Snowflake recommends Snowpipe over parallel COPY, and Snowpipe lands data within about a minute of the notification, which is faster than most Salesforce syncs need to be anyway.
How Adapters handles this lane, and where it does not fit
Adapters runs scheduled Salesforce extracts through the bulk path rather than per-record calls, maps standard and custom objects with explicit type control, keeps identifier casing consistent, and reports per-record errors with the source values attached, on a flat monthly price from $49 rather than a row meter. That fits teams with a defined set of objects to keep current in Snowflake. It is the wrong pick if you need sub-minute freshness, if the project also needs forty other SaaS sources where catalog breadth wins, or if you want Spark-scale transformation in flight rather than modeling in SQL afterwards. Before you shortlist anything, the org-wide allocations are tabled on Salesforce integration tools, and the account the connector authenticates as should be a dedicated Salesforce Integration user, not a person.
How it goes live
Three steps, minutes end to end, covered by flat data integration pricing from $49 a month.
STEP 01
Pick the pair
Connect Salesforce and Snowflake with scoped credentials. About a minute each.
STEP 02
Confirm the mapping
The cables above are pre-wired. Adjust any field, preview the transform on sample records, done.
STEP 03
Schedule the sync
Hourly down to every minute, with retries, alerting, and a full log on every run.
Prefer to understand the moving parts first? Our long-form guide to syncing Salesforce to Snowflake covers the field-by-field detail, the failure cases, and what changes at volume.
Salesforce to Snowflake sync: common questions
How do I connect Salesforce to Snowflake?
Authenticate Salesforce with OAuth, pick the objects you need (Account, Contact, Opportunity, Task), map each field to a Snowflake column, and schedule an incremental run. The connector reads the SystemModstamp watermark so every run after the first backfill moves only changed rows, which keeps you well inside the daily API allowance.
What is Salesforce to Snowflake zero copy?
Zero copy means querying Salesforce data in Snowflake without physically loading it, using Salesforce Data Cloud sharing rather than a pipeline. It removes the copy but requires Data Cloud licensing and gives you Salesforce's model, not yours. A connector physically lands tables you control and can reshape, which is usually the cheaper route for a normal CRM warehouse.
Does loading Salesforce into Snowflake use up API limits?
It does, which is why the load pattern matters. Salesforce enforces a rolling 24 hour API request allowance per org, and a full nightly pull of every object burns through it fast. Incremental loads keyed on SystemModstamp typically cut request volume by an order of magnitude versus repeated full extracts.
How often should Salesforce sync to Snowflake?
Hourly covers most reporting and revenue models. Go to fifteen minutes only if an operational process reads the warehouse copy, and stay at daily for objects nobody looks at intraday. Sync frequency is the main lever on both API consumption and Snowflake credit spend, so set it per object rather than globally.
How does the Salesforce to Snowflake sync work?
The Salesforce to Snowflake integration from Adapters loads accounts, contacts, opportunities, and activity from Salesforce into Snowflake tables on an incremental schedule, so your warehouse stays analytics-ready without draining Salesforce API limits. Field mapping is no-code, so try it against sample records in the live demo.
Is there a prebuilt Salesforce connector for Snowflake?
Yes. This Salesforce to Snowflake connector ships prebuilt: the field mapping is wired the moment you pick the pair, transforms are included, and you can try it against sample records in the live demo. No code or engineering sprint required.
How much does the Salesforce Snowflake integration cost?
Pricing is flat and monthly: Starter at $49, Growth at $149, Scale at $399. Every plan includes this pair, visual field mapping, and per-record logs. There are no per-task or per-row fees, so the bill stays the same as volume grows.
How often can Adapters sync Salesforce to Snowflake?
Hourly on Starter, every 5 minutes on Growth, and down to every minute on Scale. Failed records retry automatically with backoff, and alerting plus a full per-record log come standard on every run.
Do I need to write code to connect Salesforce and Snowflake?
No. Fields are auto-mapped the moment you pick the pair, and you can rewire any mapping visually before the first sync. Incremental loads use the Salesforce SystemModstamp watermark so each run only moves changed rows; Salesforce field types cast to Snowflake column types, currency stays numeric, and timestamps land in UTC so downstream dbt models and BI tools read a clean, deduplicated table.
More pairs from the API connector library
Browse the full api connector library, or request a pair you do not see.
Salesforce and Snowflake, finally in agreement
Map the pair once and let it sync on schedule. Flat price from $49 a month, no per-task fees.
No credit card required.