What it is
Orchestration is the layer that decides, for a given customer at a given moment, which message goes out, on which channel and whether it goes out at all. It is what stops a multi channel programme from becoming several single channel programmes that happen to share an audience and collide in the customer’s day.
One contact strategy, not many
The unit of fatigue is the customer, not the channel
A customer who got an email, a push and an SMS in an afternoon experienced one over-contacted relationship, not three well-run channels. Set one contact budget across all channels, not a per-channel quota each team fills.
The unit of fatigue is the customer, not the channel. A customer who got an email, a push and an SMS in an afternoon experienced one over contacted relationship, not three well run channels. A contact strategy sets the total acceptable contact across all channels, with priority rules for what wins when several messages are eligible at once. The channel teams optimise inside that budget; they do not each spend it in full. Paid media counts too: a customer chased by a retargeting ad the day after they bought is the contact strategy leaking into the channel it most often forgets, which is why audience sync brings paid under the same governance and suppression rules.
The contact budget is a ceiling, not a target
Treating a user’s weekly attention as an allowance that every channel draws down assumes the cap is there to be spent. It is not. The cap is a safety rail. The discipline that governs volume is to hold one cross-channel ceiling and then judge each send on its own merit, which leaves most users well below it.
- Set a total contact ceiling per engagement tier, counted across every channel together. It is the most a user may receive, not the amount they should.
- When a message becomes eligible, pick the channel by the job it needs to do, not by which team owns it.
- Gate each eligible send on the best value signal you have, not on whether the cap has room. With an uplift model, that signal is the predicted incremental effect of sending; without one, it is concrete proxies, recency of engagement, prior response to similar messages and whether the triggering event is still live. A send that clears the cap but fails the value signal waits or drops.
- Count only the sends that clear that test against the shared ceiling. When a user reaches it, further non transactional messages wait or drop by priority, whichever channel they came from.
- Prefer one well chosen send over the same message duplicated across channels. Reserve a second channel for genuine fallback, for example email did not open within N hours so a push follows, not for simultaneous blasts.
A programme fails in two directions here. Let each channel fill its own quota and the customer is over contacted; treat the shared cap as a quota to fill in turn and you have moved the same mistake up a level. The ceiling bounds the harm, but the per message value test is what sets volume: it floats below the cap whenever another send would not earn its place.
Be clear about what that value test actually costs. Deciding per person and per message whether contact raises the probability of the action you want is uplift modelling, also called incremental modelling: estimating the causal effect of a send against the counterfactual where it never went out. It needs holdouts feeding the model, enough volume to estimate effects per segment and tolerance for a system that withholds messages it cannot justify. Most programmes do not have this. A rules engine that fires on triggers is not it. The workable version is to enforce the hard cap, which you can always do, then approximate value with the proxies you have, recency, prior response, a propensity score, while treating true per send uplift as the harder system the capable platforms are reaching for, not a setting you switch on.
Choosing the channel for the job
Match the channel to what the message needs, using the channels profiles.
- Time critical and must arrive intact: SMS or push.
- Reaching a dormant user: push for apps, email otherwise.
- Rich, mid funnel or educational: email.
- Acting on a live session: in-app.
- High value retention worth the cost: direct mail.
Default to the cheapest channel that does the job, reserving the interruptive, expensive ones for what only they can do.
Why capping matters
A frequency cap is a hard ceiling on messages per channel and in total over a rolling window, applied before send. Caps protect the two things over mailing destroys. Deliverability suffers because complaint and disengagement signals drive placement, sliding a fatigued list toward the spam folder. The long run value of the list suffers because a fatigued subscriber unsubscribes once and is gone. Frequency is not a minor dial: too many messages is consistently the single most common reason people unsubscribe. See respect the recipient and segmentation has costs.
Engagement-tiered starting caps
An engagement tier is a band a user falls into based on how recently and how often they engage, the engagement score from the lifecycle map, cut into a few groups. Most programmes use three: recently active (opened, clicked or purchased inside a short window), moderately engaged (active only in a longer window) and dormant (no engagement across the sunset window). Set the window boundaries from your own engagement distribution and keep them consistent with the sunset logic in segmentation and data; the tier is derived from observed behaviour and recomputed as it moves, not assigned once.
Set caps by segment, since your most engaged and your least engaged tolerate very different volumes. These figures are starting defaults to tune against your own complaint and unsubscribe signals, not universal facts; the right cap for any programme is whatever maximises incremental value before fatigue costs overtake it. Begin here, then tune.
| Engagement tier | Email starting cap | Push / SMS starting cap |
|---|---|---|
| Highly engaged (opened/clicked recently) | up to ~4-5 / week | up to ~3-4 / week |
| Moderately engaged | ~2-3 / week | ~1-2 / week |
| Low engagement / dormant | ~1 / week or fewer | rare, reactivation only |
Apply the lowest cap a user qualifies for, treating SMS as scarcer than email at every tier because it is interruptive and costed per send.
How to tune caps
Caps are a setting you converge on, not a number you guess once.
- Start from the tiered defaults above and instrument complaint rate, unsubscribe rate and a fatigue proxy such as falling open or click rate per additional send.
- Widen first. Raise the cap for one tier on a random slice and watch whether incremental value keeps rising or whether complaints and unsubscribes climb faster than revenue. Most programmes find a point where another send adds sends but not value.
- Then narrow. Pull the cap back where the fatigue signals turned, then confirm that revenue holds while complaints fall.
- Validate against a holdout, not against gross sends. Run the candidate cap as a treatment versus the current cap on a randomised control so you read the incremental effect, not the headline send count. See holdouts and control groups.
- Re-tier on behaviour, not once. As users move between engagement tiers their cap moves with them.
A cap that lifts gross opens but loses incremental revenue or raises complaints is a worse cap, however good the top line looks.
Resolving collisions by priority
When several messages are eligible for the same user in the same window and the budget will not cover all of them, a fixed priority order decides what sends and what waits or drops. Higher priority wins; the rest queue or are suppressed for the window.
- Transactional and service (receipts, password resets, shipping, fraud alerts). Always sends, never capped, never suppressed for frequency.
- Triggered and lifecycle (cart abandon, onboarding step, winback, renewal). Sends if the budget allows, by recency and value.
- Broadcast and promotional (newsletters, campaigns, sales). Lowest priority, the first to yield when the budget is tight.
Within a tier, break ties by business value and by recency of the triggering event. The rule keeps a promotional blast from crowding out a renewal nudge and keeps anything from crowding out a receipt.
Suppression check before every send
Run this list as a final check before any send fires. A message that clears every job, channel and cap decision above must still pass suppression, because suppression is where legal and deliverability constraints live.
- Hard bounces: the address or number is dead. Never send to it again.
- Unsubscribes: global opt out, suppress on every channel.
- Spam complaints: treat as a hard opt out, suppress and do not reactivate.
- Channel-specific opt-outs: opted out of SMS but not email means email only.
- Quiet hours: do not send outside the channel’s permitted window. US SMS quiet hours are commonly observed as 8am to 9pm in the recipient’s local time under TCPA practice.
- Frequency-capped: the user has hit their cap for this window; defer or drop by priority.
- Recent contact and exclusions: recent purchasers, open support tickets and any campaign exclusion list.
Consent based suppressions are legal constraints everywhere; quiet hours are statutory in some jurisdictions and expected practice in the rest. See consent and preferences.