You are almost certainly already sending the campaigns that would recover the most revenue. They are just not being sent to the right conditions. Here is how to find them in two weeks.
The instinct when a lifecycle program underperforms is to add something: a new journey, a new channel, a new platform. The faster route is almost always to find what is already built and not working as intended. There is usually more recoverable revenue in the existing setup than any new campaign will produce.
We run this as a two-week engagement and it is the highest-return thing we do, because it is diagnostic rather than speculative. Nothing needs to be invented.
List every automated message that can fire, its trigger, its exit conditions, and its current performance. Most programs discover at least one journey running with no exit condition, one whose trigger no longer fires, and one that was paused for a promotion in 2024 and never restarted.
Check that the events your journeys depend on are still firing, still named consistently, and still carry the payload the message expects. Event schemas rot quietly when a site is replatformed or a tracking script is replaced, and journeys fail silently because a trigger simply never fires.
Look at rendering across clients and dark mode, accessibility basics, unsubscribe behaviour, and tracking parameters. This is where you find the broken layout that has been generating support tickets nobody connected to a template.
Authentication status, aggregate report health, complaint rate by segment, and the segments that should not be mailed. Frequently there is a segment with a complaint rate that would justify suppressing it entirely, which is both a compliance improvement and a reputation one.
Confirm that what is being reported is still being measured correctly, and that the metrics on the dashboard are the ones that describe the business. This is where open-rate dependence shows up as a decision-making problem rather than a data problem.
An audit is not a report about what is wrong. It is a ranked list of what to change first, and the ranking is the product.
The recurring findings, in rough order of frequency: dead or never-started journeys that should be running; missing exit conditions causing post-conversion sends; cross-journey message stacking with no global frequency rule; a winback that fires before the customer could plausibly be considered lapsed; and one high-value segment receiving the generic promotional track.
None of these require new technology. All of them require somebody to look.
A good audit ends with a ranked list where each item carries an estimated impact, an effort level, and an owner — and where the top three items are things you could ship in the next month. Anything longer than that is a document nobody acts on.
It should also be honest about what is not worth fixing. Part of the value is telling a team that a journey they are proud of contributes little, and that the effort belongs somewhere else. That is easier to hear from an outside party and it is why the engagement works.
The reason this returns more than a new campaign is arithmetic. A new journey starts at zero and takes months to prove. An existing journey that is misconfigured is already in production, already has direction, and simply needs a correction. Fixing five of those in a fortnight outperforms a quarter of building something new, almost every time.
It is also the right first step for a different reason: you cannot design what to build next until you know what you already have.
Written by the team at LMR — a senior lifecycle marketing studio working in Iterable, Braze, Klaviyo and the tools you already run.
Start a project ↗