Enscale Docs
Inbox

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 typeMeaning
AllA contact must satisfy every condition.
AnyA 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-01

Operators

Operators are grouped by the kind of field they apply to.

Presenceis_set, is_not_set, isEmpty, isNotEmpty, isNull, isNotNull. These take no value.

TextstringEquals, and the usual contains / starts-with / ends-with family.

NumbersnumberEquals, numberNotEquals, numberGreaterThan, numberLessThan, numberGreaterThanEqual, numberLessThanEqual.

BooleansbooleanIsTrue, booleanIsFalse.

Lists (tags, for example) — arrayContains, arrayNotContains, arrayContainsAll, arrayContainsAny, arrayIsEmpty, arrayIsNotEmpty, arrayLength, arrayLengthGreater, arrayLengthLess.

DatesdateEquals, 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:

CheckEffect
WhatsApp opt-inContacts not opted in are skipped.
UnsubscribedOpted-out contacts are skipped.
Valid phone numberUnparseable 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_IN

Recently added, not yet purchased

Match: All
  createdAt    dateThisMonth
  tags         arrayNotContains   customer

Anyone on a waitlist

Match: Any
  tags         arrayContains   back-in-stock-waitlist

Troubleshooting

ProblemWhat to check
Count is zeroConditions are too narrow, or match type is All where it should be Any.
Campaign sent to fewer than the countExpected — opt-in, unsubscribe, and phone validity are checked at send time.
Date condition doesn't matchDates are evaluated in your configured timezone. Check Settings → General.
Tag condition doesn't matchTags 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.

On this page