Intern
What you actually do
Metrics table, pixel test, path walk. You are hunting doubles and stacks. You are not 'optimizing browse'.
Library / Wire / Name the Shopify events Klaviyo is allowed to trust
After Placed Order is true, the next leak is event soup: Viewed Product, Added to Cart, Checkout Started, and custom pixels firing twice. Flows then overlap, discount logic stacks, and a buyer gets browse and cart and shipping emails in one hour. This page is the event spec — what each event means, what must not fire, and how an intern tests a path.
After Placed Order is true, the next leak is event soup: Viewed Product, Added to Cart, Checkout Started, and custom pixels firing twice. Flows then overlap, discount logic stacks, and a buyer gets browse and cart and shipping emails in one hour. This page is the event spec — what each event means, what must not fire, and how an intern tests a path.
Write the job of each event. Browse educates. Cart recovers intent. Checkout is urgent. Placed is post-purchase. If cart copy is a milder browse, you built one flow three times.
Suppressions are the product: placed excludes cart; cart excludes browse; recent buyers excluded from acquire campaigns. If you cannot say the exclusions, you will stack messages.
Custom pixels and the Klaviyo app both firing is the usual double-event. Metric volume that jumped after a theme edit is a clue.
Checkout Started on Shop Pay / accelerated checkouts can be sparse. Do not design a four-email checkout flow if the event barely exists. Use the events you actually get.
Ordered Product is for item-level replenishment and reviews. Placed Order is for the order. Mixing them is how a multi-item order gets three review asks on day one.
Intern
Metrics table, pixel test, path walk. You are hunting doubles and stacks. You are not 'optimizing browse'.
Operator
Events have jobs. Protect exclusions through campaign season. Do not pause core flows for a blast.
CEO
Stacked lifecycle email is a brand tax. Event hygiene and exclusions are the system. Creative is later.
Klaviyo events (Viewed Product, Added to Cart, Checkout Started, Placed Order, Ordered Product, Refunded), pixel vs server, flow filters, suppressions, checkout type (Shopify vs custom).
Viewed Product → browse flow only if not in cart/checkout/placed windows
Added to Cart / Checkout Started → cart/checkout flows; browse suppressed
Placed Order → cancel cart/checkout; start post-purchase; Ordered Product for item-level jobs
Duplicate pixel + app pixel → one Viewed Product per view, not two; kill the double fire
Klaviyo metrics: last 7 days. Note spikes and duplicates. Compare to Shopify sessions/orders so the volumes are sane.
Why: A flow on an event that barely fires is a placebo. A flow on a doubled event is harassment.
Done when: A table: event, volume, expected job, duplicate risk.
Theme app embed + extra script + GTM. One source per event. Test a product view: one Viewed Product.
Why: Two Viewed Product events enroll browse twice or restart waits.
Done when: A test view creates one event. Timestamp proof.
Browse excludes cart in last X hours and placed in last Y days. Cart excludes placed. Post-purchase excludes refunded. Campaigns exclude active flow members where it would collide.
Why: Without a map, each flow author adds 'just one more email'.
Done when: Exclusions printed. Each core flow matches the map.
View → add to cart → abandon → (wait) → checkout → buy. Profile timeline should show the right events and the right flow messages, not all of them.
Why: Unit-testing one flow at a time hides collisions.
Done when: A recorded path: no browse+cart+checkout stack in one hour after purchase.
If Checkout Started is rare, shorten checkout flow or rely on Added to Cart. Do not invent events with a broken custom pixel.
Why: Building for an event you wish you had is how intern weeks disappear.
Done when: Flows only listen to events with trustworthy volume.
Count events. Test a product view for doubles. Walk view→cart→purchase on a profile. List every message that would send. Cross them off against the exclusion map. Fix doubles and exclusions before anyone writes a new subject line.
A 'browse abandonment creative project' while Viewed Product is double-firing. More copy on a broken metric buys mute.
Default Klaviyo flows all on. Theme pixel plus app. Buyer gets four emails the afternoon they ordered. Team pauses flows 'for Black Friday' and never turns the right ones back on. That is a calendar, not lifecycle.
One Viewed Product per view. Path walk with no stacked flows after purchase. Checkout flow matches real event volume. Exclusion map posted.
Defaults overlap and coupon-first. They do not know your AOV or your double pixel. The spec is yours.
Then you taught people that every email is the same email. Jobs must differ or you should delete one flow.
If they duplicate Klaviyo’s native events, they are a bug. If they add something native cannot (subscription skip), name them and document.
This week
This week: event inventory, kill doubles, exclusion map, one full path walk. No new flow until collisions are gone.
A full calendar and an empty pipeline is two databases.
Read ↗A high score in a CSV is not a qualified opportunity.
Read ↗If the thank-you does not change the contact, the page was a brochure.
Read ↗If paid lives in Stripe and the opportunity is still open, reporting is theatre.
Read ↗Working notes
Score your Klaviyo and lifecycle system the way an operator would. Request the file. It arrives by email — not a public dump, not a drip of slogans.
Email and WhatsApp stay open. A call is for installing the system — not for a tour of tools.