Lifecycle Email Program Template
Four documents and three sheets that map every automated flow, then show you the week where one customer receives four of them.
Free download · No account needed
Overlap and Suppression Matrix · Scenario A
One customer, one week, eleven flows
| Day | Flow | Message | Counts |
|---|---|---|---|
| Mon | Replenishment | 1 of 2 | yes |
| Tue | Browse abandon | 1 of 2 | yes |
| Wed | Browse abandon | 2 of 2 | yes |
| Thu | Review request | 2 of 2 | yes |
| Thu | Weekly broadcast | 1 of 1 | yes |
| Sun | Replenishment | 2 of 2 | yes |
Six promotional messages in seven days. Budget is four.
What no flow builder can tell you
Each of these six flows was built alone, with its own trigger and its own audience filter. Not one of them knows that the other five exist, let alone that they all landed on this address. Every one of them passes review on its own numbers.
What the policy holds
Browse abandon 2 and the weekly broadcast, by priority rank rather than by arrival order. Four messages send.
Which kind of problem this is
Structural, not busy. The review request counts its delay from delivery and the replenishment counts from order, so how close together they land depends on shipping time. The cap hides it; the fix is the trigger.
The four transactional messages this customer also received are in the row and count against nothing.
Cobbleworth runs eleven automated flows against 84,000 addresses. Unsubscribes have climbed for two months and nobody can name the flow responsible, because there is not one. A customer forty-five days past their order who browsed on Monday receives the replenishment, two browse-abandon messages, the second review request, the Thursday broadcast, and the second replenishment. Six promotional emails in seven days. Every one of the six flows passes review on its own numbers, and every one was built without knowing the other five exist.
That is what a flow builder is. It shows one flow, with one trigger and one audience filter, and it has no view of what else fired at that address this week. So the artifact worth having is the one that exists at program level: a customer's week, written out day by day, with a count and a verdict. It separates a busy week, which the frequency cap handles, from two flows whose delays count from different events, which the cap only hides.
The cap is also only allowed to hold back one kind of message. The FTC's CAN-SPAM Rule sets the primary purpose criteria at 16 CFR 316.3, so every flow here carries its classification before it carries a cap. It installs into the marketing workspace beside the Search Console keyword map and the rest of the template library. Send River your flows, or take the files blank.
What's in the pack
Overlap and Suppression Matrix
Twelve customer states written out day by day, including four that are wrong at any frequency budget and two that are inside it and still wrong.
Flow Register
Every flow with its trigger, what its delay counts from, the audience it can actually reach, its exclusions and its classification.
Performance by Flow
Per message rather than per flow, with the prior-seven-day overlap column that decides whether an unsubscribe belongs to the message or the week.
Flow Classification
The primary purpose criteria applied flow by flow, plus the multi-sender rule that quietly governs every partner and affiliate send.
Suppression Policy
The budget, the priority order when it is spent, and hard stops that treat an opt-out as immediate rather than within the ten business days the FTC allows. Where SMS is running too, the cross-channel cadence template prices a text against an email so one budget can cover both.
Program Map
The whole lifecycle in one diagram, with the audience overlaps and trigger collisions named rather than left to be discovered.
Message Briefs
One per message, because the message that damages a sequence is the third one saying what the first one said with more urgency. The welcome email sequence template times that sequence against your own conversion data.
How to use it
- 1
Open in River, or take it blank
Open the pack in River and send whatever describes your flows, or download the Word documents and CSV sheets and fill them in yourself.
- 2
Send the flow list
A screenshot of the automations list, an export, a spreadsheet somebody keeps, a send-history CSV, or the flows typed out. Partial is fine.
- 3
Answer one question per flow
What each delay counts from. Order, delivery, a status change, a date. That single field decides which of your flows collide.
- 4
Read your worst week first
It comes back written out day by day with your real flow names in it, and says whether the fix is the cap or the trigger.
Frequently asked questions
Is this template free?
Yes. Download the Word documents and CSV sheets with no account, no card and no email gate. Edit with AI is the optional half: River maps your flows, classifies each one, and builds the matrix from your own triggers. Every pack sits in the template library.
Why classify flows before setting a frequency cap?
Because the cap may only hold back one kind of message. Suppress a promotional email and you have done your job. Suppress an order confirmation and you have a support ticket and a refund. A uniform cap makes the second mistake at the highest-stakes moment in the program.
My flows each perform well. Why do I need this?
Because a flow's numbers are measured in isolation and a customer receives all of them. The matrix routinely finds a week with six promotional sends where all six flows look healthy individually. Nothing in a flow builder can show you that, by design.
What is a structural collision?
Two flows whose delays count from different events. A review request timed from delivery and a replenishment timed from order sit a fixed distance apart only when shipping time is constant. Capping it hides it. The fix is rebasing one trigger.
Does this work with Klaviyo, Mailchimp or HubSpot?
All of them, and it does not connect to any of them to start. The register is built from flow definitions in any form: a screenshot, an export, a spreadsheet, or a typed list. Where the send history itself needs reading, run an email performance consolidation alongside it.
How does this handle the weekly broadcast?
As the largest contributor to overlap in most programs, which is what it usually is. A broadcast is sent from a different screen against a list, so no frequency cap applies unless somebody built the exclusion into the segment rather than remembering it on send day. Which segments are real enough to exclude is a separate question, settled by the customer segmentation template.
What does Edit with AI actually do?
It signs you up, installs this pack as a private workspace, and starts reading. Send the flows in whatever shape they exist, then answer one question per flow about its delay basis, and your matrix comes back with the worst week in it.
Find out what one customer gets in a week
Take the Word documents and CSV sheets blank, or open this exact pack in River and send it the flows you already have running.
Edit with AI