How to build a win-back flow in Bloomreach

    By David Lora Junca, independent Bloomreach consultant · Published · Updated

    Short answer

    Define "lapsed" from your own repeat-purchase timing and build a segment of customers past that point who still have consent. In Bloomreach Marketing (formerly Bloomreach Engagement), let a daily Repeat scenario, filtered by that segment and by a win-back date attribute, move lapsed customers into a short sequence of two or three messages. Stop the sequence as soon as someone buys, record who received it so they do not loop, and compare reactivation with a random holdout.

    Win-back is the journey that brings back customers you already paid to acquire. In the projects I see, it is often built on a guess, usually "no purchase in 90 days". Here is how I build it in Bloomreach so it is based on your data and does not annoy the people it is meant to win back. Node and setting names are as Bloomreach shows them in November 2026.

    1. Define lapsed from your data

    Create two customer aggregates on the purchase event, the first purchase date and the second one (the same aggregate with Skip first set to 1), and an expression for the days between them. Then look at how that gap is spread across customers with at least two purchases. Most repeat buyers come back within a certain window; customers well past it are your lapsed group. If you sell very different products, such as consumables and durable goods, define the window per category.

    2. Build the segment

    • Last purchase older than your lapse point, but not so old the address has gone cold. Mailing long-inactive addresses raises bounces and spam complaints, which mailbox providers such as Gmail watch closely.
    • Consent to marketing email in the right category.
    • Not already in the win-back flow, and not received it in the last several months.
    • Optional splits by value, for example higher-value customers get a more personal message.

    3. The scenario

    Use a Repeat trigger, for example daily. Bloomreach has no trigger that fires when someone enters a segment, so straight after the trigger add a condition node that lets through only customers who are in the lapsed segment and have no win-back date in the last several months. The trigger does not know who is new; the condition does. Right after that condition, record the date in a customer attribute with a Set attribute node, and add an A/B split with a random holdout that gets no messages, large enough to read the result.

    4. The sequence

    1. Message one: a reason to look again: what is new, back in stock, or relevant to what they bought before.
    2. Message two, about a week later: personalized product recommendations based on their history.
    3. Message three, optional: an incentive if your tests show it pays. Use unique codes imported into a Bloomreach voucher pool, so they are not shared, and keep the pool stocked: if it runs out of codes, the email is not sent.

    Keep each wait at 7 days or less. Bloomreach advises against longer waits, because customers sitting in a wait node are dropped if the scenario is stopped or hits an error. After each wait, check again that the customer has not bought since entering and still has consent, and set the consent category and a frequency policy on each email node, so win-back does not stack on top of your newsletters. A purchase ends the journey.

    5. Measure reactivation

    Compare the share of customers who buy again within, say, 30 days of entering, between the holdout and the customers who got the messages. Look at revenue per customer as well, because a discount can raise reactivation while lowering what each order is worth.

    Common mistakes

    • A 90-day rule copied from a blog post instead of your own purchase timing.
    • No record of who already received the flow, so the same people loop forever.
    • Leading with the discount, which can teach customers to wait for one.
    • Ignoring consent because the customer bought once, years ago.
    • No holdout, so the flow takes credit for customers who would have come back anyway.

    Win-back works best once the journeys closer to the purchase are live. If they are not yet, start with the abandoned cart flow; the 30-day plan shows the order.

    Frequently asked questions

    When is a customer lapsed?

    When they have gone clearly longer than usual without buying, measured on your own data. Look at how long repeat customers typically take to make their second purchase, and treat customers well past that point as lapsed. A fixed rule like 90 days fits some shops and is wrong for others.

    How many emails should a win-back flow send?

    Two or three is usually enough: a reminder of what is new or relevant, then personalized product recommendations, and an incentive only at the end if you use one. Each message should be skipped as soon as the customer buys.

    Should a win-back flow offer a discount?

    Test it rather than assume it. Some lapsed customers come back for a good reason to look, others need an incentive. If you use one, put it in the last message, use unique codes so they are not shared, and compare against a holdout.

    How do I stop customers from getting the win-back flow again and again?

    Record that a customer went through the flow, for example in a customer attribute with the date, and exclude anyone who received it in the last several months. Without this, the same lapsed customers re-enter every time the scenario runs.

    Sources

    What I checked this guide against on . Anything not listed here is my own experience from working in Bloomreach projects.

    Want this built in your Bloomreach project?

    I plug into your team and get priority campaigns live in 48 to 72 hours. Monthly subscription from £4,900, cancel any time with 30 days' notice.

    Book a free 30-minute call

    More guides