Skip to main content

Segmentation

A segment is a filter rule applied to the Contact Book. Every segment resolves at send time into the set of contacts that match the filter.

Segments are how you target campaigns, define automation entry conditions, and produce audience exports.

Filter dimensions

A segment is built from one or more filters. Filters apply to:

  • Status. Active, Pending, Unsubscribed, Hard Bounce. The most common production segment is Status equals Active. Always exclude Unsubscribed and Hard Bounce from production sends.
  • Field. Any system or custom field. Filter operators include equals, not equals, contains, not contains, greater than, less than, between, is empty, is not empty.
  • Label. Tag-based matching. Operators: contains, not contains. Multi-label combinations are supported.
  • Funnel status. The five stages from Journeys. Used to build engagement-tier segments.
  • Engagement. Last open, last click, last send. Used for re-engagement and inactivity segments.

Filters combine with AND. To express OR, use multiple labels or a custom field that captures the union.

Common segment shapes

IntentFilter
Active newsletter readersStatus = Active AND Label contains "newsletter"
VIP customersStatus = Active AND Label contains "vip"
Inactive over 90 daysStatus = Active AND Last open before 2026-02-08
Jakarta-based active contactsStatus = Active AND Field "city" contains "Jakarta"
High-value at-risk customersFunnel status = Customer AND Last open before 2026-04-08

Use specific segment names. Inactive Buyers > 30 Days reads better in a campaign log than Segment 7.

Static vs dynamic resolution

Mailtarget segments are dynamic. The filter runs at send time. A contact added to the Contact Book five minutes before a campaign launches will be included if they match the filter.

Two consequences:

  1. List size shifts between preview and send. The preview count and the actual send count can differ if contacts were added, unsubscribed, or labeled in the interval. This is correct behavior.
  2. Segments do not store membership. They store the rule. The membership is resolved on demand. To export a frozen list, run an export at the moment you want the snapshot and persist it externally.

If you need a frozen list, export to CSV and store the CSV. Do not assume a segment captured at time T will resolve to the same contacts at time T plus one hour.

Segment for automation triggers

Automation flows can be triggered by segment membership. When a contact starts matching the segment filter (for example, gains a label, transitions funnel status, or has a field updated), the automation starts.

This is the cleanest way to wire dashboard-defined segments to API-driven contact updates. Update the contact field via the API, the segment evaluates, the automation fires.

How to build a segment

In the dashboard:

  1. Open Segment in the Contact menu.
  2. Create a new segment.
  3. Add filters. Combine status, field, label, and engagement filters as needed.
  4. Save with a descriptive name.

For programmatic segment creation and updates, see the API Reference. Tag any divergence from the dashboard surface as review_needed: true.

Anti-patterns

  • Overly broad segments. Status = Active alone is the entire active list. Useful for newsletters; not a segment.
  • Stale label rules. Labels accumulate. A segment defined six months ago against Label contains "campaign-q1" becomes useless when Q1 ends.
  • Non-actionable filters. A segment exists to drive a send or an automation. If neither uses it, retire it.
  • Filtering for inactive contacts to suppress them. Use the suppression list at the account level. Do not build send segments around exclusion of unsubscribed contacts; the platform handles that automatically when status is enforced.

Next

  • Audiences for the push and banner equivalent of segments.
  • Journeys for funnel status as a segment dimension.