Iterable

Win-Back Campaigns with Iterable

How to win back users using Iterable. Step-by-step implementation guide with real examples.

RD
Ronald Davenport
March 14, 2026
Table of Contents

What Win-Back Campaigns Actually Require

Re-engaging churned users is not about sending a coupon and hoping for the best. Effective win-back campaigns require precise segmentation, multi-channel orchestration, and the ability to branch logic based on real-time behavior. Iterable handles all three — if you set it up correctly.

This guide walks through exactly how to build a win-back campaign in Iterable, from segmentation through execution, including where the platform excels and where you need to work around its constraints.

---

Define "Lapsed" Before You Build Anything

Your win-back campaign is only as good as your definition of who qualifies for it. Iterable does not come with a pre-built lapsed-user definition. You set it.

Common lapse thresholds by vertical:

  • E-commerce: No purchase in 60–90 days
  • SaaS: No login in 30–45 days
  • Media/content apps: No session in 14–21 days

Inside Iterable, you define these users using Segments. Build a dynamic segment using event-based criteria — for example, `Last Purchase Date` is more than 60 days ago and `Last Email Open` is more than 30 days ago. Dynamic segments update automatically, so new lapsed users enter your win-back flow without manual intervention.

Do not rely on a single criterion. Users who stopped purchasing but still open emails are not fully churned — they just need a different message. Layer your segment logic accordingly.

---

Build the Flow in Workflow Studio

Workflow Studio is Iterable's visual journey builder. This is where your win-back logic lives. The canvas-based interface lets you connect triggers, delays, conditional branches, and channel sends in sequence.

Step 1: Set the Entry Trigger

Set your workflow entry to Segment Entry rather than a one-time event. This ensures the workflow remains live and pulls in users as they hit your lapse threshold on an ongoing basis. Set a re-entry window — typically 90 days — to prevent the same user from re-entering before the current campaign completes.

Step 2: Structure Your Message Sequence

A standard win-back sequence runs 3–5 touches over 2–4 weeks. Here is a proven structure:

  1. Day 0 — Email: Acknowledgment. "We noticed you've been away." No discount yet. Remind them of value.
  2. Day 3 — Email: Social proof or new feature. Show what's changed since they left.
  3. Day 7 — SMS (if opted in): Short, direct. One sentence and a link.
  4. Day 10 — Email: Incentive. This is where you introduce a discount or offer if they still have not re-engaged.
  5. Day 14 — Final email: Last chance message. Make it clear this is the end of the sequence.

In Workflow Studio, each step connects via a Delay node. Set delays using business days or exact hours depending on how time-sensitive your product is.

Step 3: Add Behavioral Branching

This is where Iterable's flexibility matters. After each send, add a Yes/No Split node that checks whether the user has converted — made a purchase, completed a login, or triggered whatever event signals re-engagement.

If the user converts: exit them from the win-back flow immediately and route them to your standard onboarding or retention flow. Continuing to send win-back messages to a re-engaged user is a deliverability and brand problem.

If they do not convert: continue to the next step in the sequence.

Use Iterable Events — custom events you fire from your backend or app — as the trigger condition inside these splits. For example, fire a `purchase_completed` event when a user buys, then check for that event in your branch logic.

---

Personalization Beyond First Name

Generic win-back emails fail. Iterable's Handlebars templating inside its email editor lets you pull in user profile data and event history dynamically.

Getting the most out of Iterable?

I'll audit your Iterable setup and show you where revenue is hiding.

Practical personalizations that move conversion rates:

  • Last purchased product: Pull `user.lastProductName` into the subject line or hero copy
  • Days since last activity: Calculate and display the exact gap — "It's been 47 days since your last order"
  • Category affinity: If you track browsing or purchase categories on the user profile, show products from their preferred category

Iterable also supports Catalog — a product feed feature that lets you reference external data tables inside templates. If you maintain a product catalog in Iterable, you can dynamically insert recommended products into win-back emails based on user attributes, without hardcoding anything.

---

SMS and Push in the Win-Back Sequence

Iterable has native SMS and mobile push — no third-party connector required. This matters for win-back because multi-channel sequences outperform single-channel by 25–40% in re-engagement rates across most benchmarks.

For SMS: Keep win-back SMS to one message per sequence, placed mid-funnel (around day 7). Iterable's SMS node lets you set sender IDs and opt-out handling natively. Always confirm SMS opt-in status before sending — use a filter node before the SMS step that checks `smsSubscribed = true`.

For push notifications: Add a push step only if the user has the app installed and push enabled. In Workflow Studio, use a Filter node before push sends that checks `pushOptIn = true` and `appInstalled = true`. Sending push to users who revoked permissions wastes nothing but contributes to negative signals in app stores.

---

Suppression and List Hygiene

After a win-back sequence ends without re-engagement, do not leave users in your active send pool. Create a suppression segment for users who completed the win-back flow without converting, and exclude them from future broadcast campaigns.

Iterable allows you to add users to suppression lists programmatically via API or by using a workflow action at the end of your sequence. Set an Update User node at the final step that writes a profile attribute — for example, `win_back_status: unresponsive` — and then build a global suppression filter based on that attribute.

This protects your sender reputation and keeps your active list accurate.

---

Where Iterable Has Limitations for Win-Back

No honest implementation guide skips this section.

  • No built-in RFM scoring: Iterable does not calculate recency, frequency, and monetary scores natively. You need to compute these upstream in your data warehouse or a tool like Segment, then push scores to Iterable as user profile attributes.
  • Reporting is workflow-level, not campaign-level across journeys: If you run multiple win-back variants or want to compare performance across time periods, Iterable's native analytics require manual effort or export to a BI tool.
  • Catalog has size limits: If your product feed is large (10,000+ SKUs), Catalog performance can degrade. Test this before building personalization logic that depends on it at scale.

---

Frequently Asked Questions

How do I prevent users from receiving win-back emails if they re-engage mid-sequence?

Use a Yes/No Split node after each message step in Workflow Studio. Set the condition to check for your re-engagement event — such as `purchase_completed` or `session_started` — within the delay window. If the event fires, route users to an exit or to a separate retention workflow. Do not rely on unsubscribes to clean this up; by the time someone unsubscribes, the damage is done.

Can I A/B test the win-back offer amount inside Iterable?

Yes. Iterable has a native Experiment node in Workflow Studio that splits users across variants. You can test a 10% discount against a 20% discount against a free shipping offer by routing different percentages of your win-back segment to different message branches. Results are tracked at the workflow level under the Experiments report.

What is the right re-entry window for a win-back workflow?

Set it to match or exceed the full length of your sequence, plus a buffer. If your sequence runs 14 days, set re-entry to 90 days minimum. This prevents a user who re-engages briefly and then lapses again from re-entering the flow while it is still completing. Most teams set this to 90–180 days depending on their purchase cycle.

Does Iterable integrate with CDP platforms to enrich win-back segments?

Yes. Iterable connects natively with Segment and supports webhook and API-based integrations with other CDPs. If you are computing churn scores or RFM models in a CDP or data warehouse, push those scores to Iterable as custom user attributes and build your win-back segment filters on top of them. This is the most scalable approach for teams with complex segmentation needs.

Related resources

Get the Lifecycle Playbook

One framework per week. No fluff. Unsubscribe anytime.