Segments
A Segment is a named, predicate-defined slice of your customer base — the canonical Apex noun for "this is the subset of my customers I want to target with a campaign, message, or experiment."
Bilingual bridge: Segments are how you slice your customers; we export them as Audiences when you push them to Meta or Google.
Segments replaced two older terms in May 2026:
- Audience (legacy, workspace-scope) — now stored as a workspace-scope Segment. The word "Audience" survives only as the ad-platform export bridge — when Apex pushes a Segment to Meta as a Custom Audience or to Google as a Customer Match list, that export is what Meta and Google call an Audience.
- Cohort (legacy, org-scope) — now stored as an org-scope Segment. The word "Cohort" survives only in the analytical phrase "cohort analysis" (grouping users by a shared start date).
Two scopes
| Workspace Segment | Org Segment | |
|---|---|---|
| Subject | Customers in one workspace | Customers across every workspace under an org |
| Predicate leaves | event_fired, attribute, channel_opted_in, in_segment | in_workspace, converted_in_workspace, has_partner_profile, in_segment |
| Authoring URL | /dashboard/customers/segments (org admin sees both) | /dashboard/customers/segments (org admin only) |
| Used by | Adaptive Journeys, Campaigns, Sends | Cross-workspace reporting, org-level activation |
A Segment can reference another Segment via the in_segment predicate leaf (the renamed-from-in_cohort leaf). Segments compose; they're not flat lists.
Two kinds
- Rules-based — membership is computed on demand by evaluating the predicate against live event data. The Segment's
estimatedSizeis recomputed by the resolver and freshness is recorded. - Static — membership is an explicit list of
subjectIds. Use static Segments to freeze a moment-in-time roster (e.g. "everyone who bought during Black Friday 2026") that won't drift as customers gain or lose attributes.
What predicates can express
A Segment predicate is a tree of clauses:
event_fired— "did this customer firepurchasein the last 30 days?" (atLeastcount + window)event_not_fired— the negation; useful for "customers who haven't activated yet"attribute— match on a field path:tier equals "pro",signup_country in ["US","CA"],mrr greater_than 100channel_opted_in/channel_opted_out— marketing-consent filters (per workspace)in_segment— references another saved Segment by idin_workspace/converted_in_workspace/activated_in_workspace(org Segments only) — workspace-membership ops
Composed under and, or, not.
Authoring
The /dashboard/customers/segments page is the primary authoring surface. The full predicate builder, starter Segments, clone, archive, and the Ask Apex natural-language interface all live there.
The /dashboard/communications/segments page is a picker surface — operators who are inside a journey or campaign can pick or do light edits on existing Segments without leaving the Communications context. Both surfaces read and write the same store.
Starter Segments
Every workspace ships with read-only starter Segments — "Hot leads," "Recent signups," "Lapsed customers" — that demonstrate the predicate language and give operators a quick-start template. Starters are marked with isStarter: true and can be cloned but not edited in place.
Pushing to ad platforms
When you push a Segment to Meta, Google, or LinkedIn, Apex exports the membership list to that platform's Custom Audience / Customer Match equivalent. The export is what the ad platform calls an "Audience" — that's the only place the word "Audience" appears in new Apex copy. Marketing consent is verified per workspace before the push fires; an org-scope customer with consent in workspace A but opt-out in workspace B will be included only for workspace A.
See also
- Adaptive Journeys — Segments scope who a journey targets
- Customers — the dashboard surface where Segments live
- Conversion models —
commercialStateandcommercialSubstateare common predicate attributes