Syncing Warehouse Fields

Sync customer profile attributes from your warehouse to the Personalization API for real-time filtering and personalization.

Real-time journeys process events in seconds. Querying your warehouse for each individual user is too slow for that path. Instead, sync a subset of customer fields from your warehouse to the Personalization API ahead of time. When an event arrives, GrowthLoop fetches the user's cached profile and uses those fields immediately.

This is what makes it possible to combine live event data with warehouse-backed attributes in the same journey — for example, filtering on opted_in from your customers table while reacting to a purchase event in real time.

Why sync warehouse fields?

Keep your warehouse as the source of truth

Data from your warehouse is often more trustworthy than data from a real-time event - When a field is present in both the realtime message payload, and a synced warehouse field, GrowthLoop will prioritize the synced warehouse field.

Augment your real-time events with rich 1st-party data

A real-time message often lacks important information about a customer that is present in your warehouse. When you sync fields from your warehouse to the personalization API, that data can be inserted into templates when sending real-time messages.

Example: Sync customers.first_name, customers.last_name, and customers.opted_in. In a real-time journey triggered by a purchase event, use a criteria node to route only opted-in customers, then send a composable email personalized with their first and last name.


Prerequisites

  1. A Personalization API destination configured in GrowthLoop.
  2. A real-time event registered and mapped to your dataset group's primary key.
  3. A dataset group that includes your primary customers table.

For general Personalization API setup (destination creation, API keys), see Personalization Getting Started.


Create a sync

  1. Create a Sync from your warehouse source to the Personalization API destination.
  2. Select your primary customers table (or the entity table that matches your dataset group primary key).
  3. Choose the fields to sync — only include attributes you need for real-time filtering or personalization. A smaller field set keeps profiles lean.
  1. Run or schedule the sync so profiles are kept up to date.
📘

Note

Synced fields reflect the last successful sync run. For attributes that must be current within the same session, you can also write values from the journey itself via the Personalization API destination or same-session personalization.


Using synced fields in journeys

Once fields are synced, they appear in the journey builder when you configure:

  • Criteria nodes — Filter users on synced attributes (e.g., opted_in == true) alongside event payload fields.
  • Composable destination nodes — Map synced fields to email template variables and recipient configuration.

When a criteria or destination node references synced warehouse fields, GrowthLoop fetches the user's profile from the Personalization API as part of real-time routing — before evaluating the filter or sending the message.


Next steps