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:
| Type | How It Works | Best 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 |
Segment Lifecycle
Every segment moves through a lifecycle that controls whether it can be evaluated, edited, or used for targeting:
| Status | What 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.
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.
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.