Back to blog
tutorialshopifywinback_denied

Set up your Winback · Decline sequence in Shopify Flow

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

FanConvert team8 min read
Set up your Winback · Decline sequence in Shopify Flow

A patron's card declines on a Wednesday morning. They don't know yet — Patreon emails them a generic "your payment didn't go through" notice, and most patrons archive that without reading. The patron still thinks they're supporting you. You still think they're a paid patron. And nothing about either belief is true.

The Winback · Decline sequence is the friendly nudge from you that Patreon's template can't be. It waits two days (in case the card update fixes itself, which it often does), then sends three short emails over the following ten days — each one a soft "your card seems to have expired, here is the one-click fix."

This post walks the exact Shopify Flow that makes it work — one trigger, four checkpoints, three sends, 12 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). Three activities — one per email — saved as drafts before you start. Name them clearly: Winback · Decline · 01, Winback · Decline · 02, Winback · Decline · 03.
  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_denied the second a declined-charge comes through.

If you have all three, this is a 20-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 2-day cool-off, then the condition-send pattern repeated three times over 10 more 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 · Decline · 012 daysDay 2
2Send Winback · Decline · 023 daysDay 5
3Send Winback · Decline · 037 daysDay 12

Build it in seven steps

1. Create the workflow

Shopify admin → Apps → Flow → Create workflow. Name it Winback · Decline · 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_denied 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_denied

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 2-day timer. The check ends those runs in milliseconds.

4. Add the 2-day cool-off

On the condition's true branch, click + → Wait. Set duration to 2 days. No email goes out during this window. Many card declines self-heal in the first 48 hours — see the gotchas section below for why this wait is the most important number in the workflow.

5. Add the second condition + first send

After the wait, add another condition (same tags_item == "fanconvert:winback_denied" check) and on its true branch, add a Send marketing activity action. Pick Winback · Decline · 01 from the dropdown. Leave customer_id at its default (customer.id).

If the patron updated their card during the cool-off and the next charge went through, FanConvert has already lifted the label, this condition returns false, and no email goes out.

6. Add a 3-day wait, the third condition, and the second send

Click + → Wait under the first send. Set duration to 3 days.

After the wait, add another condition (same check) and on its true branch, add the second Send marketing activity with Winback · Decline · 02.

7. Add a 7-day wait, the final condition, and the last send

Click + → Wait under the second send. Set duration to 7 days.

After the wait, add the final condition (same check again) and on its true branch, add the third Send marketing activity with Winback · Decline · 03. 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_denied 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 2-day wait scheduled. To rehearse the rest without waiting two days, edit each wait duration to 1 minute, save, and re-trigger on a fresh test customer. The first email should land within a minute, the second four minutes after that, the third eleven minutes after that. Revert the waits to 2 days, 3 days, 7 days before going live.

Remove the label from a third test customer during any of the waits. The next condition should return false and the run should end with no further sends.

Three things that bite people

Card declines often self-heal in the first 48 hours. The 2-day wait is the difference between sending three "your card declined" emails to patrons who already fixed it (annoying, makes you look careless) and sending zero emails to that group (the actual goal). Patreon retries the charge on a schedule, the patron updates their card, the next attempt succeeds, FanConvert lifts the label, the sequence stops before Email 1. If you shrink the 2-day wait to zero, you trade that quiet recovery for noise. Two days is the floor, not a ceiling.

The label is case-sensitive and exact. Shopify Flow's is equal to does a strict string match. fanconvert:Winback_Denied, fanconvert: winback_denied (notice the space), and fanconvert:winback-denied (notice the hyphen) all silently fail. FanConvert always writes the exact form fanconvert:winback_denied — all lowercase, underscores, no spaces. Match that in your condition or nothing fires.

Re-check the label at every stage, including the immediate one. A patron whose Email 1 lands on Day 2, who updates their card on Day 3, and whose next charge clears on Day 4 must not receive Emails 2 and 3 on Day 5 and Day 12. FanConvert lifts the label the moment the charge clears; the four checkpoint conditions are what turn that signal into "no further sends." Skip any of them and you'll email a paying patron three reminders to fix a card that already works. Worse outcome than not sending at all.

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 · Decline sequence