---
title: "How to set up a Winbacks flow"
slug: "how-to-set-up-a-winback"
updated: 2026-03-25T15:27:14Z
published: 2026-03-25T15:27:14Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://help.skio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to set up a Winbacks flow

> [!NOTE]
> New to Winbacks? Start with [Getting started with Winbacks](/help/docs/getting-started-with-winbacks) for an overview of how the feature works before diving into setup.

## Before you start

- You must have an active [Cancel Flow](https://help.skio.com/docs/cancel-flow) set up in your **Skio Dashboard**. Winbacks only trigger when a subscriber cancels through the Cancel Flow — admin and API cancellations don't count.
- You can only have one active Winback flow at a time. If you already have one running, you'll need to disable it before activating a new one.
- If you plan to route subscribers by cancellation reason, make sure your Cancel Flow has cancellation reasons configured.
- If you're using Klaviyo or Postscript for delivery, make sure your integration is connected under **API & Integrations** > **Integrations**.

## Step 1: Navigate to Winbacks

1. In the left-hand menu of your **Skio Dashboard**, go to **Retain** > **Winbacks**.
2. Click **Create new winback** in the top right corner. The visual flow builder opens with a name field at the top and a pre-placed **Trigger** node on the canvas.
3. Enter a name for your flow in the **Winback title** field. This is for internal reference only.

## Step 2: Configure the trigger

The **Trigger** node is already on the canvas and set to **After cancel flow cancellation** — this can't be changed. Every Winback flow starts when a subscriber completes a cancellation through your Cancel Flow.

![](https://cdn.us.document360.io/a953bba6-c70d-43ce-bc77-d7f32a8fc514/Images/Documentation/image(69).png)

The trigger node also controls your initial delay. The **Delay journey** toggle is on by default, with a default delay of `7 days`. To change it, update the duration and unit fields directly on the node. You can set the delay anywhere from 1 hour up to 90 days.

> [!TIP]
> **Tip:** Match your delay to your product's consumption cycle. Fast-moving consumables like coffee or supplements typically work well with a 3–7 day delay. Products with slower depletion rates — like skincare — often perform better with a 14–30 day delay, giving subscribers time to actually finish what they have before you reach out.

### Adding a trigger filter (optional)

Define trigger filters to control which customers go through the Winback flow.

****Customer-based conditions****

- **Customer tag**: Filter by whether a customer has or does not have a specified tag.
- **Credit balance**: Filter customers based on their available store or subscription credit balance.
- **In Tier:** Target customers who are currently in specific loyalty tiers.
- **Distance to tier:** Target customers based on how close they are to reaching their next loyalty tier (measured by order count, LTV, or product count) and their current tier level.
- **Tier at risk:** Target customers whose current tier is at risk of being lost due to tier expiry rules.

****Subscription-based conditions****

- **Order number**: Filter by the current order number (for example, a subscription with 3 orders would have order number = 3).
- **Total quantity**: Filter by total quantity of products in the subscription (for example, 1 × Product A and 1 × Product B = quantity of 2).
- **Total value**: Filter by total dollar value of the subscription (sum of each product's subscription price × quantity).
- **Subscription creation date**: Filter by when the subscription was created.
- **Day of week**: Filter subscriptions with a specific charge day of the week.
- **Discount code**: Filter subscriptions that contain specific discount codes.
- **Is prepaid renewing**: Filter prepaid subscriptions by whether they are set to renew (continue into another term) or end after the current prepaid cycle.
- **Migrated from another platform**: Identify subscriptions migrated from another platform (only captures the migrated subscription, not new subscriptions created by the same customer).
- **Next billing date**: Filter subscriptions where the next billing date falls on, before, or after a selected date.
- **Shipping interval**: Filter by how often the subscription ships (for example, every week, every 2 weeks, monthly).
- **Subscription country**: Filter by shipping address country (supports multiple selections). Condition can be set to **is** or **is not** to include or exclude customers in the selected countries.
- **Subscription ID**: Enter specific subscription IDs to target with the operation.
- **Subscription note**: Filter subscriptions based on keywords or text stored in the internal subscription note.
- **Subscription status**: Filter by status (Active, cancelled, failed, under review, paused).

****Product-based conditions****

- **Contains products:** Identify subscriptions that include a specific product.
- **Contains dynamic boxes:**Filter subscriptions that include a specific dynamic build-a-box product.
- **Contains static boxes:** Filter subscriptions that include a specific static build-a-box product.
- **Exclude products:** Identify subscriptions that do not include a specific product (helpful when paired with “contains products”).

****Other conditions****

- **Audit log**: Filter subscriptions based on specific audit log actions.
- **Cancel Flow**: Filter subscriptions that had X rebuttal shown and was saved or not saved.
- **Quick action**: Filter customers or subscriptions based on whether a specific Quick Action link has been actioned, or viewed but not actioned.
- **Surprise and Delight**: Filter customers who were or were not qualified for a surprise and delight gift.

## Step 3: Add a Switch node (optional)

A **Switch** node lets you route subscribers into different paths based on specific conditions — so you can tailor the offer to why they cancelled instead of sending everyone the same thing.

To add a Switch node, click the **+** icon on the canvas after your trigger and select **Switch**. The node appears on the canvas with a default **Path A** and a **Conditions not met (If: Else)** fallback path.

Click **Edit path(s)** to open the **Configure switch** sidebar.

### Configuring paths

Each path has a **Path name** field and a **Conditions** section. Click **+ AND condition** to define what subscribers need to match to be routed into that path.

Click **Add path** to create additional paths for different subscriber segments. Always keep the **Conditions not met** fallback path — this catches any subscribers whose cancellation reason doesn't match your defined rules.

Click **Save** when your paths are configured.

> [!NOTE]
> **Example:** Create one path for subscribers who cancelled because the product was too expensive, and route them to a discount offer. Create a second path for subscribers who said they had too much product, and route them to a frequency change instead. Everyone else falls into the fallback path with a default offer.

## Step 4: Create a landing page

The **Create a landing page** node generates the personalized page your subscriber sees when they click the link in their notification. Add this node under each Switch path (or directly after the trigger if you're not using a Switch node).

Click **Configure landing page** on the node to open the configuration modal.

### Basic settings

- **Name** (required): An internal reference name for this landing page.
- **Description** (optional): An internal note about this page.
- **Custom title for customer page** (optional): The headline your subscriber sees on the landing page. Defaults to "Preview and confirm actions" if left blank.
- **Custom description for customer page** (optional): Supporting copy below the headline. Defaults to "Check to make sure the queued actions and impacted subscription are correct, then Confirm to perform the actions."

### Banner image (optional)

Upload separate banner images for **Desktop** and **Mobile**. Images should use a 3:1 aspect ratio (e.g. 1200×400px). Accepted formats: SVG, PNG, JPG, or GIF (max 2MB).

You can also add a **Banner link** — a URL the subscriber is taken to if they click the banner image.

### Actions

The **Actions** section is where you configure what happens when the subscriber clicks the reactivation button. **Reactivate** is the first action and is always required — it's pre-placed and can't be removed.

Click **+ Add action** to stack additional incentives on top of reactivation. Available actions:

- **Add one-time upsell:** Adds a one-time upsell to the subscription at the same price used in the Customer Portal.
- **Add product variant:** Adds a specific product variant to the subscription. The variant must have a selling plan that matches the subscription's interval. Prepaid subscriptions support one-time upsells.
- **Add multiple product variants:** Same as above, but for multiple variants at once.
- **Apply discount:** Applies a Shopify discount code to the subscription.
- **Change interval:** Changes the subscription's billing interval (e.g., from every 4 weeks to every 6 weeks).
- **Swap product:** Swaps the subscribed product for a different variant in identical or adjustable quantities. Does not apply to one-time upsells.
- **Award credits:** Adds Skio credits to the subscriber's account.
- **Add free gift:** Adds a product to the subscription as a free one-time item at $0.

You can stack multiple actions — for example, reactivate + apply a discount + add a free gift. Click **+ Add action** again to keep adding.

Click **Preview** at any time to see how the landing page will appear to your subscriber. Click **Save changes** when done.

> [!NOTE]
> The landing page link automatically expires when a new landing page node is reached in the journey, or when the journey ends.

## Step 5: Send a landing page notification

The **Send a landing page notification** node is what actually delivers the offer to your subscriber. It must follow a **Create a landing page** node in your flow.

Click **Configure notification** to open the configuration sidebar.

### Winback Offer Summary (optional)

At the top of the sidebar, fill in the **Winback Offer Summary** field. This is a plain-language description of the offer (e.g., "Reactivate, 10% off, and free gift"). It's sent as `{{event.winbackOfferSummary}}` in integration events so you can surface the offer description dynamically in your email template without needing a separate template per path.

### Choosing a delivery method

You have two options: **Custom email** or **Integration**.

#### Custom email

Use this option to send directly through Skio's mail server — no external platform required.

- **Subject line:** The email subject your subscriber will see.
- **Email body:** Use the rich text editor to write your email copy. Click **+ Insert variable** to add dynamic content. You must include `{{landing_page_url}}` somewhere in the body — this is the unique reactivation link generated for each subscriber.

Click **Save changes** when done.

#### Integration (Klaviyo or Postscript)

Use this option to trigger a flow in Klaviyo or Postscript instead of sending through Skio.

- **Integration event custom name:** Give the event a name that will appear in your external platform as the flow trigger.
- **Variables List:** Copy any of the following variables to use in your external platform's email template:

| Variable | Description |
| --- | --- |
| `{{first_name}}` | Subscriber's first name |
| `{{last_name}}` | Subscriber's last name |
| `{{address}}` | Subscriber's address |
| `{{event.winbackOfferSummary}}` | Plain-language summary of the offer |
| `{{event.cancellationReason}}` | The parent cancellation reason selected |
| `{{event.finalCancellationReason}}` | The final sub-reason selected |
| `{{landing_page_url}}` | The unique landing page URL for this subscriber |

- **HTML Builder:** Use this tab to copy preformatted HTML with variables already embedded, which you can paste directly into a Klaviyo or Postscript template.

Click **Save changes** when done.

## Step 6: Add a Wait node and follow-up (optional)

After your notification node, you can add a **Wait for subscription reactivation** node to check whether the subscriber reactivated before sending a follow-up offer.

The node has a configurable **Delay** (default: 7 days) — click **Edit delay** to change it. After the delay, the flow branches into two paths:

- **Subscription reactivated:** The subscriber has come back. The flow ends here.
- **Subscription still cancelled:** The subscriber hasn't reactivated. You can add another **Create a landing page** + **Send a landing page notification** sequence here with an escalated offer (e.g., a free gift after an initial discount didn't convert).

> [!NOTE]
> When a new landing page node is reached, the previous landing page link is automatically invalidated. This prevents subscribers from redeeming an older, less generous offer after a better one has been sent.

## Activating your Winback

Once your flow is configured, click **Save** in the top right corner of the builder. To go live, activate the flow from the **Winbacks** tab.

> [!WARNING]
> Once a Winback is active, the flow becomes read-only. If you need to make changes, Skio will create a duplicate draft with your edits applied. Your live flow keeps running until you publish the updated version.

---

## FAQ

**Can I have more than one active Winback at a time?** No. You can only run one active Winback flow per store at a time. Use the Switch node within a single flow to serve different offers to different subscriber segments.

**What if a subscriber reactivates on their own before the delay ends?** They're automatically removed from the flow and will never receive the offer. Skio checks the subscription status at the end of each delay period before proceeding.

**Do admin or API cancellations trigger a Winback?** No. Winbacks only trigger when a subscriber cancels through the Cancel Flow. Admin-initiated and API-driven cancellations are excluded.

**Can a subscriber enter a Winback flow more than once?** No. Each subscriber can only enter a Winback flow once.

**What happens to subscribers already in a flow when I publish an updated version?** When you activate a new version, you'll be prompted to either let existing subscribers finish their current path or abort them and move all new cancellations into the updated flow.
