Skip to main content
New Introducing Mosaic Learn more
Data Warehouse integration

BigQuery + Conversion

Segment and personalize from BigQuery without filing engineering tickets.

BigQuery
Into Conversion
Conversion

How Conversion works with BigQuery

Conversion connects to BigQuery through a dedicated service account and runs the SQL queries you write on a schedule you choose. Each query's rows become contacts, custom objects related to contacts, or events that can trigger workflows and filter audiences. Access is limited to the datasets you share with the service account, and Conversion never writes to your project.

What you can do

Standard SQL on shared datasets

Query any dataset you share with the service account, join across datasets with fully qualified table names, and alias columns with AS to match Conversion field keys.

Objects with relationships

Sync products, subscriptions, or usage as custom objects tied to contacts, so audiences, workflows, and email personalization can reference a plan or product directly.

Events for workflows and audiences

Synced events appear on each contact's timeline, where they can start workflows and define who belongs in an audience.

Lean, incremental scans

BigQuery bills for the data a query scans. Filter on last_sync_time with TIMESTAMP_SECONDS() and select only the columns you need, so each run reads just the rows that changed.

What syncs

Data Direction Details
Contacts Into Conversion Created or updated from query rows, matched on userId when present and on email otherwise. Creating a contact requires an email.
Custom objects Into Conversion Any custom object type you create in Conversion, with relationship fields to contacts built in the same query using JSON_OBJECT.
Events Into Conversion Rows with an event name and timestamp land on the contact timeline. An eventId keeps re-synced rows from duplicating.

How to connect BigQuery

  1. 1 Create a dedicated Google Cloud service account with the BigQuery Job User and BigQuery User roles, and generate a JSON key for it.
  2. 2 Share each dataset you want to sync with the service account as BigQuery Data Viewer, or grant that role across the project.
  3. 3 If your project uses VPC Service Controls or IP restrictions, allow Conversion's IP addresses.
  4. 4 Under Settings > CRM & Syncing > Connections, add a BigQuery connection with your project ID and the full JSON key, then create a sync for each destination.
FAQ

BigQuery integration FAQ

Yes. Conversion connects to BigQuery through a dedicated service account and runs the SQL queries you write on a schedule you choose. Each query's rows become contacts, custom objects related to contacts, or events that can trigger workflows and filter audiences. Access is limited to the datasets you share with the service account, and Conversion never writes to your project.

BigQuery Job User and BigQuery User on the project, plus BigQuery Data Viewer on each dataset you sync. Creating the service account takes Owner, IAM Admin, or an equivalent role. Conversion only reads data and never writes to your project.

BigQuery charges for the data each sync query scans. Selecting only the columns you need, filtering on last_sync_time, and using partitioned tables keep that low. Queries that return millions of rows should run no more than once a day.

Each sync runs every 15 minutes, hourly, every 6 hours, or daily, whichever you pick. If a run is still going when the next one is due, that next run is skipped, so give large queries time to finish.

Only if your BigQuery project uses VPC Service Controls or restricts access by IP. Most projects don't, and can skip that step.

See Conversion with BigQuery

Book a demo and we'll walk through the BigQuery integration on a stack that looks like yours.