Automated Win-Back Journeys for Inactive Subscribers

Re-engagement usually means someone periodically remembering to pull a "hasn't opened in 90 days" list and sending a one-off campaign to it. A MailInApp journey removes the periodic part: a saved behavioral segment tracks who's gone quiet continuously, its segment-entered trigger enrolls a subscriber automatically the moment they cross that threshold, and the win-back email itself is a real scratch-to-reveal card, not another plain "we miss you" banner.

Subject

We miss you

A saved behavioral segment — "hasn't opened anything in 90 days" — feeds a journey's segment-entered trigger directly, so a scratch-off win-back offer goes out the moment someone actually goes quiet, with nobody remembering to pull a list.

Re-engagement campaigns usually run on a human's memory: someone periodically exports a "hasn't opened in N days" list and sends a one-off email to it. Behavioral segments and journeys remove the periodic part. A segment is a saved rule, continuously matched against your contacts; a journey's segment-entered trigger enrolls a contact the instant they start matching it — not on whatever cadence someone remembers to run the export.

Building the inactivity rule

The audience filter builder has Behavior and Commerce groups alongside the ordinary field conditions. Between them: seven metrics in total (opened, clicked, submitted, RSVP'd, and engagement score under Behavior; purchased and total revenue under Commerce), each with an optional "within the last N days" window. The classic win-back rule is one line: opened is empty, within the last 90 days. Save it under a name from the Segment picker above the filter, and it's reusable everywhere an audience filter already shows up.

What "saved" actually means

A segment is a snapshot of the rule, not a live query — the same "copy, not a link" behavior as saving a project as a template. Editing the rule later doesn't retroactively change a send that already used the old version. What is live is membership: the segment-entered trigger re-evaluates who currently matches on every processing tick, so newly-inactive contacts keep flowing into the journey without you touching the segment again.

The email itself: a reveal, not a banner

The starter version of this journey pairs the segment with a single send step mailing a Scratch-off card — "we miss you" as a tap-to-reveal prize rather than another flat discount-code line. Every scratch gesture has an always-visible fallback for any client that can't render the CSS technique behind it, so the offer itself never depends on the animation working.

Beyond the 90-day-open rule

The same mechanism works for any behavioral condition, not just opens. A repeat-buyer segment ("purchased more than once in the last 90 days") can trigger a loyalty-style journey instead. A "hasn't purchased in 90 days but used to" segment is a different kind of win-back than "never opens," and worth a different offer — a lapsed buyer already trusts your checkout, but a never-opener might not.

Cost of evaluating a behavioral segment

A segment built on contact fields alone costs exactly what an ordinary filter always did. A behavioral condition adds one extra read per contact at evaluation time — negligible for a manual send, and only paid by a schedule or journey sweep when the filter it's evaluating actually uses a behavioral rule in the first place.

Pair with the Automated Sunset Engine

A win-back journey catches inactive subscribers and gives them one last chance to re-engage. The Automated Sunset Engine is the next step after that: contacts who received the win-back offer but still didn't engage are automatically suppressed with reason "sunset", protecting your domain reputation without manual list cleaning.

The two features work together: set your win-back journey as the re-engagement journey in Settings → Deliverability → Sunset Policy. The engine enrolls newly-inactive contacts into that journey; those who still don't engage within the threshold window are suppressed automatically. See Automated Sunset Engine for the full configuration reference.

Getting started

Install the Re-engagement starter from the Journeys list page for the segment and email built together in one step. Or build your own: save a behavioral segment with an "opened, empty, 90 days" rule, then point a new journey's trigger at segment entered and add a send step for your win-back email. See Journeys for the full trigger and step reference.

A typical build-and-send sequence

  1. 1

    Build the inactivity segment

    Save a segment with one behavioral condition — "opened" is empty within the last 90 days — from the Behavior group in the audience filter builder.

  2. 2

    Set segment entered as the trigger

    Point a new journey's trigger at that saved segment — a contact enrolls the moment they start matching it, not on a schedule someone has to remember to run.

  3. 3

    Send the win-back offer

    A single send step mails the scratch-off email — the reveal itself is the reason to open this one over a plain re-engagement subject line.

  4. 4

    Let the segment keep working

    The segment is a saved snapshot of the rule, evaluated fresh at send time — so as your list keeps aging, newly-inactive subscribers keep flowing into the same journey with no manual re-export.

Frequently asked questions

Does the segment update automatically, or do I need to refresh it manually?

The rule is fixed once saved (a snapshot, not a live reference, the same "copy, not a link" behavior as saving a project as a template), but who currently matches it is always evaluated fresh — the segment-entered trigger sweep re-checks membership on every processing tick, so newly-inactive contacts keep enrolling without you touching anything.

Can I build a win-back segment off something other than opens?

Yes — the Behavior and Commerce groups cover seven metrics (opened, clicked, submitted, purchased, RSVP'd, engagement score, and total revenue), each with an optional "within the last N days" window, so a segment can just as easily be "purchased before but not in 90 days" as "never opened."

Is there a ready-made version of this I can install instead of building it?

Yes — Re-engagement is one of five one-click starter journeys: it creates the inactive-90-days segment and the scratch-off email project together, pre-wired and paused, ready to restyle before you turn it on.

Does a behavioral segment cost more to evaluate than a plain field filter?

It's one extra read per contact, negligible for a manual send and only paid by a journey or recurring-schedule sweep when its own filter actually uses a behavioral condition — a segment built purely on contact fields costs exactly what it always did.

Can the same segment feed more than one journey, or a manual send too?

Yes — a saved segment shows up anywhere an audience filter already does: a manual send, a recurring schedule, or another journey's own segment-entered trigger, not just this one win-back journey.

Build this in the studio

Start on the free plan — every interactive block and the full fallback engine are included on every tier.