Segmenting Your Audience for Better Engagement in Braze

Top-down flat lay of two ceramic dishes on an oak table, one holding green wooden discs and one holding plain pale discs, showing how a Braze segment separates one audience from another.

Braze audience segmentation works best when each segment states one intent, uses filter logic you have tested against real profiles, and is sized with exact statistics before launch. Segments update as data changes, so the audience at send time can differ from the audience you previewed. This guide covers filter logic, exclusions, devices, size estimates and when to use Segment Extensions.

‍

Key Takeaways

  • A segment is a live rule, so the audience you preview can differ from the audience at send time.
  • Name each segment for its intent and record that intent in the description field.
  • Put suppression rules in an exclusion group, which overrides the filters above it.
  • Read device filters as describing a user, because Braze sends to all of that user's devices.
  • Calculate exact statistics before launch, since estimates are sampled and cached for 15 minutes.
  • Start with a default segment and move to a Segment Extension only when you need a look-back of up to 730 days.

‍

How does Braze audience segmentation decide who is in a segment?

According to the Braze segments documentation, segments are dynamic groups of users that fit criteria you define, such as user attributes, user behaviour and custom events. They update in real time as data changes. Braze updates membership as data is sent back and processed, typically instantaneously.

So the audience you see in the editor is a moment in time. A user who has a session after your preview can join or leave before the send.

We recommend naming every segment after the intent behind it. Braze documents a name field and a description field for exactly this reason. A segment called "Engaged users" tells the next editor nothing about the rule behind it.

‍

How do filter groups and operators change who is in the audience?

Filters sit inside filter groups, and you join filters inside a group, and between groups, with and or or. Choosing or means the segment holds users who satisfy any combination of one, some or all of the filters. Choosing and removes anyone who fails a filter.

JoinWho is in the segmentFunnel statistics as you add filters
ANDOnly users who pass every filterDecrease
ORUsers who pass at least one filterIncrease

‍

Funnel statistics make a useful habit here. Add filters that follow your user flow and you can see where people fall away.

Negative filters are where audiences go wrong. The documentation gives a clear warning. Join not included, is not, does not equal or does not match regex with or two or more times on the same attribute, and users with all values for that attribute are targeted.

The logic explains why. A user in the first excluded list fails the first filter but passes the second, so the statement is true for them. We recommend testing every negative filter against a profile that should be excluded.

One limit to check against the current page: at retrieval, the "is any of" operator accepted a maximum of 256 items in its field. Limits can change, so confirm it on the current Braze page before you rely on it.

‍

When should you use an exclusion group instead of the OR operator?

Exclusion groups hold the criteria that identify users to leave out. They always connect to your filter groups with an and-not join, and they override the segment criteria. A user who falls into the exclusion group is out, even if they meet every filter above it.

Our suggestion is to keep suppression rules such as recent buyers or protected tiers in an exclusion group. A rule in its own group is easier to audit than one threaded through a long or statement.

Build the positive audience first and read its funnel statistics. Then add exclusions one at a time, so you can see what each rule removes.

‍

What happens when your users have more than one device?

Device-dependent filters cover device model, device OS and app version. When you use them, the segment contains every user who matches. Braze sends to all of that user's devices, including devices that don't meet your criteria.

Messages sent can therefore exceed audience size. For push, the documentation lets you send only to a user's last used device, under Additional Settings.

Membership is also a send-time fact. A user can be in the segment when the message goes out, and behaviour on any of their devices can move them out afterwards.

We recommend reading device filters as describing a user, not a single phone. If a send count looks high or a recipient looks wrong, open the profile and check the device list before you touch the filters.

‍

How far can you trust a segment size estimate?

Estimated statistics come from sampling a portion of your segment, so expect sizes slightly above or below the real value. The documentation describes a random sample with a 95% confidence interval that the result sits within +/- 1%. Workspaces with more than 50,000 users show estimated users, and smaller workspaces show exact users.

Larger workspaces can see larger margins of error. Very small segments can show an estimated range that includes 0. Estimates are cached for 15 minutes unless you edit the segment.

Per-filter statistics stay estimated even after you calculate exact statistics. Exact statistics are calculated at segment level, with greater than 99.999% accuracy, and are cached for 24 hours unless you edit. Braze always calculates exact membership before a campaign or Canvas send affects a segment, so the estimate is a planning aid.

‍

When do Segment Extensions earn their place?

Segment Extensions build precise segments over an extended period of a user's history. They can reach users who completed a custom event or purchase event any number of times in the past two years (730 days). A default segment can already use event properties from the past 30 days, in real time.

NeedDefault segmentSegment Extension
Event look-backEvent properties from the past 30 daysUp to 730 days
FreshnessReal time as data changesRefreshes on a schedule, up to 60 minutes of processing
Credit usageNone stated in the pages readSQL refreshes consume SQL segment credits; warehouse-synced extensions incur costs in your warehouse billing
QuantityAs many segments as neededA default allotment of 50 active extensions per workspace

‍

We recommend starting with a default segment and moving to an extension only when the look-back or the logic needs it. The documentation describes extensions as built for advanced cases, so use one where the history justifies it.

Treat the refresh as part of your send schedule. Processing can take up to 60 minutes, so set the refresh at least an hour before the send. Users who no longer meet the criteria keep matching the default segment until the refresh completes.

Only one refresh can run at a time for a given extension, and refresh settings switch off automatically for unused ones. Relative periods such as "last X days" start at midnight Coordinated Universal Time, so allow for the offset if your audience sits ahead of it.

‍

How would a hypothetical retailer build a win-back audience?

This section is illustrative. Take a hypothetical retailer with an app on iOS and Android that wants to bring back lapsed shoppers. It describes no client, no result and no real data, and the sequence is our suggestion rather than a documented Braze procedure.

The retailer starts with one filter group that targets users from its two apps. It applies a last used app filter, which segments users by the latest time they opened the app, and funnel statistics give a first estimate.

Next it wants to leave out two loyalty tiers, so it adds two is-not filters on a hypothetical loyalty tier attribute, joined with or. That is the trap from earlier. A gold member passes the platinum filter, a platinum member passes the gold filter, and everyone is targeted.

The fix is an exclusion group holding both tiers, which removes them whatever the filter group says. The retailer then tests with User Lookup, using the external ID of a gold member. The lookup lists the missing criteria, which confirms the exclusion works.

It adds a push enabled filter so the segment total lines up with subscribed users, and calculates exact statistics before launch. For push it chooses the last used device, so shoppers with a phone and a tablet receive one message. It reaches for a Segment Extension only if lapsed needs a purchase look-back longer than the 30 days a default segment covers.

‍

What should you check before a segment goes into a send?

Run the same routine each time:

  1. Look up one profile that should match and one that shouldn't, using an external ID or Braze ID. User Lookup accepts only those two identifiers, and it lists the missing criteria for a profile that fails.
  2. Calculate exact statistics instead of relying on the estimate.
  3. Add channel filters, such as push enabled for iOS, so the segment total lines up with subscribed users. Total reachable users includes everyone who matches your filters, even those no longer subscribed to a channel.
  4. Decide whether push should go to the last used device only.
  5. Write the intent into the description field.

‍

Send counts can still come in lower than the estimate. The documentation lists three causes: membership changed after you previewed the audience, users failed channel reachability checks at send time, or audience filters changed after launch.

Reachability here is a platform measure of valid contact details and opt-in status. It is not a legal conclusion about consent, and this post does not settle that question.

‍

What should you check before archiving or nesting a segment?

Archiving a segment also archives any campaign or Canvas that uses it, even where the segment sits in a single Canvas component. Braze shows a warning that lists what will be archived. Open the segment's Messaging Use section first, because it shows where the segment is used across other segments, campaigns and Canvases.

Nesting has its own rule. A segment already using the Segment Membership filter can't be included in other segments, which prevents a cycle where two segments reference each other. Nesting adds complexity and can slow things down, so the documentation advises recreating the segment with the same filters instead.

The changelog on the segment overview page records who changed a name, description or target audience. That makes it the first place to look when an audience changes and nobody remembers why.

‍

How does this connect to the rest of the programme?

Segments serve every channel, so this logic carries across them. For the wider plan, see how to build a winning customer engagement strategy with Braze. Mobile audiences are covered in how to segment mobile audiences for better results in Braze, and push-specific rules in best practices for push notification segmentation in Braze.

Segment quality depends on the data behind it, so tracking user events for better campaigns in Braze comes first. If segments look wrong because customer records are split across systems, our customer data management service covers identity resolution. It also covers the design of how data enters, moves through and leaves your business.

Lapsed audiences lead naturally into how to build effective win-back campaigns in Braze. Our case study on re-engaging lapsing users with gamification shows one approach to the same problem inside automated lifecycle messaging. Once the audience is right, building multichannel engagement campaigns in Braze covers how to reach it.

As a Braze implementation partner, CustomerIK recommends treating the segment as the unit of quality control. Name it for its intent and test it on real profiles. Size it with exact statistics, and record why it exists before any campaign points at it.

‍

Frequently Asked Questions
‍

1. Can a segment target users who haven't opened my app yet?

Profiles are generated once a user has used the app for the first time. A segment can't target users who haven't opened the app yet.

2. How often do segment size estimates change?

Estimated statistics are cached for 15 minutes unless you edit the segment, and the sample Braze queries can differ each time. Re-ordering filters can therefore shift an estimate even when membership hasn't changed.

3. Does a Segment Extension update instantly?

Not instantly. Refreshes can take up to 60 minutes because of data processing, so schedule the refresh before the send that depends on it.

4. Can one user receive more than one message from a single segment send?

Yes, when a user has more than one device, because each device can receive a message, so messages sent can exceed audience size. For push, you can choose the last used device only.

5. What happens to campaigns when I archive a segment?

Campaigns and Canvases that use the segment are archived too, including where the segment sits in one Canvas component. Braze lists what will be archived before you confirm.

‍

Sources

‍

CustomerIK is a Braze implementation partner working across onboarding, technical integration, marketing operations and customer data management.

If your segments keep producing audiences nobody can explain, let's talk.

‍

Preferences

Privacy is important to us, so you have the option of disabling certain types of storage that may not be necessary for the basic functioning of the website. Blocking categories may impact your experience on the website.

Accept all cookies
Accept all cookies

These items are required to enable basic website functionality.

Always active

These items are used to deliver advertising that is more relevant to you and your interests.

These items allow the website to remember choices you make (such as your user name, language, or the region you are in) and provide enhanced, more personal features.

These items help the website operator understand how its website performs, how visitors interact with the site, and whether there may be technical issues.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.