Ditt supportteam har redan rätt svar. De är bara begravda i Google Docs, utspridda över olika versioner och omöjliga att hitta när en kund väntar på WhatsApp.
Det här slår hårdast mot supportansvariga, men även produktspecialister och kunskapsansvariga påverkas. Med WhatsApp Docs automation slutar du jaga i dokument och börjar skicka konsekventa svar på några minuter, även när kunden skickar ett röstmeddelande eller en fil.
Det här arbetsflödet gör Google Docs till en levande kunskapsbas och använder sedan AI för att plocka ut rätt utdrag och skriva ett tydligt WhatsApp-svar. Du får se hur det fungerar, vad du behöver och vad du ska se upp med.
Så fungerar automatiseringen
Hela n8n-arbetsflödet, från trigger till slutligt resultat:
n8n Workflow Template: WhatsApp + Google Docs: snabbare supportsvar
flowchart LR
subgraph sg0["WhatsApp Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "Knowledge Base Agent", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n2@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI", pos: "b", h: 48 }
n4@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", pos: "b", h: 48 }
n5@{ icon: "mdi:cube-outline", form: "rounded", label: "MongoDB Vector Search", pos: "b", h: 48 }
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/whatsapp.svg' width='40' height='40' /></div><br/>WhatsApp Trigger"]
n12@{ icon: "mdi:robot", form: "rounded", label: "OpenAI", pos: "b", h: 48 }
n13@{ icon: "mdi:robot", form: "rounded", label: "OpenAI1", pos: "b", h: 48 }
n14@{ icon: "mdi:cog", form: "rounded", label: "Extract from PDF", pos: "b", h: 48 }
n15@{ icon: "mdi:cog", form: "rounded", label: "Extract from XLS", pos: "b", h: 48 }
n16@{ icon: "mdi:cog", form: "rounded", label: "Extract from XLSX", pos: "b", h: 48 }
n17@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map JSON", 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/code.svg' width='40' height='40' /></div><br/>Map file extensions"]
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map document prompt", pos: "b", h: 48 }
n20@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map image prompt", pos: "b", h: 48 }
n21@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map text prompt", pos: "b", h: 48 }
n22["<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/>Gets WhatsApp Voicemail Sour.."]
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/whatsapp.svg' width='40' height='40' /></div><br/>Gets WhatsApp Image Source URL"]
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/whatsapp.svg' width='40' height='40' /></div><br/>Gets WhatsApp Document Sourc.."]
n25["<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/>Download Voicemail"]
n26["<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/>Download Image"]
n27["<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/>Download Document"]
n28@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Route Types", pos: "b", h: 48 }
n29@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Route Document Types", pos: "b", h: 48 }
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/whatsapp.svg' width='40' height='40' /></div><br/>Send Unsupported Response"]
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/whatsapp.svg' width='40' height='40' /></div><br/>Send Response"]
n12 --> n0
n13 --> n20
n17 --> n19
n28 --> n21
n28 --> n22
n28 --> n23
n28 --> n24
n4 -.-> n0
n26 --> n13
n21 --> n0
n14 --> n19
n15 --> n17
n20 --> n0
n11 --> n28
n27 --> n18
n2 -.-> n5
n16 --> n17
n1 -.-> n0
n25 --> n12
n19 --> n0
n18 --> n29
n0 --> n31
n29 --> n19
n29 --> n14
n29 --> n17
n29 --> n15
n29 --> n16
n29 --> n30
n5 -.-> n0
n23 --> n26
n24 --> n27
n22 --> n25
end
subgraph sg1["When clicking "Execute Workflow" Flow"]
direction LR
n3@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking 'Execute Workf..", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Document Section Loader", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Document Chunker", pos: "b", h: 48 }
n8@{ icon: "mdi:cube-outline", form: "rounded", label: "MongoDB Vector Store Inserter", pos: "b", h: 48 }
n9@{ icon: "mdi:vector-polygon", form: "rounded", label: "OpenAI Embeddings Generator", pos: "b", h: 48 }
n10@{ icon: "mdi:cog", form: "rounded", label: "Google Docs Importer", pos: "b", h: 48 }
n7 -.-> n6
n10 --> n8
n6 -.-> n8
n9 -.-> n8
n3 --> n10
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 n11,n3 trigger
class n0,n12,n13,n6,n7 ai
class n1 aiModel
class n4 ai
class n5,n8 ai
class n2,n9 ai
class n28,n29 decision
class n25,n26,n27 api
class n18 code
classDef customIcon fill:none,stroke:none
class n11,n18,n22,n23,n24,n25,n26,n27,n30,n31 customIcon
Problemet: supportsvar är långsamma, inkonsekventa och svåra att skala
När ett WhatsApp-meddelande kommer in gör din agent samma rutin: öppnar ett dokument, söker på ett nyckelord, skrollar, kopierar ett stycke, skriver om det för att passa situationen och dubbelkollar att det inte motsäger den senaste produktuppdateringen. Gör du det 30 gånger om dagen är det inte bara ”lite ineffektivt”. Det är mentalt utmattande. Och det värsta är att kunder märker fördröjningen direkt, så teamet börjar stressa, och det är då misstagen smyger sig in. Fel gränser för abonnemang. Föråldrade installationssteg. En självsäker ton på ett osäkert svar. Så urholkas förtroendet.
Det summerar sig snabbt. Här är var det faller isär i verkligheten.
- Agenter slösar cirka 5–10 minuter per fråga bara på att hitta ”rätt” stycke i Google Docs.
- Två personer svarar olika på samma fråga, vilket skapar förvirring och uppföljningsärenden.
- Röstmeddelanden och skärmbilder saktar ner allt eftersom någon måste översätta, tolka och sedan svara.
- PDF:er och kalkylark dyker upp i chatten, och teamet ignorerar dem antingen eller plockar manuellt ut det som är viktigt.
Lösningen: gör Google Docs till WhatsApp-klara svar (automatiskt)
Det här arbetsflödet bygger på en enkel idé: dina Google Docs är redan din produktens sanningskälla, så behandla dem som en riktig kunskapsbas. Först importerar du dokumenten till ett sökbart lager genom att dela upp dem i mindre avsnitt (“chunks”) och skapa embeddings (AI-vänliga vektorer) för varje chunk. De chunkarna lagras i MongoDB Atlas Vector Search med metadata som dokument-ID och källa. När ett WhatsApp-meddelande sedan kommer in upptäcker arbetsflödet vilken typ det är (text, ljud, bild eller dokument), konverterar det till användbar text och söker i din kunskapsbas efter närmaste träffar. Till sist använder en AI-agent de matchade avsnitten som förankrad kontext för att skriva ett kort, varumärkesanpassat svar och skickar tillbaka det via WhatsApp.
Arbetsflödet startar antingen med en manuell importkörning (för att hämta in Google Docs) eller en trigger för inkommande WhatsApp-meddelande. Därefter normaliseras innehållet (transkriberas, extraheras eller analyseras), matchas mot vektorlagret och omvandlas till ett felfritt supportsvar som kunden faktiskt kan använda. Ingen panikartad flikväxling.
Det du får: automatisering vs. resultat
| Det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att din inkorg får 30 WhatsApp-frågor per dag. Manuellt, om varje fråga tar cirka 6 minuter att leta i dokument, bekräfta att du inte citerar ett gammalt avsnitt och skriva om svaret, är det ungefär 3 timmar per dag som går åt till att “hitta och omformulera”. Med det här arbetsflödet behöver agenten oftast bara en snabb granskning innan hen trycker skicka, kanske en minut per meddelande. Även med lite AI-bearbetningstid i bakgrunden får du i praktiken tillbaka runt 2 timmar varje dag, och svaren går ut medan kunden fortfarande bryr sig.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- WhatsApp Cloud API (Meta) för att ta emot och skicka meddelanden
- Google Docs som källa för din produktdokumentation
- MongoDB Atlas för att lagra och söka embeddings
- OpenAI API-nyckel (hämta den i din OpenAI-dashboard)
Svårighetsgrad: Medel. Du kopplar konton, klistrar in en dokument-URL och skapar ett MongoDB vector search-index en gång.
Vill du inte sätta upp detta själv? Prata med en automationsspecialist (gratis 15-minuters konsultation).
Så fungerar det
Google Docs importeras vid begäran. Du kör importflödet när du lägger till eller uppdaterar dokumentation. Det hämtar dokumentet, delar upp det i mindre segment och förbereder varje segment för snabb sökning.
Embeddings gör dokumenten “sökbara på betydelse”. OpenAI genererar embeddings för varje chunk, och arbetsflödet lägger sedan in chunkarna i MongoDB Atlas Vector Search tillsammans med metadata som källa och dokument-ID. Det är det som möjliggör semantisk matchning senare (inte bara nyckelordssökning).
Inkommande WhatsApp-meddelanden normaliseras. Text går rakt igenom. Röstmeddelanden laddas ner och transkriberas. Bilder laddas ner och analyseras så att en skärmbild av ett fel ändå blir en användbar fråga. Dokument laddas ner och tolkas baserat på filtyp (PDF, XLS, XLSX).
AI-agenten svarar med hjälp av hämtad kontext. Arbetsflödet skapar en embedding av den inkommande frågan, slår upp närmaste dokumentations-chunks i MongoDB och använder sedan en kunskapsbasagent (med en minnesbuffer för samtalskontext) för att skriva ett kort WhatsApp-svar och skicka tillbaka det.
Du kan enkelt ändra systemprompten så att den matchar din ton och dina affärsregler utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera WhatsApp-triggern
Konfigurera den inkommande WhatsApp-webhooken som startar konversationsflödet och routar meddelanden efter typ.
- Lägg till och öppna WhatsApp Incoming Trigger.
- Inloggningsuppgifter krävs: anslut era whatsAppTriggerApi-inloggningsuppgifter.
- Säkerställ att Updates inkluderar
messagesså att arbetsflödet tar emot inkommande innehåll. - Koppla WhatsApp Incoming Trigger till Route Message Types.
Steg 2: anslut Google Docs för kunskapsinläsning
Den här grenen läser in ett Google-dokument och infogar det i MongoDBs vektorlager för senare hämtning av agenten.
- Öppna Manual Run Trigger och behåll standardinställningarna (inga fält krävs).
- Öppna Google Docs Retriever och ställ in Operation på
get. - Ställ in Document URL till
https://docs.google.com/document/d/[YOUR_ID]. - Inloggningsuppgifter krävs: anslut era googleDocsOAuth2Api-inloggningsuppgifter i Google Docs Retriever.
- Bekräfta flödet Manual Run Trigger → Google Docs Retriever → MongoDB Vector Inserter.
Steg 3: konfigurera vektorlager och embeddings
Dessa noder delar upp dokumentet, genererar embeddings och lagrar dem i MongoDB så att agenten kan hämta kunskap senare.
- Öppna Document Segment Loader och behåll JSON Data satt till
={{ $json.content }}med metadatadoc_idsatt till={{ $json.documentId }}. - Öppna Recursive Text Splitter och ställ in Chunk Size till
3000och Chunk Overlap till200. - Öppna Embedding Generator och behåll den ansluten till MongoDB Vector Inserter via anslutningen ai_embedding.
- Inloggningsuppgifter krävs: anslut era openAiApi-inloggningsuppgifter i Embedding Generator.
- Öppna MongoDB Vector Inserter och bekräfta att Mode är
insertoch att Vector Index Name ärdata_index. - Inloggningsuppgifter krävs: anslut era mongoDb-inloggningsuppgifter i MongoDB Vector Inserter.
Steg 4: konfigurera meddelanderoutning och mediehämtning
Det här avsnittet routar WhatsApp-meddelanden efter typ och hämtar/laddar ner media före analys eller tolkning.
- Öppna Route Message Types och verifiera att de fyra reglerna använder
={{ $json.messages[0].type }}för att routatext,audio,imageochdocument. - I Fetch Voicemail Media URL ställer ni in Media Get ID till
={{ $json.messages[0].audio.id}}och ansluter whatsAppApi-inloggningsuppgifter. - I Fetch Image Media URL ställer ni in Media Get ID till
={{ $json.messages[0].image.id }}och ansluter whatsAppApi-inloggningsuppgifter. - I Fetch Document Media URL ställer ni in Media Get ID till
={{ $json.messages[0].document.id }}och ansluter whatsAppApi-inloggningsuppgifter. - Öppna Download Voice Media, Download Image Media och Download Document Media och ställ in URL till
={{ $json.url }}med Authentication satt tillgenericCredentialTypeoch Generic Auth Type tillhttpHeaderAuth. - Inloggningsuppgifter krävs: anslut era httpHeaderAuth-inloggningsuppgifter till alla tre nedladdningsnoder.
- Öppna Normalize File Types och behåll JS Code som angivet:
let requests = $("Download Document Media").all() ... return requests;. - Öppna Route Document Formats och bekräfta att reglerna matchar mime-typer som
application/pdf,application/vnd.ms-excelochapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet.
Steg 5: konfigurera AI-bearbetning och prompt-komposition
Dessa noder bygger prompter för text, bilder och dokument och ansluter AI-tjänster för översättning och bildanalys.
- Öppna Compose Text Prompt och ställ in Text till
={{ $json.messages[0].text.body }}. - Öppna Compose Image Prompt och ställ in Text till
=User image description: {{ $json.content }} User image caption: {{ $('Route Message Types').item.json.messages[0].image.caption }}. - Öppna Compose Document Prompt och ställ in Text till
=Parsed text: {{ $json.text || $json.data || $json }} Caption text: {{ $('Route Message Types').item.json.messages[0].document.caption }} MimeType: {{ $('Fetch Document Media URL').item.json.mime_type }}. - Öppna Audio Translator AI och bekräfta att Resource är
audiooch att Operation ärtranslate. - Inloggningsuppgifter krävs: anslut era openAiApi-inloggningsuppgifter i Audio Translator AI och Image Analyzer AI.
- Öppna Image Analyzer AI och bekräfta att Operation är
analyzemed Input Type satt tillbase64.
Steg 6: konfigurera kunskapsagenten och WhatsApp-svar
Det här steget kopplar verktygsuppsättningen för kunskapshämtning och skickar svar tillbaka till WhatsApp.
- Öppna Knowledge Hub Agent och behåll Text satt till
={{ $json.text }}. - Säkerställ att OpenAI Chat Engine är ansluten som språkmodell till Knowledge Hub Agent.
- Inloggningsuppgifter krävs: anslut era openAiApi-inloggningsuppgifter i OpenAI Chat Engine.
- Säkerställ att MongoDB Vector Lookup är ansluten som verktyg till Knowledge Hub Agent med Mode satt till
retrieve-as-tool, Tool NameproductDocsoch Vector Index Namedata_index. - Inloggningsuppgifter krävs: anslut era mongoDb-inloggningsuppgifter i MongoDB Vector Lookup.
- Öppna Session Memory Buffer och ställ in Session Key till
=memory_{{ $('WhatsApp Incoming Trigger').item.json.contacts[0].wa_id }}. - Öppna Send WhatsApp Reply och ställ in Text Body till
={{ $json.output }}med Recipient Phone Number satt till={{ $('WhatsApp Incoming Trigger').item.json.messages[0].from }}. - Inloggningsuppgifter krävs: anslut era whatsAppApi-inloggningsuppgifter i Send WhatsApp Reply och Send Unsupported Notice.
[YOUR_ID] i Send WhatsApp Reply och Send Unsupported Notice med ert riktiga WhatsApp-phoneNumberId.Steg 7: testa och aktivera ert arbetsflöde
Verifiera kunskapsinläsningen, medietolkningen och svarsflödet innan ni aktiverar det för produktion.
- Klicka Execute Workflow på Manual Run Trigger för att bekräfta att Google Docs Retriever infogar vektorer i MongoDB Vector Inserter.
- Skicka ett testmeddelande i WhatsApp med text, ljud, bild och dokument för att verifiera varje gren från Route Message Types och Route Document Formats.
- En lyckad körning avslutas med att Send WhatsApp Reply returnerar AI-svaret i WhatsApp.
- När testningen är klar växlar ni arbetsflödet till Active för att ta emot live-meddelanden i WhatsApp.
Vanliga fallgropar
- WhatsApp (Meta)-inloggningsuppgifter kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först inställningarna i din Meta-app och tokenstatus.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om efterföljande noder misslyckas på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er varumärkesröst tidigt, annars kommer du att redigera output för alltid.
Vanliga frågor
Räkna med cirka 60–90 minuter om du redan har WhatsApp och MongoDB på plats.
Ingen kodning krävs. Du kommer mest att koppla konton och klistra in ID:n, URL:er och prompter.
Ja. n8n har ett gratis alternativ för egen drift och en gratis testperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in OpenAI-användning (oftast några cent per konversation, beroende på längd) och kostnader för MongoDB Atlas baserat på lagring och sökanvändning.
Två alternativ: n8n Cloud (hanterad tjänst, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och klarar n8n bra. Egen drift ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det är värt det. Du kan lagra separata dokument med separat metadata (som produktnamn) vid import, och sedan justera Knowledge Hub Agent-prompten för att välja rätt “källa” baserat på WhatsApp-tråden eller ett nyckelord. Många team anpassar också stegen Compose Text Prompt / Compose Image Prompt / Compose Document Prompt så att agenten alltid svarar i rätt ton, inkluderar en kort checklista och avslutar med samma eskaleringsfråga.
Oftast beror det på en utgången access token eller saknade Meta-behörigheter för WhatsApp Cloud API. Dubbelkolla din Meta-app, säkerställ att WhatsApp Business-kontot är anslutet och uppdatera sedan inloggningsuppgifterna i n8n. Om det bara misslyckas för meddelanden med media, bekräfta att arbetsflödet kan hämta media-URL:er och att HTTP Request-noden kan ladda ner dem.
Med n8n Cloud Starter kan du hantera några tusen körningar per månad, vilket räcker för många mindre supportteam. Om du kör egen drift finns ingen hård gräns för antalet körningar, men serverstorlek och OpenAI:s rate limits blir det praktiska taket. För de flesta uppsättningar kan det här arbetsflödet utan problem hantera flera meddelanden per minut, inklusive media, så länge du inte gör tung filparsning på en minimal VPS.
Ofta, ja, eftersom detta inte är en enkel tvåstegsautomatisering av typen “när ett meddelande kommer in, skicka ett svar”. Du gör routing, filnedladdningar, transkribering eller bildanalys, vektorsökning och minne över flera turer, vilket blir dyrt eller krångligt i Zapier och Make. n8n ger dig också möjligheten att köra egen drift, vilket spelar roll när WhatsApp-volymen växer. Däremot: om du bara behöver autosvar eller enkla nyckelordsbaserade svar kan Zapier eller Make vara snabbare att lansera. Om du är osäker, prata med en automationsspecialist och få en rak rekommendation.
När det här väl är igång slutar dina dokument att vara “något folk borde läsa” och blir i stället något som din supportkanal faktiskt använder. Det skiftet är ärligt talat där hastigheten och konsekvensen kommer ifrån.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.