It is Tuesday at 9 AM and you are looking at the WooCommerce dashboard of a $35M GMV store. Klaviyo recovered $4,800 in abandoned carts last week. The unrecovered piece is $46,000. That gap is not a Klaviyo problem. The email cadence is fine. The gap exists because email cannot reach about a third of cart abandoners at all: the open never happens, the preview pane never opens, the inbox stays full of last week’s order confirmations.
WooCommerce cart abandonment push notifications close that gap not by replacing the email sequence but by running parallel to it on a different timing, in a different format, against a different surface.
This article is the workflow specification a WooCommerce retention manager actually needs: the exact 3-message push journey, the exact event names, the exact wait windows, the discount ladder defended in margin dollars, the exit rule that stops the workflow the moment the cart converts, and the per-cart attribution math you can take to finance.
Lift it directly into PushEngage and have it running in under an hour. The recovered cart is found revenue, not paid revenue, and that is the entire retention/CAC argument in one line.
- Why "push instead of email" is the wrong framing
- Why WooCommerce is push-friendly (and where it isn't)
- The 3-message cart abandonment workflow, end to end
- Why 1 hour, 25 hours, and 73 hours
- The discount-ladder defense
- Per-cart attribution and the recovered-revenue math
- Multi-channel orchestration: push + email + WhatsApp + live chat
- Sidebar: managing the cart workflow from your AI assistant
- Bygg det i PushEngage
- Vad detta förändrar
Why “push instead of email” is the wrong framing
Most cart abandonment articles set up a false binary. Push versus email. SMS versus push. WhatsApp versus all three. The mid-market WooCommerce stores that recover 25–40% of abandoned cart value do not pick one. They layer. Email reaches the inbox users who check email twice a day. Push reaches the desktop and mobile users who do not check email at all but glance at notifications. SMS reaches the high-value carts where the message has to land in the next thirty seconds. The retention manager’s job is to compose the layered stack, not to debate which single channel wins.
For a WooCommerce store running an email-only sequence today, the question is not “should I switch to push.” It is “what does push add on top of what email is already doing.” The answer is straightforward. Push fires faster than email opens (a 60-minute first touch lands an hour before the typical email gets opened). Push is harder to ignore (no preview pane). Push exits on the purchase event regardless of which channel got credit for the conversion. These are additive properties, not substitutes.
The rest of this article is built on that framing. The 3-message push workflow below assumes you already have a 3-email or 4-email recovery sequence running in Klaviyo, Omnisend, or whatever ESP you sit on. It composes with that sequence rather than replacing it.
Why WooCommerce is push-friendly (and where it isn’t)
WooCommerce avfyrar tre inbyggda händelser som gör hela detta hanterbart. add_to_cart avfyras varje gång en produkt läggs till. woocommerce_cart_updated avfyras när kundvagnens status ändras. woocommerce_payment_complete avfyras när en beställning är betald.
PushEngage WooCommerce-integrationspluginet mappar dessa till en PushEngage anpassad händelse som kallas cart_abandoned (avfyras när en kundvagn ligger inaktiv förbi övergivningströskeln) och till ett mål som kallas purchase (avfyras när betalningen slutförs). cart_abandoned-händelsens nyttolast innehåller cart_id, cart_value, cart_url (återställningslänken) och en produktlista. Den nyttolasten blir variabelkällan som arbetsflödets aviseringar använder.

PushEngage-integreringen hanterar även återställning av kundvagnen. När en prenumerant klickar på en pushavisering landar de i kundvagnen med sina varor redan ifyllda istället för på en tom produktsida. Detta är ingen liten detalj: en återställd kundvagn med en-klicksutcheckning konverterar ungefär tre gånger snabbare än en återställd kundvagn som kräver att prenumeranten lägger till varorna igen.
Återställning av kundvagnen är en av PushEngage-integreringens funktioner för WooCommerce-pushaviseringar som levereras direkt ur lådan; på plattformar utan integrationen måste retentionsteamet bygga återställningslänken manuellt.
Det finns en WooCommerce-specifik hake att påpeka. Butiker som använder utcheckning utanför plattformen (Stripe Checkout, PayPal-hanterad utcheckning, Mollie-hanterad, Klarna-hanterad) avfyrar inte woocommerce_payment_complete förrän kunden omdirigeras tillbaka till tack-sidan. Om den omdirigeringen aldrig sker (kunden stänger webbläsarfliken på Stripes hanterade sida efter betalning), har arbetsflödet inget sätt att veta att kundvagnen konverterade. Lösningen är en pixel för målföljning på tack-omdirigeringen som avfyrar PushEngage purchase-målet med cart_id. Utan den pixeln fortsätter arbetsflödet att skicka påminnelser till prenumeranter som redan har betalat, och det är det felaktiga läge som varje retentionsteam vill undvika. Konfigurera pixeln innan du aktiverar arbetsflödet.
Två ytterligare kontextuella anmärkningar. För det första definieras arbetsflödesvokabulären i resten av den här artikeln (START, VÄNTA, BESLUT, HANDLING, SLUT) i PushEngage Workflows-byggaren och behandlas utförligt i den överordnade e-handelsartikeln. För det andra är detta WooCommerce-arbetsflöde för övergiven kundvagn ett av fem WooCommerce-specifika push-arbetsflöden i den här serien; de andra (webbläsarövergivning, prisnedgång, lagerpåfyllning, efterköp) länkar från avslutande avsnittet.
The 3-message cart abandonment workflow, end to end
Detta är mittpunkten. Hela specifikationen för arbetsflödet för övergiven kundvagn.
Trigger and run type
- Utlösare (START): PushEngage anpassad händelse med
event_name = cart_abandoned, avfyrad av WooCommerce-integreringen när en kundvagn ligger inaktiv förbi övergivningströskeln (vanligtvis 60 minuters inaktivitet). - Körningstyp: Flera parallella. En prenumerant som överger kundvagn A på tisdag och kundvagn B på fredag får två samtidiga arbetsflödesinstanser, en per kundvagn, var och en med sitt eget `cart_id`. Detta är kritiskt: en körningstyp, Enkel eller Flera sekventiella, skulle blockera återställningen av kundvagn B när kundvagn A:s arbetsflöde slutförs, och en återkommande kund som överger en andra gång skulle inte få något.
- Avslutningskriterier: Målet
purchasesom matchar `cart_id` från utlösarhändelsen. I samma ögonblick som WooCommerce-måletpurchaseutlöses för den kundvagnen, avbryts arbetsflödet för den prenumeranten, oavsett var de befinner sig i resan. - Tyst tid: 22:00 till 08:00 i prenumerantens tidszon, fallback
reschedule. Inställningenreschedulehåller kvar aviseringar till 08:01 lokal tid istället för att släppa dem, vilket de flesta retentionsteam föredrar eftersom släppta aviseringar också försvinner från analysen.
Flow
VÄNTA 1 timme → Meddelande 1 (ingen rabatt) → VÄNTA 24 timmar → BESLUT: kundvagnen fortfarande övergiven? → JA-väg: Meddelande 2 (10 % rabatt) → VÄNTA 48 timmar → BESLUT: kundvagnen fortfarande övergiven? → JA-väg: Meddelande 3 (20 % rabatt + brådska) → SLUT.
NEJ-vägarna vid båda beslutsknapparna leder till AVSLUT (kundvagnen konverterades mellan väntetiderna och arbetsflödets jobb är klart).
Notification copy
Meddelande 1 (1 timme efter övergivande, ingen rabatt):
- Titel:
Du lämnade något kvar - Brödtext:
Din {{event.data.product_name || kundvagn}} finns fortfarande kvar. Vill du slutföra utcheckningen? - URL:
{{event.data.cart_url}}
Meddelande 2 (25 timmar efter övergivande, 10 % rabatt):
- Titel:
Tänker du fortfarande? Här är 10 % rabatt - Brödtext:
Din {{event.data.product_name || kundvagn}} är bara ett klick bort. Använd SAVE10 vid utcheckningen. - URL:
{{event.data.cart_url}}?coupon=SAVE10
Meddelande 3 (73 timmar efter övergivande, 20 % rabatt, brådska):
- Titel:
Sista chansen: 20 % rabatt på din kundvagn - Brödtext:
Vi har sparat din {{event.data.product_name || kundvagn}} i ytterligare en dag. Koden SAVE20 går ut ikväll. - URL:
{{event.data.cart_url}}?coupon=SAVE20
Varje titel är under 50 tecken och varje brödtext under 130 tecken, vilket håller dem synliga utan trunkering i Chrome desktop, iOS Safari 16.4+ och Android Chrome. Syntaxen || ger en fallback om produktnamnsvariabeln saknas.
Why 1 hour, 25 hours, and 73 hours
De tre väntetiderna är inte godtyckliga. Varje fönster fångar en annan återhämtningspsykologi.
1 timme. Den första kontakten fångar den som överger kundvagnen med "Jag gick för att kolla priser någon annanstans" innan sessionsminnet försvinner. De flesta kundvagnar som någonsin återhämtas gör det inom den första timmen. De flesta som passerar den första timmen utan att konvertera kommer inte att konvertera utan en andra kontakt. En 30-minuters första väntetid är för ivrig: den avbryter jämförelseköpet som kunden aktivt gör. En 4-timmars första väntetid är för långsam: kundvagns kontext är borta. En timme ligger vid vändpunkten.
25 timmar. Den andra kontakten landar nästa dag, avsiktligt 25 timmar snarare än exakt 24 så att en kvällsabandonerare inte får det andra meddelandet vid samma tidpunkt som de fick det första (vilket hjärnan uppfattar som spam). En väntan på 25 timmar flyttar den andra kontakten till nästa morgonrutin för kvällsabandonerare, eller till nästa kväll för morgonabandonerare, vilket är det praktiska räckviddsfönstret för ett erbjudande om 10 % rabatt.
73 timmar. Sista försöket innan kundvagnen blir kall. Tre dagar senare har prenumerantens avsikt antingen materialiserats via någon annan kanal (i vilket fall avslutningsregeln redan har utlösts) eller helt stannat av. En rabatt på 20 % med brådskande formulering är den sista livskraftiga knuffen innan kundvagnen är död. Att vänta längre än 96 timmar ger en försvinnande återhämtningsgrad till en garanterad marginalkostnad; kortare än 48 timmar efter meddelande 2 tränar prenumeranter att vänta på rabatten.
Tysta timmar omsluter hela sekvensen. En 11 PM-abandonerare skulle annars få sin 1-timmars första kontakt vid midnatt. Med reschedule inställt på 08:01 landar meddelandet först nästa morgon. Arbetsflödet för övergivna kundvagnar förblir leveransansvarigt snarare än att tyst släppa iväg sändningar över natten.
The discount-ladder defense
Rabattstegen är 0 % / 10 % / 20 %. Det uppenbara alternativet är en fast 15 % över alla tre kontakterna. Stegen vinner på nettoåtervunnen intäkt, även om den fasta strukturen vinner på rå återhämtningsgrad. Här är matematiken i en representativ WooCommerce mellanklasskala.
Scenario. 200 000 push-prenumeranter. 70 % kundvagnsövergivningsgrad. 145 USD genomsnittligt ordervärde. Cirka 12 000 övergivna kundvagnar per vecka spårade genom push-arbetsflödet (efter överlappning av prenumeranter med e-post).
Fast 15 % över alla tre kontakterna. Anta att detta höjer den råa återhämtningsgraden till 30 %. Det återhämtar 3 600 kundvagnar per vecka vid 145 USD AOV = 522 000 USD brutto. Varje återvunnen kundvagn betalar en rabatt på 15 %, så nettoåtervunnen intäkt är 522 000 USD × 0,85 = 443 700 USD per vecka.
0/10/20-stege. Anta att detta ger en rå återhämtningsgrad på 25 % (lägre, eftersom meddelande 1 inte har någon incitament). Men återhämtningen fördelas över de tre kontakterna: 12 % konverterar på meddelande 1 (ingen rabatt), 8 % på meddelande 2 (10 %), 5 % på meddelande 3 (20 %). Netto per kundvagn: 12 % × 145 USD + 8 % × 145 USD × 0,90 + 5 % × 145 USD × 0,80 = 17,40 USD + 10,44 USD + 5,80 USD = 33,64 USD per övergiven kundvagn. Över 12 000 kundvagnar är det 403 680 USD per vecka, något mindre än fast.
Men bruttomarginalverkligheten är skarpare. De flesta mellanklass WooCommerce-butiker drivs med 35–45 % bruttomarginal. En fast 15 % rabatt skär den marginalen till 20–30 %. En konvertering på 0 % för meddelande 1 behåller hela marginalen. Retentionsteamet som kör stegen ger upp cirka 3 procentenheter av återhämtningsgraden (28 % vs 31 %) och återhämtar en materiellt större del av marginaldollar. Netto bidragmarginal, inte bruttoåtervunnen intäkt, är det rätta numret att försvara.
Det andra argumentet för stegen är prenumerantträning. En lista som konsekvent ser 15% rabatt i varje varukorgspåminnelse lär sig att vänta på rabatten. Nästa kvartals återhämtningsgrad på platta 15% sjunker eftersom prenumeranter har lärt sig mönstret. En 0/10/20-stege bibehåller möjligheten att konvertera till fullt pris.
Det tredje argumentet är segmentering. En prenumerant som konverterar på Meddelande 1 är en kund med hög avsikt som är värd att återinrikta sig annorlunda i nästa kampanj. En prenumerant som bara konverterar på Meddelande 3 är priskänslig och värd att segmentera in i en prisdriven retentionsväg. Stegen producerar signal; den platta rabatten producerar brus.
Per-cart attribution and the recovered-revenue math
Push-arbetsflödesanalys i PushEngage spårar tre siffror vid varje nod: köade användare (väntar vid denna nod), slutförda användare (passerade) och avslutade användare (lämnade arbetsflödet vid denna nod, vanligtvis för att utgångsregeln utlöstes).
Här är hur nodnivåanalys ser ut för ett aktivt WooCommerce-arbetsflöde för övergivna varukorgar som körs på butiken med 200 000 prenumeranter och 145 USD i genomsnittligt ordervärde:
| Nod | Köad | Slutförd | Avslutad | Anteckningar |
|---|---|---|---|---|
| START (cart_abandoned) | 0 | 11,940 | 240 | 240 varukorgar konverterade mellan händelseutlösning och arbetsflödesgenomsökning |
| VÄNTA 1 timme | 220 | 11,720 | 0 | Normal ködjup |
| ÅTGÄRD: Meddelande 1 | 0 | 11,720 | 0 | Avisering skickad |
| VÄNTA 24 timmar | 280 | 9,290 | 2,150 | 2 150 varukorgar konverterade på Meddelande 1 (återhämtning med högst avsikt) |
| BESLUT: fortfarande övergiven? | 0 | 9,290 | 0 | Återstående varukorgar kontrollerade mot målet |
| ÅTGÄRD: Meddelande 2 (10% rabatt) | 0 | 9,290 | 0 | Avisering skickad med SAVE10 |
| VÄNTA 48 timmar | 120 | 7,460 | 1,710 | 1 710 varukorgar konverterade på Meddelande 2 |
| BESLUT: fortfarande övergiven? | 0 | 7,460 | 0 | Slutlig kontroll |
| ÅTGÄRD: Meddelande 3 (20% rabatt) | 0 | 7,460 | 0 | Avisering skickad med SAVE20 |
| SLUT | ej | 7,460 | ej | 7 460 varukorgar återhämtades inte via push |
Totalt återhämtade via push: 240 (före-kontakt) + 2 150 + 1 710 = 4 100 varukorgar. Rå push-återhämtningsgrad: 4 100 / 12 180 = 33,7%. Återhämtat varukorgsvärde vid 145 USD genomsnittligt ordervärde = 594 500 USD brutto per vecka. Netto av stegrabatten (240 varukorgar till 0%, 2 150 till 0%, 1 710 till 10%), nettointäkt = 570 795 USD per vecka.
Läs tratten så här. De två väntetiderna (24h och 48h) är de noder med högst avslut, vilket är det korrekta mönstret: kunder bestämmer sig för att köpa under väntetiderna, inte medan de läser aviseringen. Om ditt arbetsflöde visar det omvända (höga avslut vid åtgärdsnoder, låga vid väntetider), är tidpunkten för lång och du bör förkorta väntetiderna. Om START-noden visar ovanligt höga avslut är övertröskeln för kort och du fångar varukorgar som aldrig riktigt övergavs.
Detta är den återhämtade intäktsraden som en retentionschef kan försvara vid nästa resultat- och förlustgranskning. WooCommerce push-aviseringar återhämtade 570 795 USD netto förra veckan genom arbetsflödet för övergivna varukorgar, till en kostnad av noll per push-sändning och prenumerationsavgiften för plattformen. Kostnaden per återhämtad dollar är tillräckligt liten för att finansavdelningen inte ska ha någon uppföljningsfråga.
Multi-channel orchestration: push + email + WhatsApp + live chat
Ovanstående 3-meddelandepush-arbetsflöde körs parallellt med e-poståterhämtningssekvensen. Samma arbetsflödesarkitektur kan också eskalera över kanaler baserat på prenumerantstatus. Med en enda arbetsflödesmotor komponeras resan så här:
- START:
cart_abandoned-händelse med cart_id och cart_value - VÄNTA: 1 timme
- BESLUT 1: är prenumeranten prenumererad på web push? JA: skicka web push-påminnelse; NEJ: fortsätt
- VÄNTA: 30 minuter
- DECISION 2: did the push fire and get clicked? YES: EXIT; NO: continue
- DECISION 3: is cart_value > $200? YES: fire WhatsApp message; NO: fire email via HTTP request to ESP
- DECISION 4: is the subscriber currently on-site? YES: trigger live chat ping; NO: continue to Message 2 wait
- EXIT on goal
purchase
Four channels, one workflow, one set of exit criteria, one subscriber identity. This is the orchestration that retention teams cannot compose when each channel sits in a different tool. With separate vendors, the cart workflow becomes six syncs, two segmentation engines that disagree about who counts as a VIP, and no unified revenue attribution.
With one workflow engine, the journey is one object. For more on how push and email compose inside a single retention plan, see the parent article on push and email multi-channel orchestration.
Sidebar: managing the cart workflow from your AI assistant
With WordPress plugin 4.2.4 and the WordPress Abilities API, the cart workflow becomes manageable from any MCP-aware AI assistant. The plugin exposes pushengage/list-push-automation-campaigns (returns the current WooCommerce push automation configuration) and pushengage/update-push-automation-campaign (enables, disables, or reconfigures a campaign by ID). Both abilities require the user to have the WordPress manage_options capability and require WooCommerce to be active on the site.
For a retention manager running Claude, ChatGPT, or Cursor with the PushEngage MCP exposed, this means the cart abandonment workflow can be paused during a planned site outage, re-enabled after, or reconfigured to swap copy variants without opening WP admin at all. More on this in the PushEngage AI assistants announcement.
Bygg det i PushEngage
The setup path is short. Install the PushEngage plugin on the WooCommerce site (it auto-detects WooCommerce and exposes the WooCommerce-specific events). Connect the plugin to a PushEngage account. Import the cart abandonment workflow template inside the PushEngage Workflows builder.

It ships with the 1h / 25h / 73h timing, the discount ladder placeholders, and the exit-on-purchase rule already configured. Swap the placeholder coupon codes for your real ones. Configure the abandonment threshold (default 60 minutes is sensible for most stores). Activate the workflow. Watch the first 200 abandoned carts route through it before scaling up.
If this is the first PushEngage workflow on the store, the free plan gives you 200 subscribers and the full Workflows engine, enough to prove the channel on a controlled list before requesting budget for a paid tier. Start on the free plan to run the first instance this week.
Vad detta förändrar
Den här artikeln är en av fem WooCommerce-specifika push-arbetsflödesdefinitioner. Syskontitlarna täcker arbetsflöde för WooCommerce-kundvagnstömning, prisuppgiftsmeddelanden, meddelanden om lagerpåfyllning och arbetsflöde efter köp i WooCommerce. För den bredare plattformsoberoende behandlingen av kundvagnstömning täcker den bredare handboken för kundvagnstömning ämnet på strategisk nivå.
För att förstå var detta passar in i ett komplett program för e-handelsbehållning är navet för push-meddelanden för e-handel översikten.
Återförsäljningschefen som öppnar tisdagens WooCommerce-instrumentpanel och ser 46 000 USD i ej återvunna kundvagnar har ett val. Fortsätta optimera e-postsekvensen som har planat ut, eller lägga till push som en andra kanal som körs vid en annan tidpunkt i ett annat format med en annan avslutningsregel. Arbetsflödet med 3 meddelanden ovan, som körs parallellt med vilken e-postfrekvens som helst som redan finns på plats, återhämtar de 12–25 % av kundvagns värdet som e-post inte kan nå.
Med 0/10/20 rabattstegen landar den återvunna intäkten med högre nettomarginal än ett arbetsflöde med fast rabatt. Med regeln för avslut vid köp slutar arbetsflödet att köras i det ögonblick kundvagnen konverterar. Med analys per nod är radposten försvarbar för finansavdelningen i siffror, inte anekdoter. Det är hela argumentet för återhämtning av övergiven kundvagn, och hela argumentet för automatisering av kundvagnsåterhämtning, i ett arbetsflöde.