Segments

Group users into audiences for targeting, experimentation, and campaigns.

What Are Segments?

A segment is a defined group of users that you can target with campaigns, use as a condition in experiments, or simply track as a meaningful audience over time. Segments are the foundation of the Audience system — they answer the question: who should receive this message or be included in this test?

You can create as many segments as you need. Each segment has a name, a description, and a type that determines how its members are managed. Segments are reusable — a single segment can be targeted by multiple campaigns and referenced by multiple experiments.

Segment Types

There are three ways to define a segment, depending on whether you want to hand-pick users, have the system populate the list automatically, or simply include everyone:

TypeHow It WorksBest For
Static You manually add and remove individual users. The membership list does not change unless you explicitly update it. VIP lists, beta testers, internal QA groups, hand-picked audiences
Dynamic The system automatically populates the segment by running an analytics query. For example, "users who visited the pricing page in the last 30 days" or "users who signed up this week." The membership updates each time the query is evaluated. Behavioral audiences, re-engagement targets, time-based cohorts
Everyone Includes all users automatically. No configuration or member management needed — every user in the system is considered a member. Broadcast campaigns, system-wide announcements, universal banners
Start with the Everyone segment for broadcast messages. When you need more precise targeting, create a Dynamic segment backed by an analytics query. Use Static segments for carefully curated lists that you manage by hand.

Segment Lifecycle

Every segment moves through a lifecycle that controls whether it can be evaluated, edited, or used for targeting:

StatusWhat It Means
Draft The segment is being set up. You can freely edit its definition, type, and configuration. It is not yet available for campaign targeting or experiment rules.
Active The segment is live and ready to use. Dynamic segments can be refreshed (manually or on a schedule), and the segment is available for campaigns and experiments to target.
Paused Temporarily suspended. Scheduled evaluations are skipped, but the existing member list is preserved. Active campaigns that already reference this segment continue to function.
Archived No longer in use. The segment is hidden from default listings and cannot be selected for new campaigns. Archiving is a soft delete — the segment data is retained for historical reference.

Managing Segment Members

Depending on the segment type and your workflow, there are several ways to manage who belongs to a segment:

Manual Add and Remove

For static segments, you directly add or remove individual users. This gives you full control over the membership list and is ideal when you know exactly who should be in the audience.

Populate from a Query

Link a segment to an analytics query, and the system will run that query to determine membership. The query results become the segment's member list. You can also use a query to remove users — for example, removing everyone who has already completed a purchase from a prospect segment.

Subtract One Segment from Another

You can subtract the members of one segment from another. This is a powerful way to create exclusion lists. For example, you might start with "all trial users" and subtract "users who already converted" to get a clean re-engagement audience.

Full Evaluation (Dynamic Segments)

For dynamic segments, running an evaluation replaces the entire membership with fresh results from the linked analytics query. This ensures the segment always reflects the latest data. You can trigger an evaluation manually at any time, or set up automatic evaluation on a schedule.

Every segment tracks its member count so you always know how large your audience is. For dynamic segments, the count updates each time the segment is evaluated.

Scheduled Evaluation

Dynamic segments can be set to refresh automatically on a recurring schedule. This is useful when your audience criteria are time-sensitive — for example, "users active in the last 7 days" should be refreshed regularly so the membership stays current.

When you configure a schedule, the system will automatically evaluate the segment at the specified interval (for example, daily at midnight, every six hours, or weekly on Mondays). You can also trigger a manual evaluation at any time if you need an immediate refresh outside the schedule.

Set daily or hourly evaluation schedules for segments tied to time-based queries. For segments based on stable criteria (like user role or subscription tier), a weekly refresh may be sufficient.

Using Segments with Experiments

Segments integrate directly with the Experiments system. When you create an experiment or configure a feature flag, you can add a targeting rule that restricts the experiment to a specific segment. Only users who belong to that segment will be included in the experiment — everyone else sees the default experience.

This is useful for scenarios like:

  • Running an A/B test only for premium subscribers
  • Rolling out a new feature gradually, starting with internal users
  • Testing a new onboarding flow only for users who signed up in the last week

Using Segments with Campaigns

Segments define the audience for every campaign. When you create a campaign (banner, email, or push notification), you select one or more segments to target. The campaign is then delivered to all users who belong to those segments.

The separation between segments and campaigns is intentional: you build your audience once, then reuse it across multiple campaigns. If your audience criteria change, you update the segment — future campaigns automatically pick up the updated membership.

Best Practices

  • Name segments descriptively. Use names that make the audience clear at a glance, such as "Trial Users - Last 30 Days" or "Enterprise Customers - Active." This makes it easy to select the right segment when building campaigns.
  • Use dynamic segments for time-based audiences. If your criteria include "in the last X days" or "since a specific date," a dynamic segment with scheduled evaluation ensures the membership stays fresh.
  • Use static segments for stable, hand-managed lists. Beta testers, VIPs, and internal QA teams rarely change — a static segment gives you precise control.
  • Archive instead of deleting. When a segment is no longer needed, archive it rather than deleting it. This preserves the historical record and avoids breaking references in past campaigns.
  • Test with small segments first. Before sending a campaign to a large audience, create a small test segment with internal team members and use the test-send feature to verify everything looks right.