How Conversion works with Fivetran
Conversion connects to Fivetran through an open-source connector that exports your contacts, email engagement events, and custom events into your warehouse. The connector runs in your own Fivetran account, reads from the Conversion public API export endpoints, and upserts each table by primary key on the schedule Fivetran manages. The export endpoints are not enabled by default, so ask the Conversion team to turn them on before you deploy.
What you can do
Open source under Apache-2.0
Deploy the connector as is, read exactly how it works, or fork it to add columns, change the page size, or tune retries.
Only the tables you want
A single tables setting picks groups or individual tables. Left unset, it syncs contacts and every email table, while custom events stay opt-in.
New fields arrive as columns
Contact fields are left undeclared so Fivetran infers them, and a field you add in Conversion shows up as a new column on the next sync.
Incremental and resumable
Each table keeps its own cursor and checkpoints after every page, so a sync resumes where it stopped and re-emitted rows update in place.
What syncs
| Data | Direction | Details |
|---|---|---|
| Contacts | Out of Conversion | One row per contact, with every contact field flattened into its own column. |
| Email engagement events | Out of Conversion | Nine tables, one per event type, covering sends, deliveries, opens, clicks, hard and soft bounces, spam complaints, and full or topic unsubscribes. |
| Custom events | Out of Conversion | Opt-in. One row per event with its name, contact, timestamps, and JSON payload. |
How to connect Fivetran
- 1 Ask the Conversion team to enable the export endpoints, then create an API key under Settings > API Keys.
- 2 Clone the open-source connector from github.com/tapp-ai/fivetran-connector and install it with uv.
- 3 Copy configuration.example.json to configuration.json, add your API key, and optionally set tables and custom_events_start.
- 4 Test with uv run fivetran debug, which runs the sync against a local DuckDB warehouse so you can inspect the tables and confirm cursors advance.
- 5 Deploy with uv run fivetran deploy, your Fivetran deploy key, and your destination. Fivetran then manages the sync schedule.