Systems Design

Promotions UX Playbook

A global product drop and a regional holiday push used to compete for the same homepage slot, decided case by case as each one came up. Now a playbook decides it before the calendar ships.

Prototype of the tiered promotion framework in use

Company
Converse (Nike, Inc.)
Role
Design Lead
Timeline
2021–2026
Cadence
Dozens of campaigns a year, global + regional

A global product drop and a regional holiday push would both want the same homepage real estate in the same week, and someone had to decide which one took priority, case by case, launch after launch. Across a calendar of dozens of campaigns a year spanning global product marketing and regional teams, deciding it fresh every time doesn't scale, it just repeats the same decision from zero. I designed a tiered promotional framework that replaced those case-by-case calls with placement rules decided in advance.

01

No rule for who won

A representative week: a new colorway launch from global product marketing and a regional back-to-school push both needed hero placement, both had a real business case, and neither team had visibility into the other's plans until they landed on the same release calendar. There was no shared rule for which one took priority, so it got decided fresh each time, case by case.

Global and regional campaigns landing on the same calendar

That meant every launch started the same decision over from scratch, instead of building on what the last one had already settled.

02

Tiers, not turns

I grouped every promotion into three tiers by business impact and reach, not by which team owned it. Tier 1 is a major commercial moment, Black Friday or Cyber Monday, and earns a full navigation takeover. Tier 2 is a mid-weight moment, Valentine's Day or Singles' Day, and gets a homepage module and wayfinding, no takeover. Tier 3 covers evergreen, lower-priority promotions, a seasonal percent-off or a flash sale, and gets minimal wayfinding only. The tier is decided once, not re-argued per launch.

Three tiers, by business impact, not by which team owns the campaign

Each tier carries:

  • A published list of required and optional touchpoints, from a full nav takeover down to a single banner
  • Duration and trigger rules for time-sensitive placements like countdown timers
  • Priority logic for same-tier conflicts
  • Governance guidelines both teams sign off on ahead of the calendar, not during it
03

Timing has its own rules

Placement wasn't the only thing that needed rules. Countdown timers and promo banners fire on their own logic, and getting that wrong causes its own problems: a timer popping up mid-checkout, or a launch countdown that outlives the drop it was counting down to. I mapped trigger logic by campaign length. Week-plus campaigns can wait for a second visit; 24-to-48-hour campaigns can't, so they trigger faster and repeat more insistently. Launch countdowns get a separate set of rules again, an embargo countdown behaves differently than a time-constrained drop.

Trigger urgency escalates as a campaign's window gets shorter

A few rules hold across every campaign type:

  • The global timer fires once per site visit, never more
  • It never triggers mid-checkout, over a returns flow, or inside the custom builder
  • Regional markets share the same trigger logic, with the country selector taking priority
04

Where the rule wasn't enough

Tiers solved most conflicts, but not all of them. Two genuinely global-tier campaigns can still land in the same week, a major colorway drop and a brand-wide marketing moment, for instance, and the framework doesn't pretend a rule can resolve that on its own. I kept a narrow escalation path for true top-tier ties, but scoped it tightly enough that it stayed the exception, not the default every team reached for the moment they disagreed.

A narrow escalation path, reserved for real top-tier conflicts
05

A playbook, not a one-time handoff

None of this holds up if it goes stale the moment a new promotion type shows up. The playbook documents its own update process, so a change to a tier's rules or a piece of promotional messaging gets logged and routed instead of quietly overwritten. Promo messaging itself gets the same treatment: verbiage patterns are documented and revised as we learn what's actually confusing customers mid-purchase, not left as whatever the original page happened to say.

Every rule change is logged and routed, not overwritten quietly

Every module and rule is tagged to the teams it's relevant for, Global Experience Strategy, regional geo teams, authoring, copy, design, so nobody has to guess who to loop in when something needs to change.

06

Now

Most weeks, placement decisions don't need a person in the loop anymore. What changed:

  • Priority comes from a campaign's tier, decided in advance, not from who asked first
  • Placement zones and duration limits are set before the calendar, not decided per launch
  • Global and regional campaigns coexist against the same shared calendar instead of competing blind
  • New campaigns launch against an existing tier instead of starting a new placement decision

Two truly global-scale moments landing in the same week still needs a judgment call, that was never going away. Everything below that tier now runs on the rule alone.

Let's talk