Build a Shopify Re-Engagement Engine
A flow is not an engine. How to build a Shopify re-engagement engine from events, identity, channels, creative, holdouts, and expiry for fashion stores.
A Shopify operator opens Klaviyo and sees a browse flow, a cart flow, and a post-purchase flow. All three are live. Revenue is attributed to each. Yet the store cannot answer whether a shopper who tried on a jacket received the right message, whether she bought before it arrived, or whether the message changed anything.
The flows are running. The system is not.
A Shopify re-engagement engine is a connected operating system that turns a qualified shopper event into measured follow-up. It joins six parts: event, identity, channel, creative, holdout, and expiry. A flow only delivers messages. The engine decides who qualifies, what to say, when to stop, and whether the follow-up caused a purchase.
That distinction matters for fashion stores because product interest decays quickly and unevenly. A shopper who completed a virtual try-on for a satin dress has given a stronger signal than someone who loaded the collection page. Treating both as “browse abandonment” discards information the store already paid to collect.

A re-engagement engine connects a qualified event to identity, delivery, creative, measurement, and a firm stopping rule. Editorial image in Classic Antla disposable-camera style.
Six parts turn automation into an engine
A flow has a trigger, filters, delays, and messages. Useful, but incomplete. Klaviyo’s email marketing product supports automated flows based on customer behavior and profile data. The operator still has to decide which behavior deserves follow-up and how the rest of the store should react.
Use this six-part specification before building a message:
| Component | Operator decision | Fashion example |
|---|---|---|
| Event | Which behavior shows enough intent to qualify? | A shopper completes a try-on for a specific cropped jacket |
| Identity | Can the store connect the event to a contactable, consented profile? | Email is known, SMS permission is separate, product and variant are attached |
| Channel | Where can the store respond without wasting attention? | Email carries styling detail, SMS handles a short stock alert |
| Creative | What unresolved product question should the message answer? | Show the jacket again with length, layering, and color context |
| Holdout | Which eligible shoppers receive no follow-up for comparison? | Ten percent remain unmessaged for an incrementality read |
| Expiry | What ends eligibility even without a purchase? | The signal expires after the consideration window or when the item sells out |
Remove any one part and the engine becomes unreliable. No identity means a useful event has nowhere to go. No purchase suppression means buyers receive abandonment messages. No holdout means the platform can claim revenue but the operator cannot tell how much it created.
The category definition in what ecommerce re-engagement means is useful here. Re-engagement continues an existing product decision. It should not pretend every visitor has started the same decision.
Start with an event that earns a follow-up
Most stores have too many events, not too few. Page viewed, product viewed, collection viewed, search used, size selected, try-on completed, add to cart, checkout started. If each event launches its own sequence, the customer becomes the integration test.
Rank events by effort and specificity. A collection view is broad. A product view names an item. A size selection adds fit context. A completed virtual try-on records active evaluation of how that exact garment looks on the shopper. Across more than 500,000 Antla try-ons, users who completed a preview converted at 3.8%. That is the conversion rate for try-on users, not the store-wide rate.
The useful payload is small:
- event name and timestamp
- customer or session identifier
- product and variant identifiers
- selected size or color when available
- channel permission state
- purchase state
Do not put a personal try-on image into an ad audience or public creative by default. The engine needs the fact that the event happened and the product involved. Reusing a customer’s generated image requires separate, clear permission appropriate to that use.
Identity also needs a precedence rule. A logged-in customer ID is stronger than a browser reference. A verified email can join sessions when consent permits. A phone number is not interchangeable with SMS marketing permission. The detailed guide to re-engaging Shopify shoppers who did not convert covers how to separate a current non-buyer from a genuinely dormant subscriber.
Match the channel and creative to the hesitation
Channel choice follows identity, permission, message value, and urgency. It should not follow whichever platform sent the nicest launch deck.
Email has room for a product image, fit notes, styling suggestions, reviews, and a direct route back to the selected variant. SMS is more interruptive and gives the merchant less room to explain. Postscript is built around opted-in Shopify SMS and conversational messaging, which makes it suitable for concise, high-value follow-up when the shopper has given explicit permission.
The decision table can stay simple:
| Situation | Better first response |
|---|---|
| Known email, detailed product hesitation | Email with the exact item and useful evaluation context |
| Explicit SMS opt-in, strong recent intent, time-sensitive stock | One concise text with a direct product link |
| Anonymous but eligible for advertising | Product-specific audience event without a personal try-on image |
| Shopper returns while the signal is active | On-site reminder that restores the product or saved look |
Creative should continue the product decision. For a structured blazer, talk about shoulder line, sleeve length, and layering. For a satin dress, show drape, color, and occasion context. “Still thinking?” says almost nothing. Of course she was thinking. That was the event.
If the first message does not answer a plausible hesitation, adding three more delays will not improve it. The comparison in email versus SMS re-engagement on Shopify goes deeper on interruptiveness, cost, consent, and how much product detail each channel can carry.
Holdouts expose revenue the flow did not create
Attributed revenue is a routing report. It says an order appeared within the platform’s window after a message or click. It does not prove the order depended on that message.
Keep a stable random holdout from the same eligible audience. If 1,000 shoppers complete a qualifying event, the engine might assign 900 to treatment and 100 to no follow-up. Compare purchase rate, revenue per eligible shopper, contribution margin, and time to purchase over the same window.
The useful number is incremental lift:
treatment conversion rate - holdout conversion rate
If treatment converts at 6.0% and holdout converts at 5.2%, the engine added an estimated 0.8 percentage points. Reporting all treatment orders as recovered would credit the system for shoppers who were already returning. Ecommerce software is often very generous when grading its own homework.
Holdouts should survive channel changes. A shopper held out from the engine should not quietly receive the same recovery prompt through SMS or a paid audience. Otherwise the test compares one route with another route, not follow-up with no follow-up.
Expiry keeps yesterday’s intent out of today’s campaign
An intent event is not permanent customer truth. A shopper may buy elsewhere, change her mind, miss the occasion, or simply stop caring. Keeping the signal active forever makes the audience larger and less meaningful.
Set expiry by product and event. A recent try-on for an in-stock occasion dress may justify several days of useful follow-up. A low-effort product view may deserve a much shorter window. A replenishable staple can have a longer consideration period than a fast-moving limited drop, but purchase and stock status should still override the timer.
Every active signal needs stop conditions:
- The shopper purchases the product or an operator-defined substitute.
- The shopper withdraws channel consent.
- The product or relevant variant becomes unavailable.
- The event reaches its expiry time.
- A newer, stronger event replaces it.
- Frequency limits block another message.
Expiry also controls reporting. Measure orders inside a window connected to the event, then close the cohort. Leaving cohorts open for months makes recovered revenue rise forever while the original intent becomes increasingly fictional.
Build the first version inside Shopify’s existing stack
Shopify’s ecommerce website optimization guide treats conversion work as a connected set of improvements across discovery, product evaluation, checkout, and retention. A re-engagement engine fits that operating model. It connects an unresolved product evaluation to the next useful action.
Build the first version in this order:
- Choose one high-intent event, such as a completed try-on with no matching purchase.
- Define the event payload and make product IDs consistent across Shopify and messaging tools.
- Resolve identity only where the store has a valid customer reference and channel permission.
- Route eligible profiles to one primary channel before adding more destinations.
- Write one product-specific message that returns to the exact decision.
- Reserve a stable holdout and document its percentage.
- Add purchase, consent, stock, frequency, and expiry suppression.
- Review incremental conversion, contribution margin, opt-outs, and suppression delay each week.
Do this on a defined product set first. Occasion dresses, statement jackets, or unfamiliar silhouettes often provide clearer appearance hesitation than basic socks. A narrow launch makes missing variant IDs and late purchase suppression visible before they affect the whole catalog.
The Shopify conversion engine model shows how this recovery layer connects to the on-site decision. Antla’s conversion engine gives merchants a product-specific try-on event that can feed Klaviyo, Postscript, ad audiences, and custom events without treating a generic pageview as deep fashion intent.
Questions Shopify operators ask
How do I build a re-engagement engine for a Shopify store?
Choose one qualified event, attach a permitted identity and product context, route it to the right channel, and write creative that answers the original hesitation. Keep a random holdout, suppress purchasers and unavailable products, set an expiry window, then measure incremental conversion and contribution margin against the holdout.
What is the difference between a flow and an engine?
A flow sends messages after a trigger. An engine governs the full decision around those messages: event quality, identity resolution, channel eligibility, creative context, cross-channel suppression, holdout assignment, expiry, and measurement. A store can have many live flows and still lack an engine if those parts do not work together.
How long should a try-on signal stay active?
There is no universal duration. Start with the normal consideration window for the product and test shorter versus longer periods. Strong recent try-on intent may remain useful for several days, while a purchase, consent withdrawal, sold-out variant, newer event, or frequency cap should end eligibility immediately.
Keep these decisions connected
The engine is the agreement between the event and everything that follows. Document the six components on one page, assign an owner to each, and inspect the exceptions. The glamorous part is usually discovering that one color variant uses a different ID in three systems.
About the author: Aaron founded Antla and treats a single Klaviyo flow as a part, not a system.
Start with one product set and one event you would be comfortable paying to follow up on. When a completed try-on is that event, add Antla to your Shopify store and connect the signal to a measured recovery system.