Back to blog
tutorialshopifywinback_cancel

Set up your Winback · Cancel sequence in Shopify Flow

Two emails, a 3-day cool-off, 14 days end to end. The full wiring for the Winback · Cancel sequence in Shopify Flow — copy-pasteable, with the chart and every condition value spelled out.

FanConvert team7 min read
Set up your Winback · Cancel sequence in Shopify Flow

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:

  1. A Shopify store with the free Shopify Flow app installed (Settings → Apps → search "Shopify Flow").
  2. 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.
  3. 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_cancel the 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.

Loading diagram…

Here is the cadence as a table, since most of the actual setup work is pasting these values into the Shopify Flow UI:

StageActionWait before this stageDay in sequence
Initial label check(immediate)Day 0
1Send Winback · Cancel · 013 daysDay 3
2Send Winback · Cancel · 0211 daysDay 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:

SequenceLabel to watch forTypical cadence
free_to_paidfanconvert:free_to_paid5 emails, 17 days
onboardingfanconvert:onboarding3 emails, 10 days
winback_cancelfanconvert:winback_cancel2 emails, 14 days
winback_deniedfanconvert:winback_denied3 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.

Connect Patreon to your sequences in five minutes.

Pick a tier on Patreon and start your Winback · Cancel sequence