Klaviyo flows, read step by step — and five checks that stopped reporting success while being wrong
In Klaviyo, flows ARE lifecycle — welcome, abandoned cart, browse abandon and winback are all flows, not campaigns — and Orbit could read a Braze Canvas step by step while being blind inside a Klaviyo flow. orbit_klaviyo_flow_audit fixes that: the full step-by-step read, including the per-step leak table that shows where recipients fall out. Three widget surfaces ship alongside it — flow audit, revenue attribution and preheader clip. The rest of the release repairs a class of bug the review loop kept finding: checks that reported success while being wrong, from a 403 printed as zero sends to release gates that passed by asserting a string nothing emits any more.
What shipped
•New tool — orbit_klaviyo_flow_audit. The step-by-step read of a Klaviyo flow that Orbit already had for a Braze Canvas: every step, its channel and timing, and the per-step leak table showing where recipients fall out of the flow.
•Widget surfaces for the flow audit, revenue attribution, and preheader clipping — the results render as interactive panels, not walls of JSON.
•Fixed: a 403 on the Braze analytics read printed as 0 sent. An auth failure now says auth failure — it no longer reports a workspace at zero volume.
•Fixed: the Klaviyo flow report credited the next email's loss to the previous one — the leak table now attributes drop-off to the step where it happens.
•Fixed: both release gates asserted a branding string nothing emits any more, so they passed by never matching; and three widgets registered with no populated fixture, which made every layout assertion pass trivially. Both gates now fail when they should.
•Fixed: user-facing prose claimed 127 tools against a 128-tool registry — the counts are now generated from the registry, not typed by hand.