Övergivna varukorgar misslyckas sällan för att du “glömde” att följa upp. De misslyckas för att uppföljningen blir utspridd mellan verktyg, tidszoner och fullspäckade dagar, så rätt budskap aldrig når rätt köpare vid rätt tillfälle. Shopify cart followups blir snabbt en rörig checklista.
Det här slår hårdast mot e-handelsmarknadsförare, om vi ska vara ärliga. Men butiksägare känner det också, liksom personen i teamet som råkar bli den som “skickar sms:en” mellan andra uppgifter. Utfallet är enkelt: en tidsstyrd återhämtningssekvens i flera kanaler som kör av sig själv och loggar varje kontaktpunkt för attribuering.
Nedan ser du hur det här n8n-flödet omvandlar kaoset kring övergivna varukorgar till ett förutsägbart system: e-post, SMS, WhatsApp, retargeting och ett strukturerat Google Sheet som du faktiskt kan analysera.
Så fungerar den här automatiseringen
Hela n8n-flödet, från trigger till slutligt output:
n8n Workflow Template: Shopify + Google Sheets: kundvagnsuppföljning
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Abandoned Cart Webhook"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Workflow Configuration", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Normalize Cart Data", pos: "b", h: 48 }
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch Cart Details"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch Customer History"]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Predict Abandonment Reason"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Personalization Engine"]
n7@{ icon: "mdi:cog", form: "rounded", label: "Wait 1 Hour", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Order Completed (1h)", pos: "b", h: 48 }
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/shopify.svg' width='40' height='40' /></div><br/>Check Order Status (1h)"]
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Generate Email 1 Content"]
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/sendGrid.svg' width='40' height='40' /></div><br/>Send Email 1"]
n12@{ icon: "mdi:database", form: "rounded", label: "Log Email 1 Touchpoint", pos: "b", h: 48 }
n13["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Attribution - Email 1"]
n14@{ icon: "mdi:cog", form: "rounded", label: "Wait Until 4 Hours", pos: "b", h: 48 }
n15["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/shopify.svg' width='40' height='40' /></div><br/>Check Order Status (4h)"]
n16@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Order Completed (4h)", pos: "b", h: 48 }
n17@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare SMS Content", pos: "b", h: 48 }
n18["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/twilio.svg' width='40' height='40' /></div><br/>Send SMS with Discount"]
n19@{ icon: "mdi:database", form: "rounded", label: "Log SMS Touchpoint", pos: "b", h: 48 }
n20@{ icon: "mdi:cog", form: "rounded", label: "Wait Until 24 Hours", pos: "b", h: 48 }
n21["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/shopify.svg' width='40' height='40' /></div><br/>Check Order Status (24h)"]
n22@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Order Completed (24h)", pos: "b", h: 48 }
n23["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Generate Email 2 Content"]
n24["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/sendGrid.svg' width='40' height='40' /></div><br/>Send Email 2"]
n25@{ icon: "mdi:database", form: "rounded", label: "Log Email 2 Touchpoint", pos: "b", h: 48 }
n26@{ icon: "mdi:cog", form: "rounded", label: "Wait Until 48 Hours", pos: "b", h: 48 }
n27@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Order Completed (48h)", pos: "b", h: 48 }
n28["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Generate WhatsApp Message"]
n29["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/whatsapp.svg' width='40' height='40' /></div><br/>Send WhatsApp Message"]
n30["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/facebook.svg' width='40' height='40' /></div><br/>Add to Retargeting Audience"]
n31["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge Attribution Data"]
n32["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Notify High-Value Recovery"]
n33@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Cart Value Threshold", pos: "b", h: 48 }
n34@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Customer Segment Check", pos: "b", h: 48 }
n35@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Device Type Check", pos: "b", h: 48 }
n36@{ icon: "mdi:swap-vertical", form: "rounded", label: "Mark Success - Order Complet..", pos: "b", h: 48 }
n37@{ icon: "mdi:swap-vertical", form: "rounded", label: "Mark Success - Order Complet..", pos: "b", h: 48 }
n38@{ icon: "mdi:swap-vertical", form: "rounded", label: "Mark Success - Order Complet..", pos: "b", h: 48 }
n39@{ icon: "mdi:swap-vertical", form: "rounded", label: "Mark Success - Order Complet..", pos: "b", h: 48 }
n40["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Merge Attribution - SMS"]
n41["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Merge Attribution - Email 2"]
n42["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Merge Attribution - WhatsApp"]
n43["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Hash Customer Data for Faceb.."]
n7 --> n9
n11 --> n12
n24 --> n25
n35 --> n7
n3 --> n5
n19 --> n20
n19 --> n40
n14 --> n15
n2 --> n3
n2 --> n4
n17 --> n18
n20 --> n21
n26 --> n27
n13 --> n14
n13 --> n31
n29 --> n43
n0 --> n1
n34 --> n35
n4 --> n5
n12 --> n13
n25 --> n26
n25 --> n41
n31 --> n33
n6 --> n34
n18 --> n19
n1 --> n2
n9 --> n8
n15 --> n16
n40 --> n31
n21 --> n22
n10 --> n11
n23 --> n24
n28 --> n29
n33 --> n32
n8 --> n36
n8 --> n10
n16 --> n37
n16 --> n17
n5 --> n6
n30 --> n42
n22 --> n38
n22 --> n23
n27 --> n39
n27 --> n28
n41 --> n20
n43 --> n30
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n8,n9,n15,n16,n21,n22,n27,n33,n34,n35 decision
class n12,n19,n25 database
class n0,n3,n4,n30 api
class n5,n6,n10,n13,n23,n28,n40,n41,n42,n43 code
classDef customIcon fill:none,stroke:none
class n0,n3,n4,n5,n6,n9,n10,n11,n13,n15,n18,n21,n23,n24,n28,n29,n30,n31,n32,n40,n41,n42,n43 customIcon
Problemet: uppföljningar av övergivna varukorgar faller mellan stolarna
De flesta Shopify-butiker har redan “någon” inställning för övergivna varukorgar. En e-postmall. Kanske ett SMS-verktyg. Sedan lägger någon till WhatsApp för vissa regioner, och nu jonglerar du sekvenser mellan plattformar som inte delar kontext. En kund köper efter den andra kontakten, men den tredje skickas ändå (pinsamt). Eller värre: inget skickas eftersom varukorgspayloaden saknade ett fält och ingen märker det förrän du tittar på intäkterna en vecka senare. Det handlar inte bara om tid. Det är mental belastning, missade intäkter och noll förtroende för vilken kanal som faktiskt fungerade.
Friktionen byggs på. Här är var det brukar fallera i verkligheten.
- Du slutar med att kontrollera orderstatus manuellt, vilket är ett uselt sätt att använda en duktig marknadsförares eftermiddag.
- Meddelanden går ut utan personalisering, så rabattjägare lär sig att vänta medan VIP-köpare blir irriterade.
- Attribuering blir gissningslek eftersom e-postprestanda ligger i en dashboard och SMS-resultat någon annanstans.
- Återhämtningar med högt värde lyfts inte fram, så du missar chanser att lära dig vad som faktiskt stänger större varukorgar.
Lösningen: återhämtning av övergivna varukorgar med flera kontaktpunkter och Sheets-attribuering
Det här flödet lyssnar på händelser för övergivna varukorgar från Shopify (via webhook) och gör sedan om den råa varukorgspingen till en komplett återhämtningskampanj som körs enligt schema. Först normaliserar det data, hämtar varukorgsdetaljer och tar in kundhistorik så att du inte skickar meddelanden i blindo. Det förutser en sannolik orsak till avhoppet (priskänslighet, krånglig checkout, teknisk friktion) och segmenterar kunden (ny, återkommande, VIP). Därefter tilldelar det en A/B-grupp, genererar ett personligt erbjudande och en checkout-URL och startar en tidsstyrd sekvens via e-post, SMS och WhatsApp, med kontroll av orderstatus före varje utskick. Varje kontaktpunkt loggas till Google Sheets så att du ser hela resan, inte bara isolerade klick. Om varukorgen aldrig konverterar kan flödet lägga till kunden i en Facebook Custom Audience för retargeting, och om en varukorg med högt värde konverterar får Slack en notis.
Flödet börjar med en webhook för övergiven varukorg och en snabb berikningsrunda. Därefter kör det en uppföljningsplan efter 1 timme, 4 timmar, 24 timmar och 48 timmar (med “köpte de?”-kontroller varje gång). Till sist skriver det hela spåret till Google Sheets för multi-touch-attribuering, plus alerts och retargeting för de fall du bryr dig mest om.
Det här får du: automatisering vs. resultat
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du får 20 övergivna varukorgar per dag. Att manuellt göra en grundläggande “kolla orderstatus, skicka e-post, kanske skicka SMS senare” tar lätt cirka 5 minuter per varukorg när du även räknar in att leta upp detaljer och logga anteckningar, vilket blir runt 100 minuter per dag. Med det här flödet är ditt “arbete” i princip noll efter att det är uppsatt: webhooken triggar direkt, meddelanden skickas efter 1 timme, 4 timmar, 24 timmar och 48 timmar, och loggningen i Google Sheets sker automatiskt. Du får tillbaka tiden och du får ett strukturerat attribueringsspår utan att underhålla ett kalkylark för hand.
Det du behöver
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Shopify för händelser kring övergivna varukorgar och kontroller av orderstatus.
- Google Sheets för att logga kontaktpunkter för attribuering.
- SendGrid för att skicka återhämtningsmejl.
- Twilio för att skicka SMS-uppföljningar.
- WhatsApp Business API för WhatsApp-påminnelser.
- Facebook Graph API för att lägga till användare i Custom Audiences.
- Slack för notiser om återhämtningar med högt värde.
- OpenAI API-nyckel (hämta den i OpenAI API-dashboarden).
Kunskapsnivå: Medel. Du kopplar flera konton, klistrar in några ID:n (som Sheet ID) och testar varje kanal en gång innan du går live.
Vill du inte sätta upp detta själv? Prata med en automations-expert (gratis 15-minuters konsultation).
Så fungerar det
En övergiven varukorg-händelse kommer in. Shopify (eller en annan e-handelsplattform) skickar en webhook när en varukorg överges. n8n tar emot den och svarar direkt så att din butik inte behöver vänta.
Varukorgsdata struktureras och berikas. Flödet standardiserar fälten, hämtar hela varukorgens innehåll och tar in köphistorik så att du kan skilja en förstahandsbesökare från en återkommande köpare.
Personalisering och routing sker före utskick. Det förutser varför kunden kan ha avbrutit, segmenterar (ny/återkommande/VIP), tilldelar en A/B-testgrupp och skapar sedan en rabatt och checkout-länk som matchar dina regler. Ett AI-steg kan hjälpa till att ta fram meddelandevarianter så att copy inte känns uttjatad.
Uppföljningar i flera kanaler körs via timer. Efter 1 timme, 4 timmar, 24 timmar och 48 timmar kontrollerar flödet om en order slutförts. Om inte skickar det nästa meddelande (e-post, SMS, e-post, WhatsApp) och loggar kontaktpunkten i Google Sheets.
Attribuering och retargeting tar vid. Kontaktpunkter slås ihop till en enda kundresa för analys, ej återhämtade varukorgar läggs till i en Facebook Custom Audience, och återhämtade varukorgar med högt värde kan trigga en Slack-notis så att teamet ser det som spelar roll.
Du kan enkelt ändra väntetider och meddelandesekvensen så att den matchar din säljcykel utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Vanliga fallgropar
- Åtkomst till Google Sheets misslyckas ofta eftersom servicekontot inte har delats på arket. Om loggningen slutar fungera, kontrollera först delningsinställningarna i arket och servicekontots e-postadress.
- Om du använder Wait-noder eller extern bearbetning varierar timing. Öka väntetiden om efterföljande orderkontroller misslyckas för att data ännu inte har uppdaterats.
- OpenAI-genererad copy kan låta generisk direkt från start. Lägg in din tonalitet (och förbjudna fraser) i prompten tidigt, annars kommer du att redigera varje meddelande för alltid.
Vanliga frågor
Räkna med cirka 60–90 minuter om du redan har alla API-uppgifter.
Nej. Du kopplar konton och fyller i konfigurationsvärden som Sheet ID och tröskelvärden.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Molnplaner börjar på 20 USD/månad för högre volymer. Du behöver också räkna in OpenAI API-användning samt meddelandekostnader från leverantörer som Twilio och WhatsApp.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, men gör det medvetet. Du kan inaktivera SMS- och WhatsApp-utskick genom att ta bort eller stänga av Twilio- och WhatsApp-noderna, samtidigt som du behåller orderstatuskontrollerna och loggningen i Google Sheets. De flesta team justerar också vänteschemat (till exempel 1 timme och sedan 12 timmar) och skriver om AI-prompten så att e-post #1 och e-post #2 känns tydligt olika. Vill du fortfarande köra retargeting, behåll grenen för Facebook Custom Audience för ej återhämtade varukorgar.
Oftast handlar det om API-behörigheter eller en gammal access token. Bekräfta att din Shopify-app har åtkomst till varukorgar/ordrar och att butiksdomänen i flödets konfiguration matchar din livebutik. Kontrollera också webhooken i Shopify så att den pekar mot rätt n8n-URL och inte har inaktiverats.
En typisk mindre butik kan köra hundratals varukorgar per dag utan problem om autentiseringsuppgifter och rate limits är korrekt inställda.
För en sekvens med flera kontaktpunkter är n8n oftast det mer praktiska valet eftersom väntetider, förgreningar och upprepad logik för “kolla orderstatus” inte blir smärtsamt dyrt. Du får också möjligheten att köra egen hosting, vilket är viktigt om varukorgsvolymen sticker under kampanjer. Zapier eller Make kan fortfarande fungera om du håller dig till ett eller två meddelanden och inte bryr dig så mycket om multi-touch-attribuering i Google Sheets. I samma stund som du vill ha segmentering (ny vs VIP), A/B-gruppering och en strukturerad logg av varje kontaktpunkt passar den här typen av flöde bättre. Om du är osäker, prata med en automations-expert så hjälper vi dig välja den enklaste setupen som fortfarande driver intäkter.
När detta är live slutar varukorgsåterhämtning att vara ett dagligt stressmoment och blir ett system du kan mäta. Flödet tar hand om de repetitiva uppföljningarna, och du kan fokusera på att förbättra erbjudandet och upplevelsen.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.