Audience

Segments

Saved filters, lists, events and email activity

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:

  1. Choose whether contacts must match All the conditions (and) or Any of them (or).
  2. Click Add condition and pick a type.
  3. 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.

OperatorUse it for
is, is notExact value: plan is pro
contains, does not containPart of a text: company contains studio
is set, is not setThe attribute exists or not
is greater than, is less thanNumbers: seats is greater than 5
is true, is falseBooleans: onboarded is true
is before, is afterDates: 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.

FieldOperators
Emailis, is not, contains, does not contain
First name, Last nameis, is not, contains, does not contain, is set, is not set
Createdis before, is after
Mailbox provideris, is not: Google, Microsoft, Yahoo, AOL, Apple, Other, Unknown
Sourceis, 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

OperatorMatches contacts who…
received an email / did not receive an emailwere sent an email
opened an email / did not open an emailopened an email
clicked an email / did not click an emailclicked 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

GoalMatchConditions
Engaged readersAllopened an email within 90 days
Trial users about to expireAllplan is trial, trial_ends_at is before a date
Paying customers in FranceAllplan is set, plan is not free, country is FR
Win back inactive readersAllreceived an email within 90 days, did not open an email within 90 days
Customers or beta testersAnyis 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.