Welcome, cart and win-back flows built with a 10 percent holdout from day one, so the number reported is the revenue the flow actually added.
About this service
Every flow I build ships with a holdout of 10 percent of eligible profiles, and the number I report at quarter end is the gap between the two groups. It is not the figure on the platform's flow dashboard. On accounts where I have run both side by side, platform-attributed revenue has overstated the incremental figure by 30 to 60 percent, for an unremarkable reason: most people who buy after an abandoned cart email were coming back anyway, and the email took credit for the visit.
Why the holdout comes first:
It has to exist before the flow goes live, because a holdout carved out afterwards is contaminated by everyone already in the sequence. It also has to be large enough to read. Below roughly 500 entrants a month per flow, one quarter is not long enough to separate the flow from noise, and I will tell you that before we start rather than produce a confident chart in March.
Welcome:
The first message is not a discount. In a beauty account a welcome discount teaches the buyer to wait for one, and the cost lands six months later in full-price sell-through, where the flow's own dashboard cannot see it. Message one sets expectations instead: what you send, how often, how to change it. In a fintech the same slot is activation, and the drop-off worth attacking sits between account created and identity verification completed, so those messages are document prompts carrying the specific rejection reason rather than brand storytelling. For a nonprofit the welcome exists to produce a second gift inside 90 days, because a donor who has given twice behaves like a different person from one who has given once.
Cart, browse and checkout:
Three flows, not one, and they deserve different treatment. Checkout abandonment after payment details are entered is usually a technical failure, and the message should read like support rather than marketing. Cart abandonment at a 38 euro average order cannot carry a 10 euro incentive and stay profitable, so incentive rules get set against margin before a word is written. Browse abandonment is the one I most often argue against building at all: it fires on weak intent, it spends frequency, and in three of the last five accounts the holdout showed it adding nothing.
Timing is tested per account rather than borrowed. The first message has landed anywhere between 40 minutes and four hours depending on how people shop the category.
Win-back is a sunset mechanism:
Most win-back flows lose money once deliverability is counted. I build one attempt at the point where the account's own repurchase distribution flattens, which for a 50 ml serum used twice daily sits near day 75 rather than at the 90 days copied from another brand, and then the profile exits to suppression. A win-back running all year against people who no longer open is how you lose placement for the people who do.
What you get:
Flow logic built in Klaviyo, Braze, Customer.io or Iterable: triggers, filters, splits, exclusions and exit conditions, documented so your team can change them. Copy in Spanish and English, written twice rather than translated once, with the tu or usted decision made per brand and then held. Holdout mechanics and readouts at 30, 60 and 90 days. One structured test per flow per month through the first quarter, hypothesis written before the test runs.
What I will not do:
Template design and coding, which is separate work. SMS and WhatsApp builds. Paid retargeting coordination. And I will not build fourteen flows. Three that are maintained beat a library nobody has opened since launch.
Where this does not work:
Accounts that need flow revenue reported to a board at platform default. The incremental number is smaller, it is the true one, and once it exists the old number becomes hard to keep using.