A patron cancels at 11:42 PM on a weeknight. Whatever reason they had — budget, life moved on, the work no longer fits their shelf — the very last thing they want in their inbox the next morning is an email from you that opens with "we miss you already."
So this sequence doesn't send that email. It waits three days, then sends a short, honest check-in. Then it waits eleven more days and sends one more — a quieter "the door is still open." Two emails, two weeks, and nothing in the first 72 hours. That gap is the whole point.
This post walks the exact Shopify Flow that makes it work — one trigger, three checkpoints, two sends, 14 days. Copy the chart, paste the values, ship the sequence.
Before you start
You need three things, and only three:
- A Shopify store with the free Shopify Flow app installed (Settings → Apps → search "Shopify Flow").
- Shopify Email (or any marketing tool that exposes a "marketing
activity" Shopify Flow can call). Two activities — one per email —
saved as drafts before you start. Name them clearly:
Winback · Cancel · 01,Winback · Cancel · 02. - FanConvert connected to your Patreon and your Shopify store. That is
the small piece of software that listens to every Patreon membership
moment and marks the matching Shopify customer with the sequence label
fanconvert:winback_cancelthe second a cancellation comes through.
If you have all three, this is a 15-minute job.
The chart, in one picture
Here is the Shopify Flow you are about to build. One trigger up top, an immediate label check (so customers whose label is something else fall out before the timer starts), a 3-day cool-off, then the condition-send pattern repeated twice over 14 days.
Here is the cadence as a table, since most of the actual setup work is pasting these values into the Shopify Flow UI:
| Stage | Action | Wait before this stage | Day in sequence |
|---|---|---|---|
| — | Initial label check | (immediate) | Day 0 |
| 1 | Send Winback · Cancel · 01 | 3 days | Day 3 |
| 2 | Send Winback · Cancel · 02 | 11 days | Day 14 |
Build it in six steps
1. Create the workflow
Shopify admin → Apps → Flow → Create workflow. Name it
Winback · Cancel · Patreon so a future-you, scrolling a list of 12
workflows, knows what it does without opening it.
2. Pick the trigger
Click Select a trigger and pick Customer tags added (under the
Shopify Admin category). This is the trigger Shopify fires the second
FanConvert marks a customer with the fanconvert:winback_cancel label.
There is nothing to configure on the trigger itself.
3. Add the immediate label check
Click + → Condition directly below the trigger. In the condition builder:
- Field:
customer.tags - Operator: any item
- Inner field:
tags_item - Inner operator:
is equal to - Inner value:
fanconvert:winback_cancel
This is the gate that runs before any wait. Shopify Flow fires the "Customer tags added" trigger for every tag, not only this one — without this immediate check, every tag on every customer would start a 3-day timer. The check ends those runs in milliseconds.
4. Add the 3-day cool-off
On the condition's true branch, click + → Wait. Set duration to
3 days. This is the cool-off. No email goes out during this window.
5. Add the second condition + first send
After the wait, add another condition (same tags_item == "fanconvert:winback_cancel" check) and on its true branch, add a
Send marketing activity action. Pick Winback · Cancel · 01 from
the dropdown. Leave customer_id at its default (customer.id).
If the patron re-subscribed during the cool-off, FanConvert has already lifted the label, this condition returns false, and no email goes out. That is the safety check working.
6. Add the 11-day wait, the final condition, and the second send
Click + → Wait under the send. Set duration to 11 days.
After the wait, add the final condition (same check again) and on
its true branch, add the second Send marketing activity with
Winback · Cancel · 02. There is no wait after the last send — the
sequence ends there.
Save the workflow. Toggle Active at the top.
You are done.
What "done" looks like
Open your Shopify customers list, pick a test customer (yourself, on
a second email account), and apply the label
fanconvert:winback_cancel manually — just type it into their tags
field and save.
In the Shopify Flow run log (Apps → Flow → your workflow → Runs) you
should see the trigger fire, the first condition return true, and a
3-day wait scheduled. To rehearse the rest without waiting three days,
edit the wait duration to 1 minute, save, and re-trigger on a fresh
test customer. The first email should land within a minute, and the
second roughly eleven minutes later. Revert the wait to 3 days and
11 days before going live.
Remove the label from a third test customer during the wait. The next condition should return false and the run should end with no further sends.
Three things that bite people
The cool-off is the feature, not a delay to optimise away. It is tempting to shorten the 3-day wait to "catch them while they're still thinking about it." Don't. A cancellation email that lands twelve hours after the cancel button reads as a sales pitch — and the patron is right. Three days lets the moment settle. The two emails that follow are more likely to be opened, replied to, and (if it's the right patron) acted on. If you shrink the cool-off, shrink it to two days, never zero.
The label is case-sensitive and exact. Shopify Flow's is equal to
does a strict string match. fanconvert:Winback_Cancel,
fanconvert: winback_cancel (notice the space), and
fanconvert:winback-cancel (notice the hyphen) all silently fail.
FanConvert always writes the exact form fanconvert:winback_cancel —
all lowercase, underscores, no spaces. Match that in your condition or
nothing fires.
Re-check the label at every stage, including the immediate one. The pattern looks redundant — one check at the top, one before each send. It is not. A patron who cancels on Sunday, reads your next post on Tuesday, and re-subscribes on Wednesday morning needs to not get a winback email Wednesday afternoon. FanConvert lifts the label the second the new pledge comes through; the condition at every stage is what turns that signal into "no further sends." Without those checks, the patron is back on board AND getting "we miss you" emails. Awkward.
What about the other three sequences
The shape is identical (with cadence variations). Build three more workflows, one per sequence, each watching for its own label:
| Sequence | Label to watch for | Typical cadence |
|---|---|---|
free_to_paid | fanconvert:free_to_paid | 5 emails, 17 days |
onboarding | fanconvert:onboarding | 3 emails, 10 days |
winback_cancel | fanconvert:winback_cancel | 2 emails, 14 days |
winback_denied | fanconvert:winback_denied | 3 emails, 12 days |
Same trigger, same condition shape. Once you have the first one in muscle memory, the other three take about ten minutes each.
