TL;DR: Audiences are the bridge between qualification and action. ICPs and Personas score records; audiences group records into actionable segments and push them to destinations. The "auto-update" part is the magic — set once, run forever.
The model
An audience is four things:
- Conditions — a filter tree over your workspace (ICP, Persona, signals, engagement, custom fields)
- Ranking — how members are ordered inside the audience
- Enrichment scope — which contact channels to enrich for members (email, phone, LinkedIn)
- Destinations — where the audience pushes (HubSpot, Salesforce, Apollo, Smartlead, webhook)
The first time you save an audience, it scans the entire workspace and populates with matching records. From then on, the conditions are evaluated continuously — every time a new signal fires or a record gets re-qualified, the audience updates.
Auto-update behavior
Three kinds of updates happen automatically:
- Add — a record newly matches the conditions (e.g. a new signal fires that pushes them over a score threshold). They become an audience member; if a destination is connected, they sync.
- Remove — a record stops matching (e.g. a signal expires and they drop below the recency window). They leave the audience; if the destination supports removal sync, they're removed there too.
- Re-rank — the ranking field changes for existing members (e.g. engagement score increases). The order updates; destinations that respect order (sequencers, prioritization queues) re-rank too.
The cadence depends on the destination:
Destination type | Sync cadence
Webhook | Real-time (on add / remove / re-rank)
HubSpot, Salesforce | Real-time (member changes propagate via API immediately)
Sequencers (Apollo, Smartlead) | Real-time for adds; removals are queued
Bulk file destinations (CSV export) | Manual or scheduled
Why audiences, not just filters
A filter is a query you run once. An audience is a query that runs continuously.
The practical difference: an audience can drive a long-running outbound sequence that adds new prospects as they qualify. A filter is a snapshot. For motion-level work — "outbound to all VPs of Marketing at Series B SaaS who replied in the last 14 days" — you want an audience.
The other practical difference: audiences track outcomes per-audience. Each row on the Audiences page shows Replied, Meetings booked, Signed up, Purchases, LTV — the actual results from members. Insights at the audience level is where you see what works and what doesn't.
How audiences relate to ICPs and Personas
An audience usually requires:
- A specific ICP match (
icp_code = "Mid-market SaaS") - A specific Persona match (
persona_code = "VP Sales"or one of a list) - A score floor on each (
icp_score >= 60 AND persona_score >= 60) - Recency constraints on signals (
any signal in last N days)
You can also build audiences that span ICPs or Personas — "all CROs across any ICP" — but they're harder to action on (different outbound messaging per ICP) so most workspaces avoid them.
Live, Paused, Draft
Each audience has a Status:
- Live — actively evaluating conditions, members updating, destinations syncing
- Paused — definition preserved, evaluation stopped; existing destination members remain but no new adds / removes propagate
- Draft — definition saved but never evaluated; useful for building complex audiences in stages
You can flip between states from the Audiences table or from the audience detail page.
What audiences are NOT
- They're not lists. A list is static; you upload it, it doesn't change. Audiences are dynamic.
- They're not segments. Some tools call dynamic groups "segments". Same concept; Unstuck uses "audience" to align with the buying-language vocabulary of GTM operators.
- They're not destination pushes. A destination is the downstream tool; the audience is the input to multiple destination syncs. One audience can push to N destinations with different field mappings.