What it does
Segments recalculate their members either on the system refresh, on their own schedule, or only when someone asks. Scheduling lets you push slow-moving segments onto a weekly or monthly cadence so they aren't rebuilt every time the system refreshes.
Key facts
- Dynamic segments and expansion segments refresh automatically. Static segments never do — they only update on a manual run. Make static and Make dynamic switch a segment between the two.
- The available cadences are: follow the system refresh schedule (the default), weekly, monthly, or on demand.
- A system refresh schedule is a prerequisite for any automatic segment refresh. Microsoft's guidance is a daily system refresh.
- Custom segment schedules have to align with the system refresh dates. Change the system refresh schedule after the fact and the misaligned segments stop refreshing — they don't error, they just don't run until you realign them.
- Scheduling lives at Insights > Segments, select the segment or segments, then Schedule. In the pane, Schedule run is On for automatic or Off for manual, and Recurrence carries the detail.
- Select several segments at once and you get Keep individual schedules versus Define new schedule for all selected segments. Pick the wrong one and you overwrite a carefully tuned set of cadences in a single click.
- Inactive segments are skipped during a scheduled refresh and show a status of Skipped.
- Unused segments are deactivated automatically. A daily job deactivates segments older than 45 days that aren't referenced by an export, a measure, another segment, or Customer Insights - Journeys, and tags them AutoDeactivated.
- Deactivated segments don't refresh at all until someone reactivates them.
- The soft limit is 1,000 active segments and measures combined. Past that, expect slower system refreshes, slower individual segment refreshes, and out-of-memory refresh failures.
- Microsoft's own performance advice is to delete segments after campaigns finish, deactivate rather than delete for recurring campaigns, and move historical segments to slower cadences.
When to use / skip
Every project needs a deliberate answer here; the question is how much tuning it deserves. Small estates with twenty segments and a daily system refresh can leave everything on the default and never think about it again. Once you're into the hundreds, custom scheduling stops being optional — the refresh window becomes the constraint on the whole environment, and the cheapest win is moving segments that change monthly off a daily cadence.
Static segments are worth more than people expect. A campaign audience that must not move between the send and the follow-up analysis should be static, full stop. Making it dynamic because "dynamic sounds better" is how you end up with a control group that changed size mid-test.
Don't try to schedule your way out of a data freshness requirement. If the business needs same-day audiences, the system refresh cadence and the source data pipeline are the things to fix, not the segment schedule.
Configuration decisions
- The system refresh schedule first, since everything else aligns to it. Nail it down before defining any custom segment schedules.
- Static versus dynamic per segment, driven by whether membership is allowed to move between campaign executions.
- Which segments earn a daily cadence and which drop to weekly or monthly. Do this by business volatility, not by how important the stakeholder is.
- Whether to deactivate or delete segments at campaign end, and who owns that decision.
- The tagging convention that makes the above possible — campaign name, end date, owner — because without tags nobody can tell which of 400 segments is still needed.
- Whether to let automatic deactivation do the housekeeping, or to run a governed review before it kicks in.
Gotchas
- Realignment after a system refresh change is the silent one. Segments simply stop refreshing, the status page doesn't shout about it, and someone notices weeks later when a count looks stale.
- Multi-select scheduling with Define new schedule for all selected segments overwrites individual schedules with no undo.
- Automatic deactivation catches segments that are used by something the dependency check doesn't see — a downstream Power BI report reading the output table, for example. Those are exactly the ones nobody notices until the report is empty.
- A Skipped status is not an error, and a genuinely failing segment can be lost in a list of skipped ones. Filter before you diagnose.
- Dependencies are ordered: a segment built on a measure or another segment can only be as fresh as its input, whatever its own schedule says.
- Deleting a segment that another segment or export references breaks the dependent object. Check usage before removing anything.
Consultant notes
- Get the client to agree the refresh window as a service expectation, in hours, before you fill it. It's much easier to say no to a 47th daily segment when there's an agreed budget.
- Demo the automatic deactivation tag to the client's admin. It's the feature they'll thank you for and the one they'll panic about the first time it hits something they wanted.
- Before go-live, walk the segment list sorted by schedule and confirm every daily segment genuinely needs to be daily. On most projects a third of them don't.
- Push back on "make everything dynamic". Campaign reproducibility and A/B integrity both depend on some segments holding still.
- Build the tagging convention into the first workshop rather than retro-fitting it; the housekeeping guidance above is unusable without it.
Worth another look if Microsoft changes the 45-day automatic deactivation window or adds cadences beyond weekly and monthly.