Ditt supportteam svarar i Chatwoot, men kunden väntar på WhatsApp. Så någon kopierar text, laddar upp filer på nytt och hoppas att inget missas. Det går långsamt. Det blir rörigt. Och misstag som “privat anteckning vs. offentligt svar” är lite för lätta att göra.
Den här Chatwoot WhatsApp-vidarebefordringen träffar supportansvariga först, men driftchefer och byråteam som kör delade inkorgar känner av den också. Resultatet är enkelt: varje offentligt Chatwoot-svar (inklusive media) skickas automatiskt till WhatsApp, medan privata anteckningar förblir privata.
Nedan ser du hur flödet routar meddelanden, identifierar medietyper och skickar korrekt formaterat WhatsApp-klart innehåll via Evolution API utan extra manuella steg.
Så fungerar den här automatiseringen
Se hur den löser problemet:
n8n Workflow Template: Chatwoot till WhatsApp, skicka svar och media korrekt
flowchart LR
subgraph sg0["When Executed by Another Workflow Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When Executed by Another Wor..", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Gateway", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Possui texto?", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check if message is private", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Has attachment?", 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/code.svg' width='40' height='40' /></div><br/>Array of attachments"]
n8@{ icon: "mdi:web", form: "rounded", label: "Send message text", pos: "b", h: 48 }
n9@{ icon: "mdi:web", form: "rounded", label: "Send video message", pos: "b", h: 48 }
n10@{ icon: "mdi:web", form: "rounded", label: "Send audio message", pos: "b", h: 48 }
n11@{ icon: "mdi:web", form: "rounded", label: "Send image message", pos: "b", h: 48 }
n12@{ icon: "mdi:web", form: "rounded", label: "Send document message", pos: "b", h: 48 }
n13@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check attachment file type", pos: "b", h: 48 }
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop array of attachments", 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/code.svg' width='40' height='40' /></div><br/>Object message"]
n16@{ icon: "mdi:web", form: "rounded", label: "Send text - Satisfaction Sur..", pos: "b", h: 48 }
n4 --> n15
n4 --> n1
n2 --> n6
n2 --> n16
n3 --> n8
n15 --> n5
n6 --> n7
n6 --> n3
n10 --> n14
n11 --> n14
n9 --> n14
n7 --> n14
n12 --> n14
n14 --> n13
n13 --> n12
n13 --> n11
n13 --> n10
n13 --> n9
n5 --> n2
n5 --> n1
n0 --> n4
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,n3,n4,n5,n6,n13 decision
class n8,n9,n10,n11,n12,n16 api
class n7,n15 code
classDef customIcon fill:none,stroke:none
class n7,n15 customIcon
Utmaningen: vidarebefordra Chatwoot-svar utan att tappa kontext
Att vidarebefordra från Chatwoot till WhatsApp låter enkelt tills du står mitt i en riktig konversation. En kund ber om en faktura-PDF, din agent svarar med en anteckning till teamet, lägger sedan till ett röstmeddelande och skickar därefter en bild. Nu måste någon avgöra vad som ska vidarebefordras, ladda ner bilagor, ladda upp dem igen och hålla tråden läsbar. Gör du det hela dagen får du förseningar, saknade filer och en support som känns “manuell” även när du har ett helpdesk-system.
Det byggs upp snabbt. Här är var det oftast faller isär.
- Agenter kopierar och klistrar in samma svar två gånger, vilket tar fokus och bjuder in stavfel.
- Bilagor hoppas över eftersom det är störigt att ladda ner och skicka en PDF eller video igen under ett hektiskt pass.
- Privata anteckningar råkar läcka in i kundchatten när någon vidarebefordrar fel meddelande.
- Medietyper beter sig olika på WhatsApp, så det som såg bra ut i Chatwoot kan landa som en trasig länk eller i fel format.
Lösningen: korrekt Chatwoot → WhatsApp-leverans (text + media)
Det här flödet fungerar som ett “leveranslager” mellan Chatwoot och WhatsApp. När ett nytt Chatwoot-meddelande kommer in från ditt huvudflöde kontrollerar det direkt vilken typ av meddelande det är och om det över huvud taget ska vidarebefordras. Offentliga svar packas till ett WhatsApp-vänligt meddelandeobjekt. Privata anteckningar filtreras bort så att de aldrig lämnar teamet. Om meddelandet innehåller bilagor bygger flödet en lista, loopar igenom varje fil, identifierar innehållstypen (bild, ljud, video, dokument) och skickar den med rätt Evolution API-åtgärd. Slutresultatet är en WhatsApp-konversation som känns genomtänkt: läsbar text, korrekt levererat media och inget internt snack.
Flödet börjar med en inkommande Chatwoot-händelse som skickas in i det här underflödet. Sedan avgör routningslogik “text, media, enkät eller inget”, och en integritetskontroll stoppar interna anteckningar. Till sist skickar Evolution API rätt WhatsApp-meddelandeformat för varje objekt.
Vad som ändras: före vs. efter
| Det här elimineras | Effekten du ser |
|---|---|
|
|
Effekt i verkligheten
Säg att ditt team hanterar 40 svar per dag från Chatwoot som ska till WhatsApp, och att ungefär hälften innehåller någon typ av bilaga. Manuellt tar även en snabb vidarebefordran kanske 2 minuter för ett text-svar och cirka 5 minuter när det finns en PDF, bild eller röstanteckning. Det är ungefär 2–3 timmar rutinjobb per dag. Med det här flödet blir “mänsklig tid” nära noll efter att meddelandet skickats i Chatwoot, eftersom leveransen till WhatsApp sker automatiskt i bakgrunden.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Självhostat alternativ om du föredrar det (Hostinger fungerar bra)
- Chatwoot som din kundsupport-inkorg.
- Evolution API för att skicka WhatsApp-meddelanden.
- Evolution API-nyckel (hämtas i din leverantörs Evolution API-dashboard).
Kunskapsnivå: Medel. Du kopplar in autentiseringsuppgifter och mappar några fält från Chatwoot-payloaden till Evolution API-noderna.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet, steg för steg
Ett Chatwoot-meddelande går in i underflödet. Det här är byggt för att kopplas till ett “huvudflöde” som tar emot Chatwoot-händelser (webhook eller inbyggd integration) och sedan anropar detta underflöde för att hantera leverans till WhatsApp.
Routning avgör vad som ska hända. Switch- och If-logik kontrollerar om det finns text, om meddelandet är en privat/intern anteckning och om bilagor finns. Om det är privat gör flödet medvetet ingenting. Tyst. Ärligt talat förhindrar just det beslutet många pinsamma incidenter.
Bilagor normaliseras och klassificeras. Ett kodsteg bygger en bilagelista från Chatwoot-payloaden, och sedan bearbetar en loop varje fil. En ytterligare routningskontroll identifierar bilagetypen via fältet content_type så att flödet kan skicka den på rätt sätt.
WhatsApp tar emot de slutliga, formaterade meddelandena. Evolution API-noder skickar text-, bild-, ljud-, video- eller dokumentmeddelanden beroende på vad som passar. Om ditt användningsfall inkluderar enkäter finns det även en dedikerad route för “enkättext”.
Du kan enkelt justera routningsreglerna efter din policy, till exempel vidarebefordra endast vissa inkorgar eller hoppa över stora filtyper utifrån dina behov. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera triggern Execute Workflow
Det här arbetsflödet startar som ett underarbetsflöde och väntar på att ett annat arbetsflöde anropar det.
- Lägg till noden Subworkflow Trigger Start på er canvas.
- Anslut Subworkflow Trigger Start till Route Selector för att börja routa när underarbetsflödet anropas.
- Lämna parametrarna i Subworkflow Trigger Start som standard om inte det överordnade arbetsflödet skickar särskilda indata-nycklar.
Steg 2: Konfigurera routing och uppbyggnad av meddelande
Dessa noder avgör hur inkommande payloads struktureras och routas genom arbetsflödet.
- I Route Selector definierar ni era routingregler (utgångar ansluts till Assemble Message Object eller Do Nothing Step).
- Konfigurera Assemble Message Object för att bygga den enhetliga meddelandepayload som används nedströms.
- Anslut Assemble Message Object till Private Message Check för att avgöra om meddelandet ska bearbetas.
- I Private Message Check routar ni giltiga meddelanden till Routing Gateway och ogiltiga till Do Nothing Step.
Steg 3: Hantera bilagor och batchbearbetning
Den här delen kontrollerar om det finns bilagor, bygger en lista och itererar genom varje objekt för att identifiera typ.
- Från Routing Gateway skickar ni bilagerelaterad trafik till Attachment Present Check.
- Konfigurera Attachment Present Check så att true-fall routas till Build Attachment List och false-fall till Text Present Check.
- I Build Attachment List aggregerar ni inkommande bilagor till en lista som lämpar sig för iteration.
- Anslut Build Attachment List till Iterate Attachments för att dela upp bilagor i batchar.
- Från Iterate Attachments routar ni objekten till Detect Attachment Type för att förgrena per mediaformat.
Steg 4: Konfigurera åtgärder för att skicka meddelanden
Dessa noder skickar text, enkät och mediainnehåll via Evolution API-integrationen.
- Från Text Present Check skickar ni textmeddelanden till Dispatch Text Message.
- I Routing Gateway routar ni enkättrafik till Send Survey Text.
- I Detect Attachment Type mappar ni varje bilagetyp till motsvarande sändare: Send Document File, Send Image Content, Send Audio Content och Send Video Content.
- Efter varje mediasändare säkerställer ni att flödet går tillbaka till Iterate Attachments för att fortsätta bearbeta återstående objekt.
- Anslut Evolution API-inloggningsuppgifter till alla evolution-noder (totalt 6): Dispatch Text Message, Send Video Content, Send Audio Content, Send Image Content, Send Document File och Send Survey Text.
Steg 5: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att validera routing, bilagehantering och sändbeteende.
- Klicka på Execute Workflow och anropa det överordnade arbetsflödet för att trigga Subworkflow Trigger Start.
- Bekräfta att Route Selector routar korrekt till Assemble Message Object och att Private Message Check vidarebefordrar till Routing Gateway.
- Testa med ett meddelande som innehåller bilagor för att säkerställa att Build Attachment List, Iterate Attachments och Detect Attachment Type routar till rätt sändarnoder.
- Verifiera att Evolution API-noder skickar förväntad text- eller mediaoutput.
- När allt fungerar växlar ni arbetsflödet till Active för användning i produktion.
Saker att se upp med
- Evolution API-autentiseringsuppgifter kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först status för din Evolution API-nyckel och konfigurationen av base URL i Evolution API-noden.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in ert tonalitet/brand voice tidigt, annars kommer du att redigera utskrifter i all evighet.
Vanliga frågor
Cirka en timme om dina inloggningsuppgifter för Chatwoot och Evolution API är klara.
Ja, men du vill ha någon som är bekväm med att mappa fält i n8n. Ingen kodning krävs om strukturen i din Chatwoot-payload redan är känd.
Ja. n8n har ett gratis självhostat 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 in kostnader för Evolution API från din leverantör.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhostning på en VPS. För självhostning är Hostinger VPS prisvärd och hanterar n8n bra. Självhostning ger dig obegränsade körningar men kräver grundläggande serveradministration.
Börja med routningslogiken: Switch-noderna “Routing Gateway” och “Route Selector” avgör vilka typer av meddelanden som vidarebefordras. Om du behöver striktare integritetsregler justerar du “Private Message Check” så att endast offentliga svar går igenom. För media är Switch-noden “Detect Attachment Type” platsen där du kan blockera vissa filtyper, sätta storleksgränser eller routa PDF:er till en annan WhatsApp-mall. Du kan också ändra kodsteget “Assemble Message Object” för att lägga till prefix som agentnamn, ärende-ID eller notiser om öppettider.
Oftast är det inte Chatwoot i sig, utan formen på inkommande payload från ditt huvudflöde. Bekräfta att underflödet tar emot förväntade Chatwoot-fält (meddelandetext, bilage-array och content_type-värden). Om de finns, kontrollera sedan inloggningsuppgifterna i Evolution API-noden, eftersom en giltig Chatwoot-händelse fortfarande kan fallera vid leverans på grund av en utgången nyckel eller fel base URL.
I n8n Cloud beror kapaciteten på din plans månatliga körningar, och det här flödet använder vanligtvis flera körningar per konversation när bilagor finns. Om du självhostar finns ingen körningsgräns, men genomströmningen beror på din server och hur snabbt Evolution API svarar. I praktiken kan de flesta små team köra detta hela dagen utan att tänka på det, och uppgradera först när volymen sticker iväg.
Ofta, ja. Den stora skillnaden är hur smidigt n8n hanterar grenlogik och loopar igenom flera bilagor i ett och samma meddelande, utan att göra automatiseringen till en skör kedja av mini-zaps. Du kan också självhosta, vilket spelar roll när meddelandevolymen växer och prissättningen börjar svida. Zapier och Make kan fortfarande fungera för enkel vidarebefordring av enbart text, men de blir klumpiga när du behöver identifiering av innehållstyper för bilder, ljud, video och dokument. Om du är osäker, prata med en automationsexpert och beskriv din meddelandevolym och din mediamix.
När detta väl är igång förblir Chatwoot din arbetsyta och WhatsApp förblir kundens kanal. Flödet tar hand om den repetitiva vidarebefordringen så att teamet kan fokusera på att hjälpa människor.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.