Din WhatsApp-outreach ser enkel ut tills du gör den i skala. Några dåliga nummer, några dubbla utskick, ett stökigt kalkylark – och plötsligt lägger du morgonen på att jaga “vem fick vad” i stället för att följa upp riktiga leads.
Den här WhatsApp-kampanjautomationen träffar marknadsförare först, men småföretagare och stressade byråoperatörer känner av det också. Du får mer strukturerade listor, färre misslyckade utskick och ett ark som uppdaterar sig självt medan meddelanden skickas.
Nedan ser du workflowet i action, vad det löser och hur du sätter upp det så att ditt Google Sheet blir kontrollpanelen för dina WhatsApp-kampanjer.
Så fungerar automationen
Här är hela workflowet du kommer att sätta upp:
n8n Workflow Template: Google Sheets + Rapiwa: bättre WhatsApp-kampanjer
flowchart LR
subgraph sg0["Trigger Every 5 Minute Flow"]
direction LR
n0@{ icon: "mdi:database", form: "rounded", label: "Fetch All Pending Queries fo..", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "Limit", pos: "b", h: 48 }
n3@{ icon: "mdi:play-circle", form: "rounded", label: "Trigger Every 5 Minute", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>Clean WhatsApp Number"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Send Message Using Rapiwa"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Check valid whatsapp number .."]
n7@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n9@{ icon: "mdi:database", form: "rounded", label: "Change State of Rows in Veri..", pos: "b", h: 48 }
n10@{ icon: "mdi:database", form: "rounded", label: "Change State of Rows in Unve..", pos: "b", h: 48 }
n8 --> n5
n8 --> n10
n7 --> n1
n2 --> n1
n1 --> n4
n4 --> n6
n3 --> n0
n5 --> n9
n9 --> n7
n0 --> n2
n6 --> n8
n10 --> n7
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 n3 trigger
class n8 decision
class n0,n9,n10 database
class n5,n6 api
class n4 code
classDef customIcon fill:none,stroke:none
class n4,n5,n6 customIcon
Varför detta spelar roll: massutskick i WhatsApp blir snabbt rörigt
Massmeddelanden i WhatsApp börjar oftast som “skicka bara en snabb uppdatering till den här listan”. Sedan växer listan. Någon klistrar in nummer med mellanslag, parenteser eller ett inledande +. Några kontakter finns inte ens på WhatsApp, så utskicken misslyckas och du märker det inte förrän du undrar varför svaren är få. Värst av allt: spårningen blir ett manuellt jobb. Du sitter och skrollar rader, filtrerar, skickar om och hoppas att du inte meddelat samma person två gånger. Det är inte svårt. Det är dränerande.
Friktionen byggs på. Här är var det brukar falla isär.
- Manuellt skickande blir timmar när du har 50+ kontakter, särskilt om du ens personaliserar lite.
- Dålig nummerformatering orsakar onödiga API-fel, och du får reda på det först när kampanjen redan rullar.
- Utan automatiska statusuppdateringar blir uppföljningar gissningsarbete och leads tappas bort.
- När du inte kan skilja på “skickat” och “inte skickat” pålitligt blir dubbla utskick alldeles för enkla.
Det du bygger: Google Sheets till WhatsApp-utskick med verifiering
Det här workflowet gör ett enkelt Google Sheet till ett kontrollerat system för WhatsApp-utskick med Rapiwa API (en inofficiell WhatsApp-integration som skickar från ditt eget nummer). Var 5:e minut hämtar n8n rader markerade med Status = pending. Varje telefonnummer korrekt formateras först, så att formateringsproblem inte saboterar körningen. Sedan kontrollerar workflowet om numret är en riktig WhatsApp-användare. Om det är det skickar n8n meddelandet via Rapiwa och markerar raden som sent och verified. Om det inte är det hoppar den över utskicket och uppdaterar raden till not sent och unverified. En kort väntan mellan meddelanden hjälper till att undvika snabbskick och gör kampanjer mer stabila.
Workflowet startar på schema, inte via en manuell knapptryckning. Därifrån tar den en hanterbar batch av rader, validerar varje kontakt, skickar och skriver tillbaka resultat till samma kalkylark. Du får en levande kampanjspårning som du kan lita på.
Det du bygger
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du kör en veckopromo till 200 kontakter. Manuellt kan även en snabb kopiera/klistra-in-rutin ta cirka 1 minut per person när du räknar in sökning, namnkontroll och spårning av vem som är klar – alltså ungefär 3 timmar. Med det här workflowet uppdaterar du arket en gång, sätter Status till pending och låter det köra. Om du bearbetar 5 kontakter per cykel med en kort väntan mellan utskicken brukar du vara klar med batchen på under en timmes bakgrundstid, med nästan inget hands-on-arbete förutom att granska resultat och svar.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- Google Sheets för kontakter, meddelanden och statusar
- Rapiwa för att skicka WhatsApp-meddelanden från ditt nummer
- Rapiwa API-nyckel (hämta den i din Rapiwa-dashboard)
Svårighetsnivå: Nybörjare. Du kopplar konton, klistrar in en API-nyckel och mappar några kalkylarkskolumner.
Vill du att någon bygger detta åt dig? Prata med en automationsspecialist (gratis 15-minuters konsultation).
Steg för steg
En schematrigger var 5:e minut drar i gång allt. n8n vaknar automatiskt och letar efter rader du markerat som pending, så du behöver inte komma ihåg att “köra en kampanj”.
Google Sheets-rader hämtas och begränsas till en säker batch. Workflowet hämtar data från arket, sätter ett tak för hur många meddelanden den försöker i en körning och bearbetar kontakter i små chunkar. Det håller körningarna stabila och gör det lättare att kontrollera sändningshastigheten.
Varje telefonnummer korrekt formateras och verifieras sedan med Rapiwa. Ett kort kodsteg tar bort mellanslag och symboler, sedan kontrollerar en HTTP-request om numret faktiskt går att nå på WhatsApp. Om det godkänns skickas sändningsrequesten; om inte hoppar workflowet över att meddelande den kontakten.
Ditt ark blir facit. Varje kontakt får en statusuppdatering i Google Sheets (skickat/inte skickat och verifierat/ej verifierat), och en kort väntan sker innan nästa post hanteras.
Du kan enkelt ändra batchstorlek och väntetid utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera schematriggern
Konfigurera workflowet så att det körs enligt ett återkommande schema för att hämta väntande WhatsApp-meddelanden.
- Lägg till och öppna Five-Minute Schedule.
- I Rule ställer ni in intervallet till
minutesså att den triggas var femte minut. - Koppla Five-Minute Schedule till Retrieve Pending Messages.
Steg 2: anslut Google Sheets
Hämta köade meddelanden från ett kalkylblad och uppdatera deras leveransstatus efter bearbetning.
- Öppna Retrieve Pending Messages och ställ in Document till
WhatsApp Bulk Messaging via Unofficial API. - Ställ in Sheet till
Message Queueoch tillämpa filtret på Status vid behov. - Inloggningsuppgifter krävs: anslut era googleSheetsOAuth2Api-uppgifter i Retrieve Pending Messages.
- Öppna Mark Verified as Sent och bekräfta att Operation är
updatemed row_number inställt på{{ $('Cap Batch Size').item.json.row_number }}. - Inloggningsuppgifter krävs: anslut era googleSheetsOAuth2Api-uppgifter i Mark Verified as Sent.
- Öppna Mark Unverified as Unsent och bekräfta att Operation är
updatemed row_number inställt på{{ $('Cap Batch Size').item.json.row_number }}. - Inloggningsuppgifter krävs: anslut era googleSheetsOAuth2Api-uppgifter i Mark Unverified as Unsent.
Steg 3: ställ in batchbearbetning och normalisering
Begränsa bearbetningsvolymen och säkerställ att WhatsApp-nummer är rensade innan verifiering.
- I Cap Batch Size ställer ni in Max Items till
60. - Koppla Retrieve Pending Messages → Cap Batch Size → Iterate Records.
- I Iterate Records behåller ni standardbeteendet för batchen, så att poster bearbetas en i taget.
- Öppna Normalize WhatsApp Number och behåll JavaScript Code som rensar bort icke-numeriska tecken från
WhatsApp No. - Koppla Iterate Records till Normalize WhatsApp Number.
WhatsApp No så att normaliseringsskriptet uppdaterar rätt fält.Steg 4: konfigurera verifiering, routing och utskick
Verifiera varje nummer med Rapiwa, routa baserat på giltighet och skicka meddelanden endast till verifierade mottagare.
- Öppna Verify WhatsApp Number och ställ in URL till
=https://app.rapiwa.com/api/verify-whatsappmed MethodPOST. - Aktivera Send Body och ställ in parametern number till
{{ $json["WhatsApp No"] }}. - Inloggningsuppgifter krävs: anslut era httpBearerAuth-uppgifter i Verify WhatsApp Number.
- I Validation Branch säkerställer ni att villkoret kontrollerar
{{ $json.data.exists }}med den booleska operatorntrue. - Validation Branch skickar utdata till både Dispatch WhatsApp via Rapiwa (true) och Mark Unverified as Unsent (false).
- Öppna Dispatch WhatsApp via Rapiwa och ställ in URL till
https://app.rapiwa.com/api/send-messagemed MethodPOST. - Ställ in query-parametrar: number till
{{ $json.data.number }}, message till{{ $('Normalize WhatsApp Number').item.json.Message }}, imageUrl till{{ $('Normalize WhatsApp Number').item.json["Image URL"] }}och message_type tilltext. - Inloggningsuppgifter krävs: anslut era httpBearerAuth-uppgifter i Dispatch WhatsApp via Rapiwa.
- Koppla Dispatch WhatsApp via Rapiwa → Mark Verified as Sent.
{{ $json.data.exists }} och {{ $json.data.number }} att fallera—verifiera svarets struktur från API:et i en testkörning.Steg 5: lägg till strypning mellan utskick
Styr utskickstakten för att undvika API:ets rate limits och möjliggöra batch-iteration.
- Öppna Pause Between Sends och konfigurera en väntetid som passar era utskicksgränser.
- Koppla Mark Verified as Sent → Pause Between Sends och Mark Unverified as Unsent → Pause Between Sends.
- Säkerställ att Pause Between Sends kopplas tillbaka till Iterate Records för att fortsätta bearbeta batchen.
Steg 6: testa och aktivera ert workflow
Validera flödet från början till slut innan ni slår på det för kontinuerlig outreach.
- Klicka på Execute Workflow för att köra ett manuellt test från Five-Minute Schedule.
- Bekräfta att Retrieve Pending Messages laddar rader, att Normalize WhatsApp Number rensar data och att Verify WhatsApp Number returnerar verifieringsresultat.
- Kontrollera att verifierade nummer routas till Dispatch WhatsApp via Rapiwa och därefter uppdateras via Mark Verified as Sent.
- Verifiera att overifierade nummer uppdateras via Mark Unverified as Unsent och att Pause Between Sends loopar tillbaka till Iterate Records.
- När resultaten ser korrekta ut växlar ni workflowet till Active för användning i produktion.
Tips för felsökning
- Google Sheets-inloggningar kan löpa ut eller tappa åtkomst till filen. Om rader slutar uppdateras: kontrollera Google-kontokopplingen i n8n och bekräfta att kalkylarket fortfarande delas med det kontot.
- Om du använder Wait-noder eller extern sändning varierar bearbetningstiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Rapiwa-anrop kan misslyckas på grund av en ogiltig eller roterad API-nyckel, eller för att ditt kopplade WhatsApp-nummer tillfälligt är frånkopplat. Börja med att kontrollera senaste svaret i HTTP Request-noden, och bekräfta sedan att token i n8n-credentials matchar din Rapiwa-dashboard.
Snabba svar
Cirka 30 minuter om ditt ark och dina konton är redo.
Nej. Du mappar kolumner i Google Sheets och klistrar in din Rapiwa API-nyckel i n8n-credentials.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in Rapiwa-abonnemang/API-kostnader enligt din plan.
Två alternativ: n8n Cloud (hanterad, enklast att komma i gång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverdrift.
Ja, och det bör du. De flesta justerar gränsen för “Cap Batch Size”, väntetiden i “Pause Between Sends” och Google Sheets-filtret (till exempel byter från Status = pending till en specifik kampanjtagg). Du kan också justera HTTP Request-bodyn i “Dispatch WhatsApp via Rapiwa” för att inkludera media om din Rapiwa-endpoint stödjer det, så länge din bild-URL är offentligt tillgänglig.
Oftast handlar det om behörigheter. Återanslut Google Sheets-credential i n8n och bekräfta sedan att samma Google-konto kan öppna exakt det kalkylark och den flik du valde i noden.
På n8n Cloud Starter kan du köra ett bra antal körningar per månad för mindre kampanjer, och högre planer hanterar mer. Om du self-hostar finns ingen n8n-gräns för antal körningar, men serverresurser och Rapiwa-begränsningar spelar fortfarande roll. I praktiken är workflowet byggt för att gå i batcher, så att skicka några hundra meddelanden per dag är realistiskt om väntetid och batchstorlek är rimliga.
Ofta, ja. n8n är bättre när du behöver batchning, villkorslogik (skicka bara om verifierad) och en pålitlig loop för att “skriva tillbaka till arket” utan att betala extra för varje gren. Self-hosting är också viktigt om du kör frekventa schemalagda kontroller. Zapier eller Make kan gå snabbare för en minimal setup, men blir snabbt klumpiga när du behöver verifiering + statusuppdateringar + hastighetsbegränsning i ett och samma flöde. Vill du ha en second opinion: Prata med en automationsspecialist.
När detta väl kör: då slutar ditt kalkylark vara en lista och börjar vara ett system. Renare kampanjer, mindre tvekan och uppföljningar du faktiskt kan lita på.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.