Abandoned Cart Sequence in AcelleMail (WooCommerce Trigger)

AcelleMail has a built-in "Abandoned Cart Reminder" trigger card — WooCommerce-specific via the vbrandsync plugin. Build a 3-email sequence (1h / 24h / 72h) in the visual flow builder. No webhook coding required.

What this is for

About 70% of e-commerce carts get abandoned. A 3-email sequence — gentle reminder → objection handling → urgency/incentive — typically recovers 3-8% of those carts. That's revenue you'd otherwise lose, automatically.

AcelleMail has a built-in Abandoned Cart Reminder trigger for WooCommerce-backed stores. This walkthrough builds the 3-email sequence in the visual flow builder, end to end.

Before you start

This automation is WooCommerce-specific. AcelleMail's abandoned-cart trigger fires when WC reports a cart abandonment via the AcelleMail sync plugin. Required:

  • A WooCommerce site running on WordPress
  • The AcelleMail sync plugin installed on that WP site (handles the cart → AcelleMail bridge)
  • A connected mail list receiving WC subscribers' contact info

If you're on Shopify / BigCommerce / a custom-built cart, this trigger doesn't fire. The alternative there is a Contact Attribute Update or API 3.0 trigger driven by your own webhook — see Advanced triggers.

Step 1 — Pick the Abandoned Cart Reminder trigger

Open Automation → + New Automation. The 12-trigger picker appears.

Create Automation trigger picker showing 12 trigger cards: Welcome new subscribers, Say goodbye to subscriber, Say 'Happy birthday', Subscriber added date, Specific date, API 3.0, Weekly recurring, Monthly recurring, Tag based, Remove Tag, Contact Attribute Update, and "Abandoned Cart Reminder — Send follow-up email to someone who has added items to their cart and left the site without purchasing." (bottom right card)

(Screenshot from Build a Welcome Email Series — same trigger picker.)

Click Abandoned Cart Reminder (bottom right). Then click the Configure tab and pick the mail list that mirrors your WC customer/subscriber list.

Step 2 — Lay out the 3-email backbone

The standard 3-email cadence:

Email Timing Job Tone
Reminder 1 hour after abandonment Gentle nudge, assume positive intent Helpful
Objection handler 24 hours after Address shipping / returns / security concerns Informative
Urgency + incentive 72 hours after Discount code or urgency hook Persuasive

In the visual flow builder, that's:

TRIGGER  → Abandoned Cart Reminder
WAIT     → 1h
SEND EMAIL → "You left something behind" (Reminder)
WAIT     → 23h    (total 24h since trigger)
SEND EMAIL → "Questions about your order?" (Objection handler)
WAIT     → 48h    (total 72h since trigger)
SEND EMAIL → "{{first_name}}, your cart expires soon" (Urgency)

You build this by clicking the + on each node's downstream arrow and picking Wait or Send Email. See the worked example in Welcome Series article §3 for what the canvas looks like with these node types wired up.

Step 3 — Stop the sequence when they convert

The single most important rule of abandoned-cart sequences: stop sending the moment the customer buys. Nothing is worse than a discount email landing 2 hours after they paid full price.

The pattern in AcelleMail:

  1. In WooCommerce / your sync plugin, configure a webhook to add the tag purchased-recent to a subscriber the moment their order completes.
  2. In the automation flow, after each WAIT and before each SEND EMAIL, add a CONDITION node:
CONDITION → Has tag "purchased-recent"?
            ├─ YES → END (exit the flow)
            └─ NO  → continue to next SEND EMAIL

This conditional check costs you 3 extra nodes (one per email), but it pays for itself the first time it catches a purchaser mid-flow.

Step 4 — Compose each email

Each SEND EMAIL node opens a side panel where you pick the email's template (or design it inline). Here's what each one should actually say.

Email 1 — Reminder (sent 1h after abandonment)

Subject:    You left something behind
Preheader:  Your cart is saved — pick up where you left off.
Body:       Hi {{first_name}},

            It looks like you left something in your cart. Life gets
            busy — we get it.

            [Product image from WC]
            [Product name + price]

            [Return to your cart] — button

            Your cart is saved and waiting for you.

Do NOT discount in Email 1. You don't know why they left — maybe they were just distracted. Offering a discount immediately trains future shoppers to abandon for a discount.

Email 2 — Objection handler (sent 24h after)

Subject:    Questions about your order?
Preheader:  Free returns, secure checkout, and we're here to help.
Body:       Hi {{first_name}},

            Still thinking it over? Here's what people ask us most:

              • Shipping: Free on orders over $50
              • Returns: 30-day, no questions asked
              • Payment: Stripe, PayPal, all major cards

            [Product image]
            ⭐⭐⭐⭐⭐ "Best purchase I made this year." — Sarah M.

            [Complete my purchase] — button

Use real social proof — pull testimonials specific to the abandoned product if your data allows.

Email 3 — Urgency + incentive (sent 72h after)

Subject:    {{first_name}}, your cart expires soon
Preheader:  Here's 10% off — because we want you to love this product.
Body:       Hi {{first_name}},

            Your saved cart expires in 24 hours. So we're sending one
            last nudge — with a small thank-you for sticking around.

            Use code WELCOME10 at checkout for 10% off.

            [Product image with sale price highlighted]

            [Claim my discount] — button

            (Only 3 left in stock at this price.)

Reserve the discount for Email 3 only. Customers who would have paid full price already converted from Email 1 or 2; the discount is for the long-tail holdouts.

Step 5 — Activate and monitor

After wiring nodes:

  1. Click Settings (top right of the builder)
  2. Confirm the connected list
  3. Toggle to Active
  4. The status badge flips to ACTIVE at the top of the canvas

From the Automations index, click Statistics on this automation's row to see:

  • How many subscribers entered the flow this week
  • Per-email open / click rates
  • Conversion rate (subscribers who bought during or after the sequence)

Test before activating. Add an item to your own cart in WC, walk away for 1+ hour, and confirm Email 1 arrives. If it doesn't, the WC↔AcelleMail sync isn't wired up correctly. Check the sync plugin's logs.

Cadence — why these specific intervals?

The 1h / 24h / 72h cadence isn't arbitrary:

Interval Why
1 hour Catches the "I'll come back to this" abandoners. Long enough they've moved on; short enough they still remember.
24 hours Next-day check-in feels like a real human touchpoint, not a sales push.
72 hours Three days is the practical window before they've fully forgotten or bought elsewhere. Beyond 96h, recovery rate drops to near-zero.

Push the second send to 36h or 48h if your audience is B2B / weekday-only. Pull the first send to 30 minutes if you have a flash-sale product where urgency is the value prop.

Common issues

What you see What to do
Trigger never fires The WC sync plugin isn't reporting cart events. Check the plugin's settings page → "Cart abandonment tracking" toggle + the connected AcelleMail mail list.
Customer received Email 3 after buying The purchased-recent tag isn't getting added on order completion, OR the CONDITION nodes aren't checking it. Audit the WC webhook + each SEND EMAIL's upstream CONDITION.
Subscribers from non-WC lists are entering The trigger is global to the connected list. If a non-WC subscriber lands in that list via signup form, they're eligible too. Filter via list, OR add an upstream CONDITION checking for a WC-specific custom field.
Email 1 shows generic placeholder instead of the abandoned product The WC sync plugin's product-meta passing isn't configured. Open the sync plugin → custom fields mapping → confirm cart_product_name / cart_product_url / cart_product_price are mapped to AcelleMail subscriber fields.
Discount code in Email 3 doesn't work The code in the email body is hard-coded; you need to generate a unique-per-customer code via the WC discount-codes plugin and pass via a {{subscriber.discount_code}} merge tag.
Recovery rate is below 1% Either the sync isn't tracking real abandonments (likely most "abandons" are bots/scrapers), OR your Email 3 discount is too small to motivate. Bump to 15% for one test cycle and compare.

What NOT to do

  • Don't send more than 3 emails. 4-5 emails over a week tips into harassment. If they didn't buy by Email 3, accept the loss and move on.
  • Don't make the urgency fake. "Cart expires in 1 hour!" — when the cart actually persists for weeks — destroys trust. Either implement real cart expiry in WC, or use "This price won't last forever" phrasing.
  • Don't include the cart contents in plain text only. Subscribers expect to see the product image. Confirm your sync plugin passes the product image URL.
  • Don't pause the automation during sales. Pausing pulls every in-flight subscriber out of the flow. They lose any pending discount. Edit the discount instead.

Related articles

12 コメント

コメント 6 件

  1. linhpm.devs
    solid walkthrough. The conditional-branching example especially — most automation guides skip that and you end up rebuilding from scratch.
  2. jmorrison.itop…
    Always test the END of the sequence first, not the start. Most testing focuses on email 1 but the longest-tenure subscribers are at the end and that's where bugs surface
  3. sofia.costa.pt
    How do you handle subscribers who join mid-sequence (e.g. via API)? Do they start at step 1 or pick up at a current point?
    1. admin
      Good catch. The bounds (200/32) are hardcoded in the runtime. We've discussed making them configurable; not a near-term priority but it's tracked.
    2. admin (編集済み)
      short answer: yes — set the mysql session variable from your worker's .env on boot and you'll get the longer timeout per connection. we'll add an explicit recipe in the next refresh.
    3. admin (編集済み)
      Right — for RDS specifically, you can change wait_timeout via the parameter group without a reboot if it's set as 'dynamic'. Most defaults are.
  4. rafa.silva.br
    we do almost exactly this but with one tweak — we use the 'goal' node to exit subscribers from the sequence early when they complete a target action. Saves us sending to people who already did the thing.
  5. cw.dev.sh
    built a 9-email welcome series last quarter using this pattern. took 4 days end-to-end. open rate on email 1 is 62%, drops to 28% by email 9 — which is actually higher engagement than our broadcast list. highly recommend the format.
    1. admin (編集済み)
      Thanks for the breakdown. Saving for our customer-success team's reference library
    2. admin (編集済み)
      Solid case study material here. If you're open to it, we'd love to write this up as a blog post — happy to credit you anonymously or otherwise.
    3. admin (編集済み)
      Thanks for the numbers. Worth pulling into a follow-up post on volume-tier sizing.
  6. i.rossi.mil
    The visual flow diagram is exactly what I needed. Our welcome series has been a mess of forgotten branches — going to redo it tonight using this as the template.

More in Automation