Din WhatsApp-supportinkorg fylls snabbt, och det jobbiga är inte de svåra frågorna. Det är det konstanta växlandet mellan ”snabbsvar”, ”lyssna på det här röstmeddelandet”, ”vad finns i den här skärmbilden” och ”kan du sammanfatta den här PDF:en?” hela dagen.
Supportansvariga känner av det först. Småföretagare får ofta göra det efter arbetstid. Och marknadschefer dras in när svaren börjar glida från varumärkets ton. Den här WhatsApp OpenAI-automationen håller svaren konsekventa i text, röst, bilder och PDF:er utan att du behöver övervaka varje meddelande.
Du får se hur flödet routar varje meddelandetyp, gör stökiga underlag till användbar kontext och svarar i ett korrekt formaterat ”WhatsApp-vänligt” format (med valfria röstsvar när kunder skickar ljud).
Så fungerar den här automationen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: WhatsApp + OpenAI: smartare svar i supportchattar
flowchart LR
subgraph sg0["WhatsApp 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/>WhatsApp Trigger"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Download Image"]
n2@{ icon: "mdi:robot", form: "rounded", label: "Analyze Image", 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/>Download Audio"]
n4@{ icon: "mdi:robot", form: "rounded", label: "Transcribe Audio", pos: "b", h: 48 }
n5@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "AI Agent1", pos: "b", h: 48 }
n7["<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 File"]
n8@{ icon: "mdi:cog", form: "rounded", label: "Extract from File", pos: "b", h: 48 }
n9@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", pos: "b", h: 48 }
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/whatsapp.svg' width='40' height='40' /></div><br/>Get File Url"]
n11@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Only PDF File", pos: "b", h: 48 }
n12["<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/>Fix mimeType for Audio"]
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/whatsapp.svg' width='40' height='40' /></div><br/>Send message"]
n14["<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 audio"]
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/whatsapp.svg' width='40' height='40' /></div><br/>Incorrect format"]
n16@{ icon: "mdi:swap-vertical", form: "rounded", label: "Text", pos: "b", h: 48 }
n17@{ icon: "mdi:swap-vertical", form: "rounded", label: "Audio", pos: "b", h: 48 }
n18@{ icon: "mdi:swap-vertical", form: "rounded", label: "Image", pos: "b", h: 48 }
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "File", pos: "b", h: 48 }
n20["<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/>Not supported"]
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/whatsapp.svg' width='40' height='40' /></div><br/>Get Image Url"]
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/>Get Audio Url"]
n23@{ icon: "mdi:robot", form: "rounded", label: "Generate Audio Response", pos: "b", h: 48 }
n24@{ icon: "mdi:swap-horizontal", form: "rounded", label: "From audio to audio?", pos: "b", h: 48 }
n25@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Input type", pos: "b", h: 48 }
n19 --> n6
n16 --> n6
n17 --> n6
n18 --> n6
n6 --> n24
n25 --> n16
n25 --> n22
n25 --> n21
n25 --> n11
n25 --> n20
n10 --> n7
n2 --> n18
n7 --> n8
n22 --> n3
n21 --> n1
n11 --> n10
n11 --> n15
n9 -.-> n6
n3 --> n4
n1 --> n2
n4 --> n17
n0 --> n25
n8 --> n19
n5 -.-> n6
n24 --> n23
n24 --> n13
n12 --> n14
n23 --> n12
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 n0 trigger
class n2,n4,n6,n23 ai
class n5 aiModel
class n9 ai
class n11,n24,n25 decision
class n1,n3,n7 api
class n12 code
classDef customIcon fill:none,stroke:none
class n0,n1,n3,n7,n10,n12,n13,n14,n15,n20,n21,n22 customIcon
Därför är det viktigt: supportinkorgar skapar fel vid ”multimodala” meddelanden
De flesta team tror att WhatsApp-support är ”bara chatt” tills kunder börjar skicka allt utom en korrekt formaterad fråga. En bild på en trasig del. Ett röstmeddelande med en lång berättelse. En PDF-faktura med ”kan du kolla den här?” på slutet. Plötsligt laddar du ned filer, spelar upp ljud igen, letar efter kontext och försöker svara med en ton som matchar varumärket. Det här kontextbytet är utmattande, och det bromsar även de enkla ärendena eftersom kön korkar igen. Misstag smyger sig in, och helt ärligt märker kunderna det.
Friktionen byggs på. Här är var det fallerar i verkligheten.
- Någon måste manuellt öppna och tolka bilder, vilket gör ett 30-sekunders svar till en 10-minuters omväg.
- Röstmeddelanden kräver att du lyssnar, lyssnar igen och skriver tillbaka, så en enda kund kan binda upp en handläggare.
- PDF:er ignoreras eller försenas eftersom det är irriterande och lätt att göra fel när man ska plocka ut rätt detaljer.
- När flera personer svarar från samma inkorg glider ton och precision, och du får lägga tid på efterarbete.
Det du bygger: en WhatsApp AI-assistent som förstår text, röst, bilder och PDF:er
Det här flödet gör din WhatsApp-inkorg till en AI-assisterad supportkanal som kan ”läsa” det kunder skickar, även när det inte är ren text. Det startar när ett WhatsApp-meddelande kommer in och kontrollerar sedan vilken typ av innehåll det är (text, röstmeddelande, bild eller dokument). Om det är ett röstmeddelande laddar flödet ned ljudet och transkriberar det med OpenAI Whisper så att AI:n kan svara på det som faktiskt sades. Om det är en bild laddar det ned den och skickar den till en bildkapabel OpenAI-modell för att skapa en användbar beskrivning innan svar. Om det är en PDF validerar det filtypen, extraherar dokumenttexten och svarar med dokumentets kontext. Under hela konversationen håller ett minnesfönster koll på ungefär de senaste 10 interaktionerna så att svaren blir konsekventa och inte ”glömmer” vad kunden redan har sagt.
Flödet börjar med en WhatsApp-trigger och routar sedan meddelanden genom en Switch-nod baserat på inmatningstyp. OpenAI gör grovjobbet (transkribering, bildförståelse och svarsgenerering), och WhatsApp skickar svaret tillbaka som text eller som ett genererat röstsvar när det passar.
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att din inkorg får 20 WhatsApp-meddelanden per dag. Om 5 är röstmeddelanden (cirka 6 minuter vardera att lyssna och svara), 5 innehåller en bild (kanske 5 minuter att tolka), och 2 har PDF:er (omkring 10 minuter att plocka ut det viktiga), så lägger du ungefär 2 timmar bara på att ”förstå inmatningen”. Med det här flödet granskar du fortfarande specialfall, men det mesta av förarbetet försvinner. Du gör främst en snabb kontroll och skickar, vilket ofta känns som 20 minuter i stället för halva eftermiddagen.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- WhatsApp Business API för att ta emot och skicka WhatsApp-meddelanden.
- OpenAI för chatt, vision, transkribering och TTS.
- OpenAI API-nyckel (hämta den i OpenAI API-dashboarden).
Svårighetsnivå: Medel. Du kopplar in autentiseringar, testar meddelandetyper och finjusterar en systemprompt för din varumärkeston.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En kund skickar ett meddelande till ditt WhatsApp-nummer. Flödet startar direkt från WhatsApp-triggern och fångar meddelandets payload (text plus eventuell media-metadata).
Flödet avgör vilken typ av meddelande det är. En routing-switch kontrollerar om det är text, ljud, bild eller ett dokument och skickar det vidare i rätt gren. Format som inte stöds får en artig notis om att det inte går att behandla, så kunderna inte blir utan svar.
OpenAI gör om de ”svåra delarna” till användbar kontext. Ljud laddas ned och transkriberas (Whisper). Bilder laddas ned och beskrivs av en vision-kapabel modell. PDF:er valideras, hämtas och parsas så att AI:n kan svara utifrån innehållet i filen, inte gissningar.
Assistenten svarar, med minne för kontinuitet. AI-agenten genererar ett koncist svar med en anpassad systemprompt, medan ett minnesfönster behåller senaste kontext (cirka 10 turer). Om inmatningen var ljud kan flödet generera ett röstsvar och skicka tillbaka det som WhatsApp-ljud; annars skickas ett korrekt formaterat textsvar.
Du kan enkelt ändra systemprompten för att matcha dina policyer och din ton efter behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera WhatsApp-triggern
Konfigurera arbetsflödets startpunkt så att inkommande WhatsApp-meddelanden kan tas emot och routas.
- Lägg till noden WhatsApp Inbound Hook och aktivera uppdateringar för messages.
- Inloggningsuppgifter krävs: Anslut era
whatsAppTriggerApi-inloggningsuppgifter. - Verifiera att webhooken är nåbar och returnerar events innan ni fortsätter.
Steg 2: konfigurera routning av input och hämtning av media
Routa inkommande meddelanden efter typ och hämta mediafiler vid behov.
- I Route Input Type, bekräfta att det finns regler för Text, Voice, Image och Document med uttryck som
{{ $json.messages[0].text.body }}och{{ $json.messages[0].audio }}. - Anslut WhatsApp-media-noderna med inloggningsuppgifter: Retrieve Audio URL, Retrieve Image URL och Retrieve Doc URL.
- Inloggningsuppgifter krävs: Anslut era
whatsAppApi-inloggningsuppgifter till alla WhatsApp action-noder (7 noder hanterar mediahämtning och svar). - I Validate PDF Only, behåll villkoret att
{{ $json.messages[0].document.mime_type }}är lika medapplication/pdfför att filtrera dokument.
Steg 3: konfigurera hämtning och parsning av media
Ladda ner mediafiler och extrahera innehåll för ljud, bilder och PDF:er.
- Ställ in Fetch Image File-URL till
{{ $json.url }}och autentisera medhttpHeaderAuth. - Ställ in Fetch Audio File-URL till
{{ $json.url }}och autentisera medhttpHeaderAuth. - Ställ in Fetch Document File-URL till
{{ $json.url }}och autentisera medhttpHeaderAuth. - I Parse PDF Content, ställ in Operation till
pdfför att extrahera text.
Steg 4: sätt upp AI-bearbetning och minne
Konfigurera AI-pipelinen för tolkning av text, röst, bild och dokument.
- I Image Insight Review, behåll Resource som
image, Input Type sombase64och analysprompten enligt angiven konfiguration. - I Speech To Text, ställ in Resource till
audiooch Operation tilltranscribe. - I AI Response Agent, ställ in Text till
{{ $json.text }}och behåll systemmeddelandet för multimodal analys. - Öppna Chat Model Engine och välj modellen
gpt-4o-mini. - Öppna Conversation Memory och behåll Session Key som
memory_{{ $('WhatsApp Inbound Hook').item.json.contacts[0].wa_id }}med Context Window Length satt till10. - Inloggningsuppgifter krävs: Anslut era
openAiApi-inloggningsuppgifter till Image Insight Review, Speech To Text, Chat Model Engine och Generate Voice Output.
Steg 5: konfigurera mapping av svar och outputs
Mappa payloads till AI-prompter och definiera hur svar skickas via WhatsApp.
- I Map Text Payload, ställ in text till
{{ $('WhatsApp Inbound Hook').item.json.messages[0].text.body }}. - I Map Voice Payload, ställ in text till
{{ $json.text }}(från Speech To Text). - I Map Image Payload, ställ in text till
User request on the image: {{ "Describe the following image" || $('WhatsApp Inbound Hook').item.json.messages[0].image.caption }} Image description: {{ $json.content }}. - I Map Document Payload, ställ in text till
User request on the file: {{ "Describe this file" || $('Validate PDF Only').item.json.messages[0].document.caption }} File content: {{ $json.text }}. - I Voice Response Check, verifiera att villkoret
{{ $('WhatsApp Inbound Hook').item.json.messages[0].audio }}finns för att avgöra röstsvar. - I Send Text Reply, ställ in Text Body till
{{ $json.output }}och Recipient Phone Number till{{ $('WhatsApp Inbound Hook').item.json.messages[0].from }}. - I Generate Voice Output, ställ in Input till
{{ $('AI Response Agent').item.json.output }}och Voice tillonyx, och skicka sedan vidare via Normalize Audio Mime till Send Voice Reply. - Säkerställ att Notify Wrong Format och Unsupported Notice är anslutna för dokumentvalidering och ej stödda inputs.
[YOUR_ID] i WhatsApp-noderna med ert WhatsApp Phone Number ID.Steg 6: testa och aktivera ert arbetsflöde
Kör end-to-end-tester för varje mediatyp och aktivera sedan arbetsflödet för produktion.
- Klicka på Execute Workflow och skicka ett text-, bild-, ljud- och PDF-meddelande till ert WhatsApp-nummer.
- Bekräfta utdata: textsvar ska returneras från Send Text Reply, och ljudinput ska returnera ett röstmeddelande via Send Voice Reply.
- Om PDF-valideringen misslyckas, verifiera att Validate PDF Only matchar
application/pdfoch att Notify Wrong Format triggar. - När allt fungerar, slå om arbetsflödet till Active för att möjliggöra produktion.
Felsökningstips
- Inloggningsuppgifter för WhatsApp Business API kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först inställningarna i din Meta Developer-app och tokenstatus.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder misslyckas på grund av tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er varumärkeston tidigt, annars kommer du redigera output för alltid.
Snabba svar
Cirka 45 minuter om dina WhatsApp- och OpenAI-uppgifter är klara.
Nej. Du kopplar konton och justerar prompter och routingregler.
Ja. n8n har ett gratis alternativ för egen hosting 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 in OpenAI API-kostnader, som vanligtvis är små per meddelande men ökar med bild-, ljud- och PDF-bearbetning.
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änsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du. De flesta anpassningar sker i AI-agentens systemprompt (ton, policyer, eskaleringsregler) och i switchen ”Route Input Type” (vad du accepterar och hur du hanterar det). Många team lägger till en gren som routar meddelanden om ”återbetalning” eller ”arg kund” till en människa, medan rutin-FAQ:er fortsätter att automatiseras. Du kan också ändra logiken i ”Validate PDF Only” för att tillåta andra dokumenttyper om din supportprocess behöver det.
Oftast beror det på en utgången Meta-token eller ett behörighetsproblem för WhatsApp Business API i ditt Meta Developer-konto. Uppdatera autentiseringarna i WhatsApp-triggern och sändnoderna och testa igen med ett nytt inkommande meddelande. Om bara mediameddelanden misslyckas, kontrollera att flödet kan hämta media-URL:er och att din app har rätt scopes för att ladda ned bilagor. Rate limiting kan också dyka upp när du bearbetar många mediatunga meddelanden efter varandra.
På n8n Cloud beror volymen på din plans månatliga körningar, medan egen hosting främst beror på din server. Praktiskt sett är de långsammaste delarna transkribering och dokument-/bildbearbetning, så räkna med att mediatunga chattar tar längre tid än enbart text. Om du kör en inkorg med hög volym blir köhantering samt större minnes-/compute-budget viktigare än själva flödeslogiken.
För multimodal WhatsApp-support är n8n oftast ett bättre val eftersom förgreningslogiken är flexibel, du kan köra egen hosting för skala och du kan hålla hela kedjan ”ladda ned fil → bearbeta → svara” på ett ställe. Zapier och Make kan fungera, men de blir ofta klumpiga när du lägger till flera rutter (text, bild, ljud, PDF) och vill ha delat minne mellan meddelanden. En annan skillnad är kostnadsbeteendet: med n8n betalar du inte extra varje gång du bygger mer avancerad logik, vilket spelar roll när du förfinar flödet över tid. Om du bara gör ett enkelt autosvar kan de verktygen kännas snabbare att starta med. Prata med en automationsexpert om du vill ha hjälp att välja.
När detta väl är igång slutar inkorgen kännas som en hög med pussel och börjar fungera som ett system. Flödet tar hand om den repetitiva tolkningen, så att du kan lägga din tid på de konversationer som faktiskt kräver en människa.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.