Reverse ETL
Push warehouse data back to your tools.
Write a SQL query, map the result to a destination, and sync it — upsert into Salesforce, upload offline conversions to Google Ads, or write transformed rows into another database. Dry-run every sync before it touches production.
Destinations
Three places your data actually needs to go.
Not 200 connectors you will never open. The destinations RevOps and growth teams push warehouse data to every week.
Salesforce
Upsert query results directly into Salesforce objects using the Bulk API v2 — the same API Salesforce recommends for high-volume loads, not a REST call per row.
- Map any column in your query result to a field on the target object (leads, contacts, opportunities, or a custom object).
- Set an external ID field — Fastero matches existing records on that field and upserts, so re-running a sync never creates duplicates.
- Batches are chunked automatically (default 5,000 rows per batch, configurable up to 10,000) and submitted through Bulk API v2 job endpoints.
- Failed rows are recorded per-run with their external ID, so you can retry just the failures instead of re-running the whole sync.
Google Ads
Upload offline conversions so ad spend gets credit for revenue that happened outside the browser — a closed deal, an activated account, a completed onboarding step.
- Push conversion events (with GCLID or enhanced conversion identifiers) back to the Google Ads account tied to the click that drove the signup.
- Runs on the same OAuth-based Google Ads API connection used for reporting — no separate credential to manage.
- Pair it with a query that joins your CRM/product data to ad click IDs, so "closed-won" or "activated" becomes a conversion action Google Ads can bid toward.
Postgres, Redshift, MySQL, MSSQL
Write transformed query results into a table in a different warehouse — useful for landing a cleaned dataset in an operational database an app or BI tool already reads from.
- If the destination table does not exist, Fastero infers a schema from the result set (string, number, boolean, date) and creates it.
- Choose replace (truncate and reload) or append, and rows are written in batches so large result sets do not hold a single oversized transaction.
- Works with any connection already configured for querying — the same credential set can be a source for one query and a destination for another.
How it works
From query to production sync in six steps.
Reverse ETL is not a separate product bolted onto Fastero. It uses the same connections, the same NL2SQL, and the same trigger system you already use for reporting.
Connect a source
Point Fastero at the warehouse or database that holds the data you want to push out — the same connection you already use for NL2SQL and reports.
Write the SQL query
Write it by hand or generate it with NL2SQL. The query result — whatever columns and rows it returns — is what gets synced.
Map columns to the destination
For Salesforce, map columns to object fields and choose the external ID field. For a warehouse, confirm or adjust the inferred column types. For Google Ads, map to conversion identifiers.
Set a trigger
Run it on a cron schedule, or fire it when the source data changes. A "sync new opportunities to Salesforce every 15 minutes" trigger takes one config screen.
Dry-run it
Cap the run at a small test limit (up to 1,000 rows) and see exactly what would be written — sample rows included — without touching the destination. Catch a bad mapping before it hits Salesforce.
Deploy
Turn off dry-run and let the trigger run for real. Every run is logged with row counts and a sample of failures, and failed rows can be retried without re-running the full sync.
Honest positioning
Why not just use a dedicated reverse ETL tool?
Sometimes you should. Here is the honest tradeoff, not a pitch for why Fastero is right for everyone.
Census and Hightouch are built for 200+ destinations
If your team pushes data into 15 different SaaS tools — Salesforce, HubSpot, Marketo, Iterable, Braze, and a dozen more — a dedicated reverse ETL platform earns its keep. That is genuinely what those tools are for.
Most teams need 2-3
In practice, most RevOps and growth teams push data to Salesforce, maybe Google Ads, and occasionally a second database. Paying $350–$800/mo for a platform built to support 200 connectors when you use 2 is like renting a warehouse to store a bicycle.
One workspace instead of two
Census and Hightouch sync from a warehouse — they do not run the queries or generate the SQL. You still need NL2SQL or a hand-written query somewhere else, then a second tool to move the result. Fastero writes the query, dry-runs the sync, and pushes it in one place.
When to actually switch
If your destination list grows past what Fastero supports — or you need field-level transformation logic beyond a query and a column map — Census or Hightouch is the right next step. We would rather tell you that than pretend we have 200 connectors.
FAQ
Frequently asked questions.
Does Fastero support upsert or only insert for Salesforce?
Upsert. You set an external ID field on the target object, and Fastero matches existing records on that field through the Bulk API v2. Re-running the same sync updates matched records instead of creating duplicates. A delete mode is also available for removing records by external ID.
What happens if some rows fail to sync?
The run completes for the rows that succeed, and up to 10 sample errors plus the full list of failed external IDs are recorded against that run. You can retry just the failed rows — Fastero re-pulls the source query, filters to the failed keys, and re-submits only those.
Can I test a sync before it touches production data?
Yes. Dry-run mode caps the sync at a test limit (up to 1,000 rows), shows you a sample of exactly what would be written, and reports the total row count considered — without calling the destination API at all. Turn dry-run off when the mapping looks right.
How is this different from Census or Hightouch?
Census and Hightouch are dedicated reverse ETL platforms with 200+ destination connectors, typically priced $350–$800/mo. Fastero supports Salesforce, Google Ads, and warehouse-to-warehouse writes, integrated with the same NL2SQL and trigger system you already use for reporting. If you need more than a handful of destinations, a dedicated platform is the better fit — see our comparisons below.
Can a reverse ETL sync be one step in a larger workflow?
Yes. Reverse ETL runs can be chained inside a workflow — for example, run a query, sync matched rows to Salesforce, then post a Slack summary of the run, all as steps in one trigger-fired workflow.
Stop exporting CSVs to update Salesforce by hand.
Write the query, map the fields, dry-run it, and let a trigger handle the rest. Free to start — no credit card required.