DTC brandsShopify + Klaviyo

Returns flowA returner gets the same drop as a fan

Shopify refunds. Klaviyo never hears it. The returner gets the same drop, the same 20% off, the same 'we miss you' as a fan. You look automated in the worst way.

00

The short version

Intern through CEO

Read it once, then stop negotiating with it. Returns flow for DTC brands is a wiring job: metric → flow → suppress → vip. Objects, then edges, then one test conversion. You do not need a new tool to start. You need the first writer to land on one contact this week.

  1. 01

    DTC brands do not have a Returns flow problem because they lack Shopify + Klaviyo. They have it because a returner gets the same drop as a fan.

  2. 02

    Wire these objects first: Refunded/returned profile state, Shopify refund metric, acquire-campaign suppression, finite save path, exclusion vs win-back, Klaviyo flow.

  3. 03

    Then these edges, in order: Refunded Order → profile property/state returned; exit post-purchase and review asks · Acquire campaigns → suppress recent returners for a written window · Save path → finite (one reason, one next SKU or a human); not a coupon war · Win-back → does not also grab them in the same week unless the map says so

  4. 04

    Done looks like a test you can repeat: Refund a $1 order. Confirm the profile state. Confirm they do not get the happy post-purchase or a 'you're going to love it' campaign. Confirm a finite save email or silence, as written. Confirm win-back does not collide.

  5. 05

    Start here: Refunded or returned is a profile state

In even plainer words

DTC brands already have Shopify + Klaviyo. The leak is not a missing feature. A returner gets the same drop as a fan. Software did not cause it. A missing write-in did: the person exists in one tool and not in the pipeline.

Here is how you actually wire it. Name the objects: Refunded/returned profile state, Shopify refund metric, acquire-campaign suppression, finite save path, exclusion vs win-back, Klaviyo flow. Then connect these edges, in order: Refunded Order → profile property/state returned; exit post-purchase and review asks · Acquire campaigns → suppress recent returners for a written window · Save path → finite (one reason, one next SKU or a human); not a coupon war · Win-back → does not also grab them in the same week unless the map says so. If you skip an edge, the next one is decoration. If you add a Shopify + Klaviyo feature first, you usually skip an edge without noticing.

Prove it with a test, not a screenshot. Refund a $1 order. Confirm the profile state. Confirm they do not get the happy post-purchase or a 'you're going to love it' campaign. Confirm a finite save email or silence, as written. Confirm win-back does not collide. How you know it worked on the board: Metric is fires (test refund this week). If that number is a vibe, do not add traffic.

What to do this week, and only this week: Refunded or returned is a profile state An intern can run the objects page and one test conversion. A CEO should protect that from a second priority.

Who

Same system. Three jobs.

Read your row

Intern

What you actually do

Day one: a returner gets the same drop as a fan — that is the leak. Refunded is a profile state. Suppress acquire. Write a finite save. Write how it differs from win-back. Do not automate bitterness. Do not automate clinginess.

Operator

What you protect

You already feel a returner gets the same drop as a fan. A returner gets the same drop as a fan. Protect one sequence for 90 days. The four moves are metric → flow → suppress → vip. The edges are Refunded Order → profile property/state returned; exit post-purchase and review asks then Acquire campaigns → suppress recent returners for a written window. Refunded/returned is a profile state. Acquire and hype campaigns suppress recent returners. A finite save path exists — care, exchange, or a stop. It does not share DNA with win-back.

CEO

What you refuse to fund

This is a money leak, not a preference about tools. Shopify refunds. Until metric is a number you will defend, buying more traffic or more seats makes the leak more expensive. Refuse a second database: Refunded Order → profile property/state returned; exit post-purchase and review asks.

Example

A Tuesday that looks familiar

Before / after

Before

Tuesday. Someone among DTC brands. A returner gets the same drop as a fan. Shopify + Klaviyo is open. A colleague asks where a person sits. The answer is a screenshot, a Slack thread, or “I think they’re interested.” The writer (form, calendar, shop, or phone) and the pipeline are two databases.

After

Same Tuesday, after write-in exists. Refunded/returned is a profile state. Acquire and hype campaigns suppress recent returners. A finite save path exists — care, exchange, or a stop. It does not share DNA with win-back. Refunded Order → profile property/state returned; exit post-purchase and review asks The next move is written. That is the difference between a login and a system.

Worked example

Keep it this plain. A person in DTC brands already paid for Shopify + Klaviyo. A returner gets the same drop as a fan. They add a page, a form, a calendar. None of it writes into a spec. By Friday the calendar has ghosts and the pipeline still looks like the snapshot.

The fix is not a better template. Refunded/returned is a profile state. Prove write-in: Refund a $1 order. Confirm the profile state. Confirm they do not get the happy post-purchase or a 'you're going to love it' campaign. Confirm a finite save email or silence, as written. Confirm win-back does not collide. This week is one move: Refunded or returned is a profile state If that feels too small, that is the point. Operators fail by starting at move four.

01

Leak versus system

Shopify + Klaviyo

The leak

Shopify refunds. Klaviyo never hears it. The returner gets the same drop, the same 20% off, the same 'we miss you' as a fan. You look automated in the worst way.

The system

Refunded/returned is a profile state. Acquire and hype campaigns suppress recent returners. A finite save path exists — care, exchange, or a stop. It does not share DNA with win-back.

How it actually works

Confirm Refunded Order or a returns metric actually fires. If it does not, fix the metric before the copy. Then a flow: care first, then exchange if you offer it, then stop. Coupon-first on a return is how you train refunds.

Exclude recent returners from drops and acquire campaigns for a defined window. VIP segments must not include people who just sent the product back unless you meant that.

Refunded/returned is a profile state. Acquire and hype campaigns suppress recent returners. A finite save path exists — care, exchange, or a stop. It does not share DNA with win-back.

A returner gets the same drop as a fan when refunded is not a state. Refunded or returned is a profile state. Acquire campaigns suppress recent returners. A finite save path exists — maybe a size guide, maybe a different SKU, maybe a human. It does not collide with win-back. Infinite 'please come back' after a return is how you become a brand they mute.

Wire Refunded Order (or Shopify return) into Klaviyo. Exclusions on post-purchase, review, attach. If returns are fraud-heavy, the save path may be silence plus a flag — write that. Margin: do not auto-stack coupons that make the return cheaper than keeping the item without a rule. RPR on the save flow will tell you if it earns.

Two databases: Shopify returns and Klaviyo still in 'customer' joy flows. The intern refunds $1 and lists every message that still sends. Kill until the list matches the spec. If CS lives in another helpdesk, put the return reason on the profile if you can. Reason is how the next email is not generic. Generic is the leak.

Wire

How to connect it

Objects, then edges, then a test

Refunded/returned profile state, Shopify refund metric, acquire-campaign suppression, finite save path, exclusion vs win-back, Klaviyo flow.

  1. 01

    Refunded Order → profile property/state returned; exit post-purchase and review asks

  2. 02

    Acquire campaigns → suppress recent returners for a written window

  3. 03

    Save path → finite (one reason, one next SKU or a human); not a coupon war

  4. 04

    Win-back → does not also grab them in the same week unless the map says so

Prove write-in

Refund a $1 order. Confirm the profile state. Confirm they do not get the happy post-purchase or a 'you're going to love it' campaign. Confirm a finite save email or silence, as written. Confirm win-back does not collide.

Day one: a returner gets the same drop as a fan — that is the leak. Refunded is a profile state. Suppress acquire. Write a finite save. Write how it differs from win-back. Do not automate bitterness. Do not automate clinginess.

02

The spine

Scan first
01

Metric

Refunded/returned actually fires. Verified with a test order.

02

Flow

Care, then exchange or stop. Finite. Not win-back.

03

Suppress

Recent returners off hype and acquire for a written window.

04

VIP

VIP does not silently include this week's refunds.

Steps

Do this in order

Why, then done when
  1. 01

    Write the leak in one sentence

    On one line, for DTC brands: A returner gets the same drop as a fan. Add who gets hurt (calendar, cash, inbox, or reputation). If two people write different sentences, you do not agree yet — stop and agree.

    Why: Teams skip this and jump into settings. Then every person is fixing a different problem with the same login.

    Done when: One sentence. Shared. No adjectives required.

  2. 02

    Name the objects

    Refunded/returned profile state, Shopify refund metric, acquire-campaign suppression, finite save path, exclusion vs win-back, Klaviyo flow.

    Why: If objects aren't named, software invents a second database.

    Done when: A stranger can list them.

  3. 03

    Metric

    Refunded/returned actually fires. Verified with a test order. Then wire: Refunded Order → profile property/state returned; exit post-purchase and review asks

    Why: DTC brands cannot skip this edge. A returner gets the same drop as a fan when refunded is not a state. If it is not true, Shopify + Klaviyo is already a second database.

    Done when: Refunded Order → profile property/state returned; exit post-purchase and review asks is true on a test.

  4. 04

    Flow

    Care, then exchange or stop. Finite. Not win-back. Then wire: Acquire campaigns → suppress recent returners for a written window

    Why: DTC brands skip this and the leak returns as a private language. Wire Refunded Order (or Shopify return) into Klaviyo. Spec tags, fields, and states have to be the same objects the next workflow will read.

    Done when: Acquire campaigns → suppress recent returners for a written window is true on a test.

  5. 05

    Suppress

    Recent returners off hype and acquire for a written window. Then wire: Save path → finite (one reason, one next SKU or a human); not a coupon war

    Why: DTC brands feel this as A returner gets the same drop as a fan. Two databases: Shopify returns and Klaviyo still in 'customer' joy flows.

    Done when: Save path → finite (one reason, one next SKU or a human); not a coupon war is true on a test.

  6. 06

    Prove write-in

    Refund a $1 order. Confirm the profile state. Confirm they do not get the happy post-purchase or a 'you're going to love it' campaign. Confirm a finite save email or silence, as written. Confirm win-back does not collide.

    Why: Calendar full + pipeline empty means two databases.

    Done when: One test conversion, one contact, right stage/state.

  7. 07

    Put a number on the wall

    Every Monday, look at Metric (Test refund this week), then hype suppress (Window written in days). Write one action or write “hold.” A dashboard with no action is theatre.

    Why: What gets reviewed gets run. What only lives in a tool gets ignored the week someone is busy.

    Done when: Three numbers. One owner. Fifteen minutes. Actions attach.

  8. 08

    Finish one move this week

    Refunded or returned is a profile state

    Why: Operators fail by starting at move four. Interns fail by making a 40-item checklist. CEOs fail by adding a second priority. One proven write-in beats an elegant plan.

    Done when: The move is true, or you can name the blocker in one sentence.

Walkthrough

The four moves, expanded

Same spine. More words.
01

Name the objects

Refunded/returned profile state, Shopify refund metric, acquire-campaign suppression, finite save path, exclusion vs win-back, Klaviyo flow.

If objects aren't named, software invents a second database.

A returner gets the same drop as a fan.

02

Metric

Refunded/returned actually fires. Verified with a test order. Then wire: Refunded Order → profile property/state returned; exit post-purchase and review asks

DTC brands cannot skip this edge. A returner gets the same drop as a fan when refunded is not a state. If it is not true, Shopify + Klaviyo is already a second database.

On Shopify + Klaviyo, this means the data model matches how DTC brands actually work — not the snapshot demo. Edge: Acquire campaigns → suppress recent returners for a written window

03

Flow

Care, then exchange or stop. Finite. Not win-back. Then wire: Acquire campaigns → suppress recent returners for a written window

DTC brands skip this and the leak returns as a private language. Wire Refunded Order (or Shopify return) into Klaviyo. Spec tags, fields, and states have to be the same objects the next workflow will read.

Refunded/returned is a profile state. Acquire and hype campaigns suppress recent returners. A finite save path exists — care, exchange, or a stop. It does not share DNA with win-back.

04

Suppress

Recent returners off hype and acquire for a written window. Then wire: Save path → finite (one reason, one next SKU or a human); not a coupon war

DTC brands feel this as A returner gets the same drop as a fan. Two databases: Shopify returns and Klaviyo still in 'customer' joy flows.

Refunded or returned is a profile state

Why

Questions people actually ask

Pushback is normal

Why not just buy another Shopify + Klaviyo feature?

Because the login already exists. Shopify refunds. Klaviyo never hears it. A new feature on a missing spec is a second database. Finish this edge first: Refunded Order → profile property/state returned; exit post-purchase and review asks.

Why start with objects instead of a workflow?

Day one: a returner gets the same drop as a fan — that is the leak. Refunded is a profile state. Suppress acquire. Write a finite save. Write how it differs from win-back. Do not automate bitterness. Do not automate clinginess. Workflows on unnamed objects fire on folklore. Name contact (or profile), stage or state, and the writer (form, calendar, metric) before any on-switch.

What does “wired” actually mean?

A test conversion creates or updates one person, on the right stage or state, with the fields the next sequence will read. Refund a $1 order. Confirm the profile state. Confirm they do not get the happy post-purchase or a 'you're going to love it' campaign. Confirm a finite save email or silence, as written. Confirm win-back does not collide. If you merge after the test, identity is wrong — fix that, do not add a dedupe automation.

Why write it down if the team already knows?

If it is only in someone's head, a new hire needs a story, reporting cannot be defended, and automations fire on folklore. Writing is how two people mean the same object on Monday.

Why does this keep coming back after we 'set it up'?

Because setup was a project, not a review. Flow length (Then stop) is how you stop the leak returning dressed as a new feature. If Placed Order is dirty, every metric is theatre. If browse collides with cart, you trained people to ignore you. Discount-first abandon trains the wrong buyer — especially when consideration is long. Score the system. Then ship the two worst gaps. Not another brand story.

Why should DTC brands care about this versus more leads?

More leads into a leak is a more expensive leak. Refunded/returned is a profile state. Acquire and hype campaigns suppress recent returners. A finite save path exists — care, exchange, or a stop. It does not share DNA with win-back. Watch metric before you buy traffic. If that number is folklore, acquisition is a vanity spend.

What if we do not have time?

Then you only have time for the objects page and one test conversion. Refunded or returned is a profile state That is the intern version of strategy. Protect it from a second priority for seven days.

03

Skip this / do this

Same four moves

Skip this

Leaving objects unnamed because Shopify + Klaviyo is “set up”.

Do this

Refunded/returned profile state, Shopify refund metric, acquire-campaign suppression, finite save path, exclusion vs win-back, Klaviyo flow.

Skip this

Building a workflow or flow before a writer lands on one contact.

Do this

Refunded Order → profile property/state returned; exit post-purchase and review asks

Skip this

Calling it done because a screenshot looks busy.

Do this

Refund a $1 order. Confirm the profile state. Confirm they do not get the happy post-purchase or a 'you're going to love it' campaign. Confirm a finite save email or silence, as written. Confirm win-back does not collide.

Skip this

Leaving “VIP” to chance.

Do this

VIP does not silently include this week's refunds.

Misses

How this usually goes wrong

Then the fix

The usual miss

Calling Shopify + Klaviyo “set up” because someone logged in and imported a snapshot.

Do this instead

Refunded/returned actually fires. Verified with a test order. Then prove write-in: Refund a $1 order.

The usual miss

Building the workflow or flow before the writer (form, calendar, shop event) lands on one contact.

Do this instead

Connect Refunded Order → profile property/state returned; exit post-purchase and review asks first. Automations on a missing writer invent a second database.

The usual miss

Adding a page, form, flow, or campaign every time last week hurt.

Do this instead

Name which edge is missing. Fix that edge. Hurt is usually a skipped write-in, not a missing asset.

The usual miss

Reporting that nobody will defend in a meeting — screenshots, vanity opens, 'interested' counts.

Do this instead

Metric: Fires. Test refund this week. If you cannot say it out loud, it is not a scoreboard.

The usual miss

Hiring or retaining an agency to invent the spec while also running the calendar.

Do this instead

Hands on a known sequence are useful. Hands inside a missing spec pick the louder job (the calendar) and the leak stays.

04

What to watch

A scoreboard

Metric

Fires

Test refund this week

Hype suppress

On

Window written in days

Flow length

Finite

Then stop

This week

Refunded or returned is a profile state

01

Refunded or returned is a profile state

02

Acquire campaigns suppress recent returners

03

A finite save path exists

04

It does not collide with win-back

Want the longer lesson, not the page for this niche? Post-purchase has an order of operations

Working notes

DTC Retention Scorecard

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.

Request the notes ↗
Wire

This job is a connection, not a geo page

Hub only

Returns flow does not split by niche and city. The wiring is the same: objects, edges, one test conversion. Read a connect map if two tools are already in the stack, or a vertical essay if the language needs to change.

Wire

Calendly only counts when GoHighLevel sees the booking

A full calendar and an empty pipeline is two databases.

Read ↗
Wire

ScoreApp is a door. GoHighLevel is the follow-up.

A high score in a CSV is not a qualified opportunity.

Read ↗
Wire

A form is a writer, not a lead vault

If the thank-you does not change the contact, the page was a brochure.

Read ↗
beauty brands

Beauty retention is a cadence problem more than a creative problem

Revenue per recipient on flows is the number. Open rate is a meeting.

Read ↗
supplement brands

Supplements are a subscription and replenishment system pretending to be a brand

If Placed Order is dirty, every flow metric is theatre. Fix the event before the subject line.

Read ↗
apparel brands

Apparel lives on returns, second purchase, and segments that are not all subscribers

Returns and second purchase are different states. Mailing a returner like a VIP is how you look careless.

Read ↗
Next

If the leak is expensive, talk.

Email and WhatsApp stay open. A call is for installing the system.