Audience Syncs
Audience syncs are the activation layer of Segment. 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 an Audience Sync?
An audience sync connects an audience to a destination and manages the flow of membership changes over time. Unlike model-based syncs that map arbitrary columns, audience syncs are purpose-built for managing membership lists — tracking which customers enter and exit the audience on each evaluation.
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ │ │ │ │ │
│ Audience │────▶│ Audience │────▶│ Destination │
│ (Membership │ │ Sync │ │ (Ad Platform,│
│ List) │ │ (Diff & Send)│ │ CRM, etc.) │
│ │ │ │ │ │
└──────────────┘ └──────────────┘ └──────────────┘On each sync run, SignalSmith 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
SignalSmith 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 sync runs fast and efficient.
Sync Modes
Three sync modes control how membership changes are handled:
| Mode | Adds | Removes | Use Case |
|---|---|---|---|
| Mirror | Yes | Yes | Keep the destination in exact sync with the audience |
| Additive | Yes | No | Only add new members, never remove |
| Subtractive | No | Yes | Only 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 audience sync creation.
Scheduling
Audience syncs run on a schedule, just like model-based syncs. The schedule determines how frequently membership changes are sent to the destination. Available options:
| Schedule | Description |
|---|---|
| Manual | Only runs when you trigger it |
| Every 15 minutes | Near-real-time activation |
| Hourly | Frequent activation |
| Daily | Standard activation cadence |
| Weekly | Low-frequency activation |
| Custom Cron | Fine-grained scheduling |
The audience 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.
Audience Sync Lifecycle
1. Create
Create an audience 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 an audience 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 audience syncs
GET /api/v1/audience-syncs
# Get a single audience sync
GET /api/v1/audience-syncs/{id}
# Create an audience sync
POST /api/v1/audience-syncs
# Update an audience sync
PUT /api/v1/audience-syncs/{id}
# Delete an audience 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}/runsNext Steps
- Creating an Audience Sync — Step-by-step guide
- Sync Modes — Mirror, additive, and subtractive modes explained
- Destinations — Available destination connectors