How to build an abandoned cart flow in Bloomreach

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

    Short answer

    In Bloomreach Marketing (formerly Bloomreach Engagement), build a scenario that starts on the cart_update event and waits about an hour. Then check that this is still the customer's latest cart update, that they have not bought since, that the cart still has items and that they have consented to email, and send a reminder that shows the actual cart items. Add a second reminder about a day later with the same checks, and keep a random holdout group so you can prove the revenue it adds.

    Abandoned cart is usually the right first journey in a Bloomreach project, because the intent is clear and the logic is simple. It is also easy to get subtly wrong. Here is how I build it, step by step, and the mistakes I see most often. Node and setting names are as Bloomreach shows them in November 2026.

    1. Check the data first

    Before you open the scenario editor, open a few real customer profiles and confirm:

    • The cart event arrives on every add and every removal, and its product list holds the full cart after each change, with product IDs and quantities. The standard Bloomreach name is cart_update, but your implementation may use another name. Names, images and prices can come from the event or from your product catalog.
    • The purchase event arrives promptly and uses the same product IDs as the cart event.
    • The customer is identified, with an email address, at the time of the cart. Anonymous carts cannot be emailed.
    • Email consent is recorded, so the scenario can check it.

    If any of these fail, fix the tracking first. The audit checklist covers the full set of data checks.

    2. The trigger

    Start the scenario with an On event trigger on cart_update. It fires on every cart change, so someone who adds five products starts five runs. That is fine, as long as each run checks after the wait that its event is still the latest cart update: only the newest run sends. Then add a condition that the customer has not passed this scenario's A/B split in the last 7 days (Bloomreach suggests at least 7), so one person gets at most one reminder a week, holdout included.

    3. Wait, then check before sending

    Add a wait of about one hour, then a condition node that checks all of these before any message:

    • This run's cart update is still the latest one: the timestamp of the last cart_update equals the timestamp of the event that started the run. Do not round the timestamp down, or two updates in the same second can both send.
    • No purchase after that cart update.
    • The cart still has items: the latest cart event is not an empty cart.
    • The customer has an email address and has consented to marketing email in the right consent category. Select the same category in the email node too.
    • Any exclusions your business needs, for example customers with an open support case or staff accounts.

    Anyone who fails a check leaves the scenario. Set a frequency policy on the email node as well, so people who are in several journeys at once do not get too many messages.

    4. The reminder email

    • Show the actual items: product image, name and price, pulled with Jinja from the latest cart event or from your product catalog. Show the current price, not an old one, which means the catalog has to be kept up to date.
    • Link straight back to the cart, and check that the link restores the cart on mobile, where many of these emails are opened.
    • Add a fallback block for when product data is missing, so nobody gets an email with empty boxes.
    • Keep the copy short. The products do the work.

    5. A second reminder

    After another wait, typically around 24 hours, repeat the same checks and send a second message. This is the place to test social proof, reviews, or alternatives to the products in the cart. If you test an incentive, do it here and only for products with enough margin.

    6. Prove the lift with a holdout

    After the wait and the checks, right before the first email, add an A/B split that sends a small random share, for example 10%, down a branch with no messages. Placed there, both groups have met the same conditions. Compare purchase rate and revenue per customer between the holdout and everyone else over the same period, counting everyone the split assigned and not only those who got an email. That difference is what the journey actually adds, and it is the number to show leadership. With low traffic a 10% holdout takes a long time to read, so make it bigger.

    7. Test every branch before you start it

    Use the scenario's Test tab and test profiles to walk through each path: bought before the wait, emptied the cart, changed the cart again, no consent, consented and still carting. Check the email on mobile and in dark mode. Only then start the scenario, and watch the first day of real entries closely.

    The mistakes I see most

    • Reminders sent after the customer already bought, because the purchase event arrives late or uses different product IDs.
    • No consent condition in the scenario and no consent category set in the email node. Bloomreach recommends both.
    • One reminder per product added instead of one per cart, because nothing checks for the latest cart update.
    • A discount in the first email, which can teach customers to abandon carts.
    • No holdout, so nobody can tell whether the journey makes money.

    Once this is live, the next journeys to build are a welcome series and browse abandonment; the 30-day plan shows the order. After those comes the win-back flow.

    Frequently asked questions

    How long should I wait before the first abandoned cart email?

    Start with about one hour and test it. Shorter waits catch people who are still deciding; longer ones can feel less pushy for expensive products. Use an A/B split in the scenario to compare two waits on real traffic instead of guessing.

    Should an abandoned cart email include a discount?

    Not in the first reminder. In my experience many people come back without one, and customers can learn that leaving a cart earns a code. If you test an incentive, keep it for the second or third reminder, limit it to products with enough margin, and measure it against a holdout.

    Can Bloomreach send abandoned cart reminders by SMS or push?

    Yes, if those channels are set up in your Bloomreach project, the customer has a phone number or push token, and has consented to them. The scenario logic stays the same; only the action node and the contact and consent checks change.

    How do I measure if the abandoned cart flow works?

    After the wait and the checks, send a small random share of eligible customers down a branch with no message, and compare purchase rate and revenue between that holdout and the customers who got the reminders over the same period. Attributed revenue alone overstates the effect, because some of those people would have bought anyway.

    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