Skip to Content
ActivationSyncsOverview

Syncs

Syncs are the activation layer of the platform. They take an audience — a segment of customers defined by filter conditions — and send the membership list to a destination like an ad platform, CRM, email tool, or data warehouse.

What Is a Sync?

A sync connects an audience to a destination and manages the flow of membership changes over time. Unlike reverse ETL syncs that map arbitrary columns, syncs are purpose-built for managing membership lists — tracking which customers enter and exit the audience on each evaluation.

Audience sync data flow

On each sync run, Zeotap compares the current audience membership to the previous membership and determines:

  • Adds — Entities that newly entered the audience since the last sync
  • Removes — Entities that left the audience since the last sync
  • Updates — Entities whose synced field values changed (if sending additional fields beyond the entity key)

How these changes are propagated to the destination depends on the sync mode.

Key Concepts

Membership Diffing

Zeotap maintains a snapshot of the audience membership after each sync run. On the next run, it compares the current membership to the snapshot to compute the diff. This means only the changes are sent to the destination, not the entire membership list — keeping syncs fast and efficient.

Sync Modes

Three sync modes control how membership changes are handled:

ModeAddsRemovesUse Case
MirrorYesYesKeep the destination in exact sync with the audience
AdditiveYesNoOnly add new members, never remove
SubtractiveNoYesOnly remove members who no longer qualify

Field Mapping

Beyond the entity key, you can map additional fields (traits and attributes) to send to the destination. For example, you might sync a “High-Value Customers” audience to a CRM and include lifetime_value, email, and plan_type as additional fields.

Field mappings are configured during sync creation.

Scheduling

Syncs run on a schedule, just like reverse ETL syncs. The schedule determines how frequently membership changes are sent to the destination. Available options:

ScheduleDescription
ManualOnly runs when you trigger it
Every 15 minutesNear-real-time activation
HourlyFrequent activation
DailyStandard activation cadence
WeeklyLow-frequency activation
Custom CronFine-grained scheduling

The sync schedule should be the same as or slower than the audience evaluation schedule. There’s no benefit to syncing every hour if the audience is only evaluated once a day.

Sync Lifecycle

1. Create

Create a sync by selecting an audience, a destination, a sync mode, and field mappings.

2. Initial Sync

The first sync run sends the full current membership to the destination (all members are treated as adds). No diff is computed for the initial run.

3. Incremental Syncs

Subsequent runs compute the membership diff and send only the changes. The sync mode determines which types of changes (adds, removes, or both) are propagated.

4. Monitoring

Each sync run is recorded with:

  • Status — Success, partial failure, or error
  • Rows added — Number of new members sent
  • Rows removed — Number of departed members sent
  • Rows updated — Number of members with changed field values
  • Duration — How long the sync took
  • Error details — If any rows failed, the specific errors are logged

5. Pausing and Resuming

You can pause a sync to stop scheduled runs without deleting the configuration. When resumed, the next run computes the full diff since the last successful run.

API Reference

# List syncs GET /api/v1/audience-syncs # Get a single sync GET /api/v1/audience-syncs/{id} # Create a sync POST /api/v1/audience-syncs # Update a sync PUT /api/v1/audience-syncs/{id} # Delete a sync DELETE /api/v1/audience-syncs/{id} # Trigger a manual sync run POST /api/v1/audience-syncs/{id}/trigger # Get sync run history GET /api/v1/audience-syncs/{id}/runs

Next Steps

Last updated on