Din WhatsApp-inkorg var aldrig tänkt att fungera som ett ärendehanteringssystem. Meddelanden staplas på hög, två personer svarar samma kund, och tråden “jag återkommer senare” blir i tysthet ett tappat lead.
Supportansvariga märker det först, men en säljchef och en stressad klinikägare hamnar snabbt i samma röra. Den här WhatsApp–Google Sheets-automationen ger er en gemensam svars-kö, så inget faller mellan stolarna och överlämningar slutar vara gissningslek.
Nedan ser du hur flödet loggar varje inkommande WhatsApp-meddelande, låter teamet svara från Google Sheets och skickar svar automatiskt när de markeras som “Ready”.
Så fungerar den här automationen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: WhatsApp + Google Sheets: delad svarskö
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n3@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n5@{ icon: "mdi:database", form: "rounded", label: "Get new answers", pos: "b", h: 48 }
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/whatsapp.svg' width='40' height='40' /></div><br/>Reply to the user"]
n7@{ icon: "mdi:database", form: "rounded", label: "Update message status", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "Wait 1 sec", pos: "b", h: 48 }
n8 --> n4
n5 --> n4
n4 --> n6
n3 --> n5
n6 --> n7
n7 --> n8
end
subgraph sg1["Get new entries Flow"]
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/whatsapp.svg' width='40' height='40' /></div><br/>Sent notification template"]
n10@{ icon: "mdi:play-circle", form: "rounded", label: "Get new entries", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-horizontal", form: "rounded", label: "User consented for WA messag..", pos: "b", h: 48 }
n10 --> n11
n11 --> n0
end
subgraph sg2["WhatsApp Flow"]
direction LR
n1["<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/>WhatsApp Trigger"]
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is message?", pos: "b", h: 48 }
n9@{ icon: "mdi:database", form: "rounded", label: "New message from the user", pos: "b", h: 48 }
n2 --> n9
n1 --> n2
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,n10,n1 trigger
class n11,n2 decision
class n5,n7,n9 database
classDef customIcon fill:none,stroke:none
class n6,n0,n1 customIcon
Problemet: WhatsApp-svar skalar inte i ett team
WhatsApp är snabbt, personligt och brutalt när du hanterar allt manuellt. En person kan hänga med… tills det inte går längre. Då tar du in en andra kollega och allt blir märkligt: svar dubbelas, viktig kontext finns bara i någons huvud och kunder följer upp med “Hallå??” eftersom ingen vet vem som äger tråden. Samtidigt försöker du också spåra samtycke, bokningar och utfall, vilket gör att du kopierar och klistrar in chattutdrag i ett kalkylark i efterhand (när du kommer ihåg det).
Det går fort utför. Här är var det brukar fallera i verkligheten:
- Meddelanden besvaras sent eftersom din “kö” bara är en scrollbar chattlista.
- Att lämna över en konversation innebär skärmdumpar, vidarebefordran och missad kontext.
- Rapportering blir ett sänke eftersom det inte finns någon strukturerad logg över vad som kom in och vad som skickades ut.
- Att följa WhatsApps 24-timmarsregler för meddelanden blir riskabelt när ingen ser tidpunkten för senaste användarmeddelandet.
Lösningen: en gemensam svars-kö byggd på WhatsApp + Google Sheets
Det här flödet gör WhatsApp till ett system som teamet faktiskt kan driva. När ett nytt meddelande kommer in till ditt WhatsApp Business-nummer fångar n8n texten plus grundläggande användardata och loggar det i Google Sheets som en ny rad. Därifrån svarar teamet i arket, inte i personliga inkorgar. När någon fyller i kolumnen ReplyText och ändrar Status till “Ready” plockar n8n upp det enligt ett tidsschema, skickar meddelandet via WhatsApp Business-noden och uppdaterar sedan arket så att det markeras som skickat. Tydlig historik, klart ägarskap och en kö som alla kan jobba i.
Flödet hanterar också proaktiva meddelanden. När ett nytt Google Form-svar landar i arket (eller via en kopplad trigger) kontrollerar det samtycke och skickar en godkänd WhatsApp-mallnotis, vilket håller dig compliant utanför 24-timmarsfönstret.
Det du får: automation vs. resultat
| Det här automatiserar flödet | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att ditt företag får cirka 40 WhatsApp-meddelanden per dag. Att manuellt logga ens hälften i ett ark (namn, nummer, meddelande, tid) kan ta 2 minuter per styck, så du är redan nära en timmes administrativt arbete, plus uppföljningar och “har någon svarat?”-kontroller. Med det här flödet sker loggningen direkt, och att svara är bara att fylla i ReplyText och sätta Status till Ready. I praktiken lägger teamet tid på svaret, inte på rutinjobbet, och kön håller sig prydlig utan att någon behöver vakta den.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- WhatsApp Business (Meta) för att skicka och ta emot WhatsApp-meddelanden.
- Google Sheets för den gemensamma svars-kön och meddelandeloggen.
- Meta Access Token (hämta det i Meta Developers Portal).
Svårighetsnivå: Medel. Du kopplar Meta-inloggning, sätter en callback-URL och mappar några Google Sheets-kolumner.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuterskonsultation).
Så fungerar det
Inkommande WhatsApp-meddelanden triggar flödet. När någon skriver till ditt WhatsApp Business-nummer tar WhatsApp Trigger emot händelsen och skickar meddelandedetaljerna vidare in i n8n.
Flödet validerar och loggar meddelandet. En snabb kontroll filtrerar bort brus och säkerställer att payloaden innehåller det du behöver. Sedan skriver n8n in meddelandetexten plus användarinformation i Google Sheets, så att loggen blir er single source of truth.
Svar skickas från en tidsstyrd “Ready”-kö. Enligt schema letar n8n upp rader där Status är “Ready”, loopar igenom dem i batchar och skickar varje ReplyText via WhatsApp Business-noden. En kort väntetid hjälper till att undvika krockar och problem med rate limits.
Arket uppdateras så att kön hålls ren. Efter skickat markerar n8n raden som skickad (eller uppdaterar ett statusfält), vilket gör att samma svar inte går iväg två gånger.
Du kan enkelt justera logiken för statusen “Ready” så att den passar teamet, till exempel genom att lägga till en kolumn AssignedTo eller en prioriteringsflagga baserat på meddelandeinnehåll. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera triggertypen
Konfigurera de tre triggers som startar varje gren: nya formulärrader, inkommande WhatsApp-meddelanden och en schemalagd pollningscykel.
- Öppna Fetch New Form Rows och ställ in Event till
rowAdded, och säkerställ att Poll Times användereveryXminutesmedvalue5. - I Fetch New Form Rows ställer ni in Document ID till
[YOUR_ID]och Sheet Name tillForm Responses 1. - Öppna Incoming WhatsApp Hook och bekräfta att Updates inkluderar
messages. - Öppna Timed Schedule Start och ställ in Interval så att den körs var
minutes(enligt schemaregeln). - Inloggningsuppgifter krävs: Anslut era
googleSheetsTriggerOAuth2Api-inloggningsuppgifter i Fetch New Form Rows. - Inloggningsuppgifter krävs: Anslut era
whatsAppTriggerApi-inloggningsuppgifter i Incoming WhatsApp Hook.
Steg 2: anslut Google Sheets
Konfigurera Sheets-noderna som läser och skriver WhatsApp-meddelandedata och svarsstatus.
- I Retrieve Ready Replies ställer ni in Document ID till
[YOUR_ID]och Sheet Name tillWA-messages. - I Retrieve Ready Replies lägger ni till ett filter där Lookup Column är
Statusoch Lookup Value ärReady. - I Log User Message ställer ni in Operation till
appendoch mappar fält: UserName till{{ $json.contacts[0].profile.name }}, UserPhone till{{ $json.messages[0].from }}, UserMessage till{{ $json.messages[0].text.body }}och Status tillNew. - I Modify Reply Status ställer ni in Operation till
update, sätter Status tillRepliedoch mappar row_number till{{ $('Iterate Reply Batch').item.json.row_number }}. - Inloggningsuppgifter krävs: Anslut era
googleSheetsOAuth2Api-inloggningsuppgifter i Retrieve Ready Replies, Log User Message och Modify Reply Status.
Steg 3: konfigurera bearbetning och validering
Konfigurera logiknoderna som validerar inkommande meddelanden, samtycke och batchbearbetning.
- I Validate Incoming Message ställer ni in villkoret så att det kontrollerar att leftValue finns på
{{ $json.messages[0] }}. - I Check WA Consent ställer ni in filtret så att det kräver att leftValue
{{ $json["I consent to receive WhatsApp notifications regarding my appointments"] }}är lika medYes. - I Iterate Reply Batch behåller ni standardinställningarna för batchning och säkerställer att den ansluter från Retrieve Ready Replies och till Send User Reply på den andra utgången.
- I Brief Delay ställer ni in Amount till
1för att strypa svarslooparna innan flödet går tillbaka till Iterate Reply Batch.
Steg 4: konfigurera utdata-/åtgärdsnoder
Konfigurera WhatsApp-sändningsåtgärderna och säkerställ att flödet routar korrekt till uppdateringar och loggning.
- I Dispatch Template Notice ställer ni in Template till
test_appointment_button|en_USoch Phone Number ID till=[YOUR_ID]. - I Dispatch Template Notice ställer ni in Recipient Phone Number till
{{ $json["Your mobile number"] }}och behåller body-parametrarna med uttryck som{{ $json["Your name"] }}och{{ DateTime.fromFormat($json["Please pick a day and time of your appointment"], "M/d/yyyy HH:mm:ss").toLocaleString(DateTime.DATE_HUGE); }}. - I Send User Reply ställer ni in Operation till
send, Text Body till{{ $json.ReplyText }}, Phone Number ID till[YOUR_ID]och Recipient Phone Number till=+{{ $json.UserPhone }}. - Bekräfta loggningsflödet för meddelanden: Incoming WhatsApp Hook → Validate Incoming Message → Log User Message.
- Inloggningsuppgifter krävs: Anslut era
whatsAppApi-inloggningsuppgifter i Dispatch Template Notice och Send User Reply.
Steg 5: testa och aktivera ert arbetsflöde
Validera varje triggerflöde och bekräfta uppdateringar i Sheets och WhatsApp-meddelanden innan ni aktiverar användning i produktion.
- Klicka på Execute Workflow och trigga Fetch New Form Rows manuellt genom att lägga till en ny rad med samtycke satt till
Yesför att bekräfta att Dispatch Template Notice skickar ett mallmeddelande. - Skicka ett WhatsApp-meddelande till det anslutna numret och verifiera att Incoming WhatsApp Hook → Validate Incoming Message → Log User Message lägger till en rad i
WA-messagesmedStatussatt tillNew. - Markera en rads Status som
Readyoch bekräfta att det schemalagda flödet skickar ett svar via Send User Reply och uppdaterar Status tillRepliedi Modify Reply Status. - När testerna lyckas växlar ni arbetsflödet till Active för att aktivera kontinuerliga WhatsApp-notiser.
Vanliga fallgropar
- WhatsApp (Meta)-inloggningar kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först tokenstatusen för din Meta Developers-app och webhook-prenumerationerna.
- Om du använder Wait-noder eller extern bearbetning varierar tajmingen. Öka väntetiden om efterföljande noder misslyckas eftersom sheet-uppdateringen inte har hunnit landa ännu.
- Mallmeddelanden har regler. Om du är utanför WhatsApps 24-timmarsfönster kan din egen text misslyckas om du inte använder en godkänd mall, så håll den logiken tydlig i samtyckes- och notisflödet.
Vanliga frågor
Cirka 45 minuter om din Meta-app och ditt Google Sheet redan är klart.
Nej. Du kopplar främst konton och mappar fält till kolumnerna i ditt ark.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna med kostnader för Meta/WhatsApp Business (mallar och meddelanden beror på din WhatsApp Business-prissättning och land).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och klarar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är en vanlig uppgradering. Lägg till kolumner som AssignedTo och Priority i Google Sheets och uppdatera sedan steget “Retrieve Ready Replies” så att det filtrerar per handläggare (eller routar via en Switch-regel baserat på nyckelord). Du kan också ändra uppdateringen “Modify Reply Status” så att den skriver tillbaka vem som skickade svaret och när. Vill du ha godkännanden kan du införa en andra status, till exempel “Needs Review”, före “Ready”.
Oftast beror det på en utgången token eller fel behörigheter i din Meta-app. Skapa en ny access token, bekräfta WhatsApp Business Account ID och phone number ID och säkerställ att callback-URL:en från WhatsApp Trigger fortfarande är korrekt inställd i Meta Developers-portalen. Kontrollera också reglerna för meddelandetyper: utanför 24-timmarsfönstret kan skick med egen text misslyckas om du inte använder ett godkänt mallmeddelande.
Många. På n8n Cloud Starter begränsas du av antal körningar per månad, medan self-hosting mest beror på din server. I praktiken spelar WhatsApps rate limits och mallregler större roll än n8n, så om du skickar hundratals svar per dag bör du batcha och lägga in något längre väntetider.
Ofta, ja. Det här flödet drar nytta av schemalagd hämtning, batchning och att skriva statusar tillbaka till samma ark, och n8n hanterar den typen av förgreningar utan att bli en labyrint av separata Zaps eller scenarier. n8n ger också möjlighet till self-hosting, vilket är praktiskt när volymen växer och du inte vill att varje poll eller uppdatering ska bli en kostnad. Zapier eller Make kan fortfarande fungera för en väldigt liten setup, som att bara logga meddelanden, men mönstret med gemensam kö brukar kräva mer kontroll. Vill du ha en second opinion, Prata med en automationsexpert.
Det här är den typen av flöde du sätter upp en gång och sedan förlitar dig på varje dag. Dina WhatsApp-meddelanden slutar vara kaos, och teamet får äntligen en kö ni kan jobba i tillsammans.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.