Segments
A segment is a saved filter, such as "plan is pro" or "opened an email in the last 30 days". It is evaluated when you use it: a contact who upgrades today is in tomorrow's campaign.
Segments narrow an audience, never widen it: a campaign targets a list, and its segment picks who, among the subscribers of that list, receives the email. Lists and segments.
Build a segment
Open Segments › New segment, then:
- Choose whether contacts must match All the conditions (and) or Any of them (or).
- Click Add condition and pick a type.
- Save. Kula shows how many contacts match.
A segment with no condition matches every contact. A segment has up to 50 conditions.
Condition types
Attribute
Filters on your own data: plan, country, trial_ends_at… Attributes.
| Operator | Use it for |
|---|---|
| is, is not | Exact value: plan is pro |
| contains, does not contain | Part of a text: company contains studio |
| is set, is not set | The attribute exists or not |
| is greater than, is less than | Numbers: seats is greater than 5 |
| is true, is false | Booleans: onboarded is true |
| is before, is after | Dates: trial_ends_at is before 2026-11-01 |
Comparisons follow the type of the value. Send numbers, booleans and dates with their JSON type through the API to compare them as such.
Contact field
Filters on the built-in fields of a contact.
| Field | Operators |
|---|---|
| is, is not, contains, does not contain | |
| First name, Last name | is, is not, contains, does not contain, is set, is not set |
| Created | is before, is after |
| Mailbox provider | is, is not: Google, Microsoft, Yahoo, AOL, Apple, Other, Unknown |
| Source | is, is not: Form, API, Import, Dashboard, MCP |
Email contains @acme.com finds a whole company. Mailbox provider is Google lets you check how Gmail treats your emails.
List
is subscribed to or is not subscribed to another list. Example: send the newsletter to everyone who is not on the "Customers" list.
Event
has done or has not done an event sent by your app, ever or within the last N days (up to 3,650). Example: has done order_paid within 30 days. Events API.
Email activity
| Operator | Matches contacts who… |
|---|---|
| received an email / did not receive an email | were sent an email |
| opened an email / did not open an email | opened an email |
| clicked an email / did not click an email | clicked a link |
Each one can be limited to the last N days and to one campaign. Examples: "opened an email within 90 days" keeps your newsletter to engaged readers, "did not open campaign X" finds those who missed it.
Examples
| Goal | Match | Conditions |
|---|---|---|
| Engaged readers | All | opened an email within 90 days |
| Trial users about to expire | All | plan is trial, trial_ends_at is before a date |
| Paying customers in France | All | plan is set, plan is not free, country is FR |
| Win back inactive readers | All | received an email within 90 days, did not open an email within 90 days |
| Customers or beta testers | Any | is subscribed to "Customers", is subscribed to "Beta testers" |
Where segments are used
- Campaigns: pick a segment after the list to narrow the audience. Campaigns.
- Flows: a Condition step uses the same conditions to decide whether a contact continues. Flows.
- Contacts: filter the Contacts page by segment.
- API: segments are JSON definitions you can create and read. Segments API.