Lists and segments are different things
A list is a static group
People join by their own action: a form, an import, an opt-in. Membership
only changes when someone adds or removes them.
A segment is a rule
Membership follows the filter. Someone joins the moment they match and
leaves the moment they stop matching.
Dynamic and static segments
- Dynamic
- Static
A filter. Membership is worked out from your contact data every time the
segment is read, so it is always current. This is the default and it is
what almost every segment should be.
What you can filter on
Conditions sit in groups. Conditions inside a group are joined with AND or OR, and the groups themselves are joined with AND or OR. That is enough to express things like “subscribed to email, AND (opened or clicked in the last 30 days)”. There are two kinds of condition: a property the contact has, and an activity they did or did not do.Profile and identity
Within the EU is derived from the country, not stored separately. It
covers the EU-27 plus Iceland, Liechtenstein, Norway and the United Kingdom,
31 codes in total. A contact with no country reads as not in the EU, so
a GDPR-scoped send never quietly widens because a country is missing.
Consent
Consent is tracked per channel, and each channel has its own state and its own timestamp.
Consent state is what a segment matches on. Whether a message actually goes out is decided again at send time, so a segment is never a way around an opt-out. See Consent and compliance.
List membership and sampling
Random sample is stable. A contact who falls inside a 10 percent sample stays inside it on every read, so a holdout group does not reshuffle between sends. Each condition gets its own independent sample, so two segments each taking 10 percent are not the same 10 percent.
Predictive scores
Four scores are recalculated once a day for every contact from their real order and engagement history over the last year.Likely to purchase
Likely to purchase
purchase_likelihood. Likely, Unlikely or Unknown.Churn risk
Churn risk
churn_likelihood. High risk, Medium risk, Low risk or Unknown.Likely VIP
Likely VIP
vip_likelihood. Likely, Unlikely or Unknown.Best channel
Best channel
responsive_channel. Email, SMS, Both, None or Unknown.Custom fields
Every custom contact field you create is filterable. The operators follow the field’s type:is, is not, contains, does not contain, starts with, ends with, is set, is not set
equals, does not equal, greater than, at least, less than, at most, between, is set, is not set
before, after, between, in the last days, is set, is not set
is, is not
in, not in, is set, is not set
A few field names are reserved and rejected:
city, source, status,
engagement, clv and last_order_days. They are placeholders for
properties Senderz does not compute yet. Use a custom field instead.Activity conditions
An activity condition asks whether someone did something, how often, and when.The events you can use
Orders
Orders
Placed an order, Paid for an order, Was refunded and
Cancelled an order. The first three can be filtered by Order value.
Products
Products
Ordered a product, Viewed a product and Added to cart.Ordered a product can be filtered by Product, Product name, SKU, Variant,
Price, quantity, order ID, category and category ID. Category is what
makes “bought something from this collection” possible without listing
every product by ID. Viewed and Added to cart filter on Product.
Checkout
Checkout
Started checkout.
Email
Opened an email and Clicked an email.
Reviews and loyalty
Reviews and loyalty
Submitted a review, filterable by Product, Rating, Has photo, Has
video, Published, Verified buyer and App. Earned loyalty points.
Your own metrics
Your own metrics
Metrics you track yourself appear in their own group. Their properties are
discovered from the events you send, so a property you started sending
yesterday becomes filterable without waiting for anything to be configured.
How often
Pick a frequency, and a number where one is needed.zero times ignores the number. “Did not do this” asks whether anything
matching exists at all, so there is nothing to count.
What the number counts
For Ordered a product you also choose what a count means, because a purchase is stored one row per order line.
Buying 3 different products in one order counts as 3 order lines, 3 units and 1 order. The control only appears on events where the choice is real, so you are never shown an option that would be ignored.
When
Dates are read in UTC. Months are calendar months, not 30 days, and the day is clamped, so one month before 31 March is 28 or 29 February.
One extra timeframe, since starting this flow, exists only inside an automation, because only an automation has an enrolment to measure from. It is rejected in a segment.
Building a segment
1
Start from the library, or from scratch
The Segment library tab holds 25 ready-made segments across five goals:
Increase engagement, Understand consent, Grow revenue, Reduce churn and
Find new profiles. Filter by goal and by channel, then create one in a
click and edit it like any other segment. Or use New segment on the
Segments tab for an empty builder.
2
Add conditions
Pick a field or an activity, an operator and a value. Add more conditions
to the group, or add another group to change how they combine. Conditions
can be dragged to reorder.
3
Watch the live size
Live size counts the matching contacts as you build, before you save
anything. Use it to catch a rule that selects everyone or nobody.
4
Name it and save
Give it a name, an optional description and a color. Dynamic segments
start matching immediately.
Describing an audience in plain language
The Describe your audience box turns a sentence into a filter. Type something like “VIP customers subscribed to email”, then choose Parse with AI.The assistant checks its draft against your real data before proposing it,
and the result is shown as an editable rule, not saved directly. Review it
before you press Build segment.
Building one from a selection of contacts
On the Contacts page, tick the contacts you want, then choose Save as list in the bulk action bar. That creates a static segment holding exactly those contacts, named after the selection.Segments that ship with every workspace
Every new workspace starts with three segments so a first campaign has somewhere to go:- Email subscribers, everyone opted in to email marketing
- SMS subscribers, everyone opted in to SMS marketing
- Push subscribers, everyone opted in to web push
Managing the list of segments
The Segments tab has All and Smart RFM views, a search box, and a Filter control with:- Source, to narrow to segments created manually, built with AI, or imported
- Show archived, off by default so archived segments stay out of the way
Deleting a segment does not touch the contacts in it. Only the rule is
removed.
Where segments get used
Campaigns
Pick one or more segments under Send to, and optionally some under
Exclude. Overlaps are counted once, and the builder shows the unique
recipient count plus how many are reachable on each channel.
Automations
Entry filters (In segments) decide who may enter. Exit rules (Exit
when in segment) pull people out mid-flow. Individual message steps can
Exclude segments so a contact skips just that message.
Conditional content
Any email block can be set to show to Everyone or to a Specific
segment. Membership is worked out per recipient when the email is sent.
Popups
Target a popup at profiles in a specific list or segment.
Using segments from the API
In the public API, segments are exposed under lists. You can enumerate every segment in the workspace, and add or remove members on a static one. A dynamic segment works out its own membership, so it cannot be mutated.- Enumerate segments with their name, type and current profile count.
- Add contacts to a static segment by ID or by email.
- Remove a contact from a static segment.
Creating and editing segment rules is done in the app, not through the public
API. A filter is validated when it is saved, so an unknown field, an operator
a field does not support, or a timeframe that only makes sense inside an
automation is rejected with a clear error rather than silently ignored.

