ψ · SNOWFLAKE → SALESFORCE

Sync Snowflake to Salesforce automatically.

Push warehouse data to your CRM on a schedule. Visual ETL, AI field mapping, Insert/Update/Upsert modes. $299.99/yr flat — about 95% cheaper than Hightouch.

Start 14-day free trial Download on theMac App Store

macOS 15+ · Apple Silicon native · 14-day free trial · No credit card

The reverse ETL problem

Modern data teams centralize on a warehouse — Snowflake, Redshift, BigQuery. Customer signups land there. Product usage flows in. Behavioral events accumulate. The warehouse becomes the source of truth. Meanwhile, the revenue team works in Salesforce, which knows nothing about any of this until someone tells it. Reverse ETL solves this by pushing warehouse data into Salesforce on a schedule.

Why this used to cost thousands

Hightouch and Census pioneered the reverse ETL category and built sophisticated SaaS platforms with dozens of pre-built destinations, observability dashboards, and team collaboration features. They charge accordingly — usually $500 to $1,500 per month for a small team, scaling to $5,000-$20,000 per month for enterprises.

How QueryFlow does it for $299/year

QueryFlow combines a Snowflake connector (using the SQL API v2 with PAT authentication), a Salesforce connector (using OAuth 2.0 with full API access), a Visual ETL pipeline builder, and a local scheduler. The pieces that Hightouch sells as a service are all running locally on your Mac. There is no per-row pricing. There is no per-destination pricing.

Setting up your first sync

Connect Snowflake using a Programmatic Access Token generated in Snowsight. Connect Salesforce using OAuth (a one-time browser sign-in flow). Open the Pipelines panel, create a new pipeline, drag a Snowflake source card and a Salesforce destination card onto the canvas. Click the Snowflake card to write your query. Click the connecting line between source and destination — the Field Mapper opens.

AI Map handles the column matching

In the Field Mapper, click AI Map. QueryFlow matches your Snowflake columns to Salesforce fields using 25+ synonym groups. C_NAME maps to Name. C_MKTSEGMENT maps to Industry. LIFETIME_VALUE maps to AnnualRevenue. C_EMAIL_ADDRESS maps to Email. Review the suggestions and adjust if needed. Save the mapping.

Schedule the sync

Click Schedule on the pipeline. Pick Daily at 6 AM (so the data is fresh when your sales team starts their day). Pick Upsert as the load mode so existing Salesforce records get updated and new ones get created. Save. The pipeline now runs every morning, automatically, on your Mac.

When QueryFlow is enough versus when you outgrow it

QueryFlow handles small to medium reverse ETL workloads — under 100,000 records per sync, fewer than 20 active pipelines, single-developer or small-team operations. Enterprises with hundreds of syncs, complex SLA requirements, and multiple engineers will still benefit from Hightouch or Census. For everyone else, QueryFlow eliminates a major monthly bill.

Frequently asked

How do I sync Snowflake data to Salesforce?

QueryFlow supports Snowflake-to-Salesforce sync as a built-in workflow. Connect to both: Snowflake via Programmatic Access Token, Salesforce via OAuth. Write a SQL query that produces the data you want to sync. Open the Visual ETL pipeline, drag source and destination cards, use the AI Map to match columns. Schedule the pipeline to run daily.

How does this compare to Hightouch or Census?

Hightouch and Census charge $500 to $5,000+ per month. QueryFlow runs the same kind of sync locally on your Mac for $299.99 per year flat. The trade-off: Hightouch and Census have more pre-built destinations and sophisticated monitoring. For a small team, QueryFlow is dramatically cheaper.

Can I sync custom Salesforce objects?

Yes. The Salesforce connector uses the REST API with full object access via the OAuth scope full. You can read or write to any standard object (Account, Contact, Lead, Opportunity) or any custom object (your CustomObject__c).

What happens if a Snowflake row already exists in Salesforce?

Choose the load mode when configuring the destination: Insert (always create), Update (only update matching records), or Upsert (update existing or create new). Upsert is the most common choice for reverse ETL.

How long does a Snowflake-to-Salesforce sync take?

Performance depends on row count and Salesforce API rate limits. A typical sync of 10,000 contacts completes in 2-5 minutes. Very large syncs (100K+ records) may take 20-30 minutes due to API throttling. QueryFlow handles batching and retries automatically.

Cut your reverse ETL bill by 95%.

14-day free trial. Connect Snowflake and Salesforce, build your first sync, schedule it — all in under 15 minutes.

Start 14-day free trial