Skip to main content

Profiles Sync Export

A Profiles Sync export builds a one-row-per-user record from your data warehouse and writes it into the destination you control — a BigQuery table, or profiles/contacts in Klaviyo or Brevo. Unlike audience and signal syncs, it does not push to an ad platform.

How it works​

On each run, BPP:

  1. Applies your filters to find the users to include. If there are no filters, it includes every user that has data in the tables you're exporting from.
  2. Reads your keys and attributes for those users from your user-level tables (user tables, AI model results/views, and summary tables).
  3. Combines everything into one row per user, matching each attribute to the right user — keys first, then attributes, renamed to the destination column names you chose.
  4. Writes the result to your chosen destination — replacing the BigQuery table, or upserting profiles/contacts (and list membership) into Klaviyo or Brevo.
  5. Records the run (rows written, timestamp, status) in Sync History.

How each run affects the destination​

This differs by destination type:

  • BigQuery — each run completely replaces the destination table with the current export.
    • The table name is stable — downstream systems always point at the same table and get the latest data.
    • Rows removed by a filter change (or users who no longer qualify) disappear from the table on the next run.
    • The table is not appended to over time. If you need history, snapshot the table yourself downstream.
  • Klaviyo / Brevo — each run only upserts matched users as profiles/contacts, optionally adding them to a list.
    • Users who no longer match your filters are left untouched — their profile/contact and list membership are not removed.
    • There is no equivalent of the BigQuery "full replacement" for these destinations; removal has to be done directly in Klaviyo or Brevo. See the Klaviyo and Brevo destination pages.

What's included​

  • One row per matched user. A user who matches your filters but is missing a particular attribute still appears in the table — that attribute is simply empty (null) for them.
  • Only user-level data. Keys and attributes come from tables with one row per user. Event-table fields cannot be exported. See What can be exported.
  • The columns you named. Each key and attribute uses the destination name you set when configuring the sync.

Scheduling​

Profiles Syncs run daily by default. The sync must be in Ready status (enabled) for scheduled runs. You can also trigger a run on demand with Run Sync from the sync's detail page.

Empty results​

If your filters match no users, there is nothing to export and the run completes successfully without writing rows. This is a normal outcome, not an error — check your filter conditions if you expected data.

Partial syncs​

If some rows fail to write while others succeed, the sync moves to Partial Complete status. The rows that wrote successfully remain in the table. Review the status message for the cause.