Every comms change in one list, then each one today beside proposed
For the agency, and anyone building these comms in Braze. Every change this journey makes, what starts it, what stops it, and what it says today beside what it should say. The full logic per row, and the copy of record, sit on the Decisioning matrix.
New · the per-operator inclusions content block; the lead-time slice sizing.
2
Phase 1
2
The day-before reframe
Push + email (Braze)
Rework · the persona register trait; the non-inferiority floor sized.
2
Phase 1
3
The wayfinding line
Push (Braze)
New · the platform-and-coach payload at fire time.
2
Phase 2
4
The persistent trip state
In-app
Rework · product's reskin-or-net-new ruling; the same payload path as the wayfinding line.
3
Phase 2
5
The on-board modal
In-app
New · on-board detection; the saved-amount substantiation; the fire-time disrupted flag.
2
Phase 2
6
The lock-screen pin
In-app (iOS Live Activity)
New · the start token path and the surface build, on the app release train.
2
Phase 2
7
The ride pick-up pair: the test decided, the survivor re-ranked
Push
Braze
Change · rule only
None
Phase 1
8
The arrival sell: governed, and its figure labelled
Push
Braze
Change · rule only
None
Phase 1
9
The swap reminder: a control, and the kill threshold
Push
Braze
Change · rule only
None
Phase 1
10
The legacy swap push: caller found, then retired
Push
Braze
Change · rule only
None
Phase 1
11
The catering email: earn the slot or fold
Email
Braze
Change · rule only
None
Phase 1
1Every change, today beside proposed11 changes, in build order
Everything this journey changes. The words per version live on the Decisioning matrix and the FigJam brief; each versions table is the checklist. If it is not here, it is not in this round. Each change: who it reaches, what starts and stops it, then today’s wording exactly as it sends now beside the proposed direction. Where nothing sends today, the block says so rather than leaving a blank.
1The wait emailNewPhase 1
Who it reaches
Winners whose trip is seven or more days out
What starts it
Arc entry (the upgrade purchase) where the departure timestamp is seven or more days out. Date maths on the existing trip attribute, the same pattern the live webhooks already use.
What stops it
Refund or cancel exits the arc; live disruption yields the whole arc to the service layer.
Versions to write
1
One frame, per-operator inclusions block
2
The Avanti variant states First Class against Standard Premium plainly
▸ Today's message beside the proposed one, and the full plan
Today: what occupies this moment
BRAZE EMAIL, NARROW ELIGIBILITY
Your First Class trip is nearly here
{first name}, your First Class trip is nearly here
The live control: the estate's only proven-incremental creative (plus 16.9 and plus 16.3 percent against control), reaching First Class upgraders with no past ticket purchase, email opted in.
Mock-up Live copy summarised from the as-is record; the control stays untouched.
Proposed, as drafted
BRAZE CANVAS: PUSH PRIMARY + EMAIL A/B
SF
It worked: you're in First tomorrow
{origin} to {destination}. Everything you need is in the app.
Mock-up Mock, drawn from the matrix's working copy; not a capture.
Proposed wording One reassurance job, no sell; three copy registers by persona label, register changing copy only, never timing. The email leg is an A/B against the proven control: nothing proven switches off until beaten on the floor. Design authors the final copy at the creative gate.
The full message plan
DRAFT: What to expect in First Class on {operator}: your seat, what is included on this service, and where your tickets live. On Avanti the copy states plainly whether the trip is First Class or Standard Premium, because that confusion alone drives 1,856 support tickets a year*.
2The day-before reframeReworkPhase 1
Who it reaches
Every reachable winner at T-22h
What starts it
Departure minus 22 hours, computed from the trip attribute at entry: the exact offset the live webhooks already fire on, console-confirmed.
What stops it
Refund or cancel exits; disruption yields; the episode flag stands broadcasts down.
Versions to write
1
Three copy registers by persona label (copy only, never timing)
2
The email leg, tested on a non-inferiority floor against the live control
▸ Today's message beside the proposed one, and the full plan
Today: what occupies this moment
BRAZE EMAIL, NARROW ELIGIBILITY
Your First Class trip is nearly here
{first name}, your First Class trip is nearly here
The live control: the estate's only proven-incremental creative (plus 16.9 and plus 16.3 percent against control), reaching First Class upgraders with no past ticket purchase, email opted in.
Mock-up Live copy summarised from the as-is record; the control stays untouched.
Proposed, as drafted
BRAZE CANVAS: PUSH PRIMARY + EMAIL A/B
SF
It worked: you're in First tomorrow
{origin} to {destination}. Everything you need is in the app.
Mock-up Mock, drawn from the matrix's working copy; not a capture.
Proposed wording One reassurance job, no sell; three copy registers by persona label, register changing copy only, never timing. The email leg is an A/B against the proven control: nothing proven switches off until beaten on the floor. Design authors the final copy at the creative gate.
The full message plan
DRAFT: It worked: you're in First tomorrow. {origin} to {destination}, everything you need is in the app. One reassurance job, no sell. Three copy registers by persona label; register changes copy only, never timing.
3The wayfinding lineNewPhase 2
Who it reaches
Push-armed winners on travel morning
What starts it
Computed send time from the departure timestamp; platform and coach looked up at fire time; one re-issue on a material change event.
What stops it
Disruption yields the arc: a disrupted trip gets service comms, not a cheerful platform line.
Versions to write
1
The line, and its correction variant
2
The silent state: no payload, no push, the trip state carries the journey
▸ Today's message beside the proposed one, and the full plan
Today: what occupies this moment
NOTHING WAYFINDS
The morning is sell-only. The ride pushes and the swap reminder own the window; no send answers the platform-and-coach question, and 4,776 value-failure tickets a year say the morning matters.
Proposed, as drafted
BRAZE CANVAS + iOS LIVE ACTIVITY
SF
Platform 9 · Coach D
You're upgraded to First today.
Mock-up Mock, drawn from the matrix's working copy; not a capture.
Proposed wording One glanceable line, deep-linked to the trip state; the correction re-issue is the same message with the changed fact. Where the payload is unavailable the push stays silent: a wayfinding push without wayfinding is a sell slot in disguise. Where the pin starts, the push suppresses. Design authors the final copy at the creative gate.
The full message plan
DRAFT: Platform 9 · Coach D: you're upgraded to First today. One glanceable line, deep-linked to the trip state. The correction re-issue is the same message with the changed fact, nothing else.
4The persistent trip stateReworkPhase 2
Who it reaches
Every winner, the whole window
What starts it
Exists from entry; active presentation T-3h to departure; flips on refund, cancel or disruption instantly.
What stops it
None: it is never consent-gated and never suppressed; its content changes state instead.
Versions to write
1
The normal state
2
The disrupted state (service content, nothing for sale)
3
The refunded or cancelled state, flipped instantly
▸ Today's message beside the proposed one, and the full plan
Today: what occupies this moment
NATIVE APP, STATIC
Booking confirmed
The existing confirmation view: static, and silent on platform, coach, live status and the saving.
Mock-up The live surface, described from the as-is record; no capture exists.
Proposed, as drafted
NATIVE APP, LIVE STATE
You're upgraded to First today
Trip, seat, tickets, platform and coach when known, live status when disrupted. On board: you saved a real amount on this trip, plus this operator's inclusions.
See my trip
Mock-up Mock, drawn from the matrix's working copy; not a capture.
Proposed wording The state is the do-nothing answer done properly: pushes and emails become alerts on top of one source of truth. The modal renders once per trip, never on a disrupted trip, and never with an unsubstantiated figure. Design authors the final copy at the creative gate.
The full message plan
You're upgraded to First today. Trip, seat, tickets, platform and coach when known, live status when disrupted.
5The on-board modalNewPhase 2
Who it reaches
Winners on a non-disrupted trip, once on board
What starts it
On-board detection (trip start event or geo), non-disrupted trips only.
What stops it
Disruption hard-suppresses; refund or cancel exits.
Versions to write
1
With the substantiated saving
2
Without a figure, until the amount is substantiated: never a made-up number
▸ Today's message beside the proposed one, and the full plan
Today: what occupies this moment
NATIVE APP, STATIC
Booking confirmed
The existing confirmation view: static, and silent on platform, coach, live status and the saving.
Mock-up The live surface, described from the as-is record; no capture exists.
Proposed, as drafted
NATIVE APP, LIVE STATE
You're upgraded to First today
Trip, seat, tickets, platform and coach when known, live status when disrupted. On board: you saved a real amount on this trip, plus this operator's inclusions.
See my trip
Mock-up Mock, drawn from the matrix's working copy; not a capture.
Proposed wording The state is the do-nothing answer done properly: pushes and emails become alerts on top of one source of truth. The modal renders once per trip, never on a disrupted trip, and never with an unsubstantiated figure. Design authors the final copy at the creative gate.
The full message plan
DRAFT: You're in First. You saved £{saved} on this trip. Plus this operator's inclusions, stated plainly. No £ figure renders until the saved-amount is substantiated: the walk-up anchor is unconfirmed, and a made-up saving at the value moment would be the worst possible lie.
6The lock-screen pinNewPhase 2
Who it reaches
iOS winners from T-2h
What starts it
Canvas fires the start webhook at T-2h where the device and token allow; fallback is the Row 3 push.
What stops it
Disruption flips the pin's content to the service state, not a marketing message.
Versions to write
1
The normal pin
2
The disrupted pin: content flips to the service state
▸ Today's message beside the proposed one, and the full plan
Today: what occupies this moment
NOTHING WAYFINDS
The morning is sell-only. The ride pushes and the swap reminder own the window; no send answers the platform-and-coach question, and 4,776 value-failure tickets a year say the morning matters.
Proposed, as drafted
BRAZE CANVAS + iOS LIVE ACTIVITY
SF
Platform 9 · Coach D
You're upgraded to First today.
Mock-up Mock, drawn from the matrix's working copy; not a capture.
Proposed wording One glanceable line, deep-linked to the trip state; the correction re-issue is the same message with the changed fact. Where the payload is unavailable the push stays silent: a wayfinding push without wayfinding is a sell slot in disguise. Where the pin starts, the push suppresses. Design authors the final copy at the creative gate.
The full message plan
route · platform · coach · countdown · First today. The pin is the trip state in ambient form; it carries no sell and no call to action beyond the trip itself.
7The ride pick-up pair: the test decided, the survivor re-rankedRule onlyBrazePhase 1
Who it reaches
Winners whose trip starts in the ride partner's coverage cities
What starts it
Unchanged: purchase-triggered, city-filtered; the surviving arm's clock replaces three.
What stops it
Suppressed on disrupted trips; loses same-window collisions to wayfinding and logs the loss.
▸ Today's send beside the rule change, and the full plan
Today, as it sends
FIVE UNARBITRATED SELLS
The window's live copy, unchanged. Need a lift to the station? Need a lift from the station? Need to change your train time? The change here is rank, timing and measurement, not words.
Proposed: the rules change, no word moves
The morning yield order, made real. Operational always sends; wayfinding and its correction outrank every sell; commercial ranks last, logs its losses, and suppresses on disruption. The timing test ends with a decision and one surviving arm; the legacy swap push retires once its caller is identified, reason recorded; the swap reminder keeps the won-trip cohort only past the ruled kill threshold; the catering email earns a real conversion definition or folds into the inclusions block.
The full message plan
Live copy: Need a lift to the station? Unchanged until the intent-qualification pass; the change here is rank and timing, not words.
8The arrival sell: governed, and its figure labelledRule onlyBrazePhase 1
Who it reaches
Winners arriving at one of the 78 Veezu-covered stations (console-confirmed filter), personalised on their home station
What starts it
Unchanged: purchase-triggered, destination filtered to the 78 Veezu-covered stations (console-confirmed), arrival-plus-30 clock.
What stops it
Disrupted trips suppress: a delayed arrival is exactly when this push currently fires into anger.
▸ Today's send beside the rule change, and the full plan
Today, as it sends
FIVE UNARBITRATED SELLS
The window's live copy, unchanged. Need a lift to the station? Need a lift from the station? Need to change your train time? The change here is rank, timing and measurement, not words.
Proposed: the rules change, no word moves
The morning yield order, made real. Operational always sends; wayfinding and its correction outrank every sell; commercial ranks last, logs its losses, and suppresses on disruption. The timing test ends with a decision and one surviving arm; the legacy swap push retires once its caller is identified, reason recorded; the swap reminder keeps the won-trip cohort only past the ruled kill threshold; the catering email earns a real conversion definition or folds into the inclusions block.
The full message plan
Live copy: Need a lift from the station? Unchanged.
9The swap reminder: a control, and the kill thresholdRule onlyBrazePhase 1
Who it reaches
Ticket buyers on swap-capable operators; upgrade winners only when the same customer also bought the ticket
What starts it
Unchanged: ticket purchase on a swap-capable operator; T-4h computed reminder (the legacy T-2h slot is retired in the rebuild).
What stops it
Disruption yields; loses same-window collisions to wayfinding.
▸ Today's send beside the rule change, and the full plan
Today, as it sends
FIVE UNARBITRATED SELLS
The window's live copy, unchanged. Need a lift to the station? Need a lift from the station? Need to change your train time? The change here is rank, timing and measurement, not words.
Proposed: the rules change, no word moves
The morning yield order, made real. Operational always sends; wayfinding and its correction outrank every sell; commercial ranks last, logs its losses, and suppresses on disruption. The timing test ends with a decision and one surviving arm; the legacy swap push retires once its caller is identified, reason recorded; the swap reminder keeps the won-trip cohort only past the ruled kill threshold; the catering email earns a real conversion definition or folds into the inclusions block.
The full message plan
Live copy: Need to change your train time? Your ticket may be eligible for Train Swap. Switch to any same-day service from £1.50.
10The legacy swap push: caller found, then retiredRule onlyBrazePhase 1
Who it reaches
Unknown: whatever cohort its unidentified trigger still selects
What starts it
Unknown. The known webhook stopped 20 Jul; a drained backlog and the rebuild were both ruled out as callers.
What stops it
None known.
▸ Today's send beside the rule change, and the full plan
Today, as it sends
FIVE UNARBITRATED SELLS
The window's live copy, unchanged. Need a lift to the station? Need a lift from the station? Need to change your train time? The change here is rank, timing and measurement, not words.
Proposed: the rules change, no word moves
The morning yield order, made real. Operational always sends; wayfinding and its correction outrank every sell; commercial ranks last, logs its losses, and suppresses on disruption. The timing test ends with a decision and one surviving arm; the legacy swap push retires once its caller is identified, reason recorded; the swap reminder keeps the won-trip cohort only past the ruled kill threshold; the catering email earns a real conversion definition or folds into the inclusions block.
The full message plan
Same copy as the rebuild's push, near-verbatim: which is why a customer in scope for both can receive the reminder twice in one morning.
11The catering email: earn the slot or foldRule onlyBrazePhase 1
Who it reaches
Same-day purchasers on one operator's services, email opted in
What starts it
Unchanged while it stands: any purchase on the operator, same day, opted in.
What stops it
Disruption yields.
▸ Today's send beside the rule change, and the full plan
Today, as it sends
FIVE UNARBITRATED SELLS
The window's live copy, unchanged. Need a lift to the station? Need a lift from the station? Need to change your train time? The change here is rank, timing and measurement, not words.
Proposed: the rules change, no word moves
The morning yield order, made real. Operational always sends; wayfinding and its correction outrank every sell; commercial ranks last, logs its losses, and suppresses on disruption. The timing test ends with a decision and one surviving arm; the legacy swap push retires once its caller is identified, reason recorded; the swap reminder keeps the won-trip cohort only past the ruled kill threshold; the catering email earns a real conversion definition or folds into the inclusions block.
The full message plan
The live copy is not on record (a capture ask). The catering job is real on services that sell it; the question is the slot and the instrument, not the job.
2Suppressed by design4 rows, no send
No marketing send goes to the rows below. The suppression is the treatment, and each row names who owns the customer instead.
▸ The 4 rows, and why nothing sends to each
The moment
Who it reaches
Why nothing sends
The disrupted trip: the whole arc yieldsDesigned silence
Any winner whose booked route has live disruption
Suppression is the treatment: the arc yields entirely, and the unauthored service comm is named as the gap it leaves.
The deleted T-2h recovery sendDesigned silence
Winners who did not open the day-before message
A drafted send stays deleted: the T-3h push and the trip state cover its job without a third push in ninety minutes.
No cold opt-in ask on travel morningDesigned silence
Unarmed winners in the arc
No capture ask ships anywhere in the arc: the win moment owns capture, framed around day-of guidance.
Broadcasts stand down inside the arcDesigned silence
Any winner inside a live pre-travel episode
The arc's boundary is enforced estate-wide: broadcasts exclude customers with a live episode flag.
The journey maps
today's journey, and the proposed journey by phase; the full-size maps with their pins are on the record
Phase 1 ships on Braze and Analytics with no app release; Phase 2 is anything that needs engineering. Open the full-size map.
Leave feedbackThis pack is at Gate 1: the strategy review. The timing-test decision, the post-win slot ratification, the deleted recovery send and the catering call are the open decisions. Say what is wrong with the strategy, or what it is missing.