Segments
Build reusable contact audiences from conditions, and use them to target campaigns.
A segment is a saved set of conditions that selects contacts. Unlike a CSV upload, it's live — the membership changes as your contacts change.
Segments are the main way to target broadcasts.
Building a segment
A segment is a list of conditions plus a match type.
| Match type | Meaning |
|---|---|
| All | A contact must satisfy every condition. |
| Any | A contact must satisfy at least one. |
Each condition is a field, an operator, and usually a value:
Match: All
tags arrayContains vip
optInStatus stringEquals OPTED_IN
createdAt dateAfter 2026-01-01Operators
Operators are grouped by the kind of field they apply to.
Presence — is_set, is_not_set, isEmpty, isNotEmpty, isNull, isNotNull. These take no value.
Text — stringEquals, and the usual contains / starts-with / ends-with family.
Numbers — numberEquals, numberNotEquals, numberGreaterThan, numberLessThan, numberGreaterThanEqual, numberLessThanEqual.
Booleans — booleanIsTrue, booleanIsFalse.
Lists (tags, for example) — arrayContains, arrayNotContains, arrayContainsAll, arrayContainsAny, arrayIsEmpty, arrayIsNotEmpty, arrayLength, arrayLengthGreater, arrayLengthLess.
Dates — dateEquals, dateNotEquals, dateAfter, dateBefore, dateBetween, dateNotBetween, plus relative helpers: dateToday, dateYesterday, dateTomorrow, dateThisWeek, dateLastWeek, dateNextWeek, dateThisMonth, dateLastMonth, dateNextMonth, dateThisYear, dateLastYear, dateNextYear.
Relative date operators are what make a segment genuinely reusable — "contacts added this month" stays correct without editing.
Segments target WhatsApp contacts
There is no channel dimension in a segment, because broadcasts are WhatsApp-only. A segment always resolves to contacts reachable on WhatsApp.
To reach someone who has only ever messaged you on Instagram, you first need a WhatsApp contact for their phone number.
The contact count
Each segment shows how many contacts currently match. That count is calculated by the same logic that selects recipients when a campaign sends — so the number you see is the number that will be considered.
"Considered" is not "sent to". A campaign applies further eligibility checks at send time:
| Check | Effect |
|---|---|
| WhatsApp opt-in | Contacts not opted in are skipped. |
| Unsubscribed | Opted-out contacts are skipped. |
| Valid phone number | Unparseable numbers are skipped. |
So a segment of 1,000 might send to 850. The campaign shows you the skipped count and why before you commit.
Using segments
In campaigns — pick a segment as the audience. See Audiences.
In workflows — the Add to Segment and Remove from Segment nodes move contacts in and out as a flow runs. Useful for building behavioural segments: tag someone who abandoned two checkouts, then target that segment with a specific offer.
Practical examples
VIP customers
Match: All
tags arrayContains vip
optInStatus stringEquals OPTED_INRecently added, not yet purchased
Match: All
createdAt dateThisMonth
tags arrayNotContains customerAnyone on a waitlist
Match: Any
tags arrayContains back-in-stock-waitlistTroubleshooting
| Problem | What to check |
|---|---|
| Count is zero | Conditions are too narrow, or match type is All where it should be Any. |
| Campaign sent to fewer than the count | Expected — opt-in, unsubscribe, and phone validity are checked at send time. |
| Date condition doesn't match | Dates are evaluated in your configured timezone. Check Settings → General. |
| Tag condition doesn't match | Tags are exact. VIP and vip are different. |
Next steps
- Contacts — what's on a contact.
- Tags — the field segments use most.
- Broadcasts — sending to a segment.