Din inkorg är ”hanterad”, men det känns fortfarande kaotiskt. Meddelanden kommer in från WhatsApp, Instagram, Telegram och var du än har kopplat upp Chatwoot, och du skriver om samma svar om och om igen samtidigt som du försöker att inte tappa kontext.
Det är här automatiseringen Chatwoot OpenRouter replies hjälper. Supportansvariga får snabbare förstasvar utan att anställa. En grundare slipper äntligen vara mänsklig fallback. Och byråteam som hanterar kunders DM kan hålla svaren konsekventa över alla kanaler.
Det här flödet lyssnar efter nya Chatwoot-meddelanden, hämtar konversationshistoriken, ber OpenRouter att utforma ett svar och publicerar det tillbaka i rätt Chatwoot-tråd. Du ser vad det automatiserar, vilka resultat du kan förvänta dig och vad du ska se upp med.
Så fungerar den här automatiseringen
Hela n8n-workflowet, från trigger till slutlig output:
n8n Workflow Template: Chatwoot + OpenRouter: snabbare supportsvar
flowchart LR
subgraph sg0["Chatwoot Assistant 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/webhook.dark.svg' width='40' height='40' /></div><br/>Chatwoot Webhook"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Squize Webhook Data", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check If Incoming Message", 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/>Load Chatwoot Conversation H.."]
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/>Process Loaded History"]
n5@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Model", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Chatwoot Assistant", 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/>Send Message"]
n0 --> n1
n6 --> n7
n1 --> n2
n5 -.-> n6
n4 --> n6
n2 --> n3
n3 --> 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 n6 ai
class n5 aiModel
class n2 decision
class n0,n3,n7 api
class n4 code
classDef customIcon fill:none,stroke:none
class n0,n3,n4,n7 customIcon
Problemet: supportsvar blir långsamma och inkonsekventa
När meddelanden kommer in på flera ställen måste din hjärna göra ”klisterjobbet”. Du skummar en tråd, letar efter det senaste löftet du gav, minns policyn och skriver sedan ett svar som låter som ert varumärke. Gör det 30 gånger om dagen och det blir dränerande. Och det värsta är hur lätt det är att missa kontext: en kund nämner sitt ordernummer tre meddelanden upp, du ser det inte och nu frågar du igen. Det är inte bara långsammare. Det känns slarvigt för kunden.
Det eskalerar snabbt. Här brukar det fallera.
- Handläggare slösar cirka 5 minuter per svar bara på att läsa om tråden och skriva om ett välbekant svar.
- När du växlar mellan WhatsApp- och Instagram-konversationer glider tonen och kunderna märker inkonsekvensen.
- Manuellt ”kopiera historiken till ett AI-verktyg” skapar integritetsrisk och introducerar misstag i det du klistrar in.
- Utan skyddsräcke kan automatisering svara på sig själv och skapa en stökig loop i samma Chatwoot-konversation.
Lösningen: Chatwoot-svar utkastade av OpenRouter (med kontext)
Det här n8n-workflowet förvandlar händelser av typen ”new message created” i Chatwoot till AI-svar som är redo att skickas. Det börjar med en webhook som tar emot Chatwoot-händelsen och rensar payloaden så att bara fälten du faktiskt behöver går vidare (konversations-ID, meddelandeinnehåll, avsändartyp och så vidare). Därefter kontrollerar det att meddelandet verkligen är inkommande, vilket hindrar assistenten från att svara på sina egna utgående meddelanden. Sedan hämtar det hela konversationshistoriken från Chatwoot via ett API-anrop, formaterar tråden till en strukturerad chattlogg och skickar den till en OpenRouter-baserad chattmodell för att utforma ett svar. Till sist publicerar det svaret tillbaka i samma Chatwoot-konversation, så att teamet kan hålla sig i ett och samma verktyg istället för att hoppa runt.
Workflowet startar när Chatwoot triggar en webhook vid ett nytt meddelande. Sedan hämtar det den befintliga tråden så att modellen kan svara med rätt kontext. OpenRouter genererar utkastet och n8n skickar det direkt tillbaka till Chatwoot som ett svar som teamet kan använda direkt.
Det här får du: automatisering vs. resultat
| Vad det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du hanterar cirka 40 kundmeddelanden per dag över två Chatwoot-kanaler (WhatsApp och Instagram). Manuellt, om varje svar tar ungefär 5 minuter för att läsa om kontext och skriva, blir det cirka 3 timmar ren svarstid. Med det här workflowet triggas allt direkt, historiken hämtas i bakgrunden och du lägger vanligtvis cirka 1 minut på att granska och skicka utkastet. Det landar närmare 40 minuter totalt, så du får tillbaka ungefär 2 timmar varje dag.
Det du behöver
- n8n-instans (testa n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- Chatwoot för att ta emot meddelanden och publicera svar
- OpenRouter för att generera AI-utkast till svar
- Chatwoot API access token (hämta den från din Chatwoot super admin-sida)
Kunskapsnivå: Medel. Du klistrar in inloggningsuppgifter, sätter webhooken i Chatwoot och redigerar en prompt så att den matchar era policys och er tonalitet.
Vill du inte sätta upp detta själv? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett nytt Chatwoot-meddelande triggar allt. Chatwoot skickar en ”message created”-händelse till din n8n-webhook, så automatiseringen reagerar direkt när en kund skriver.
Payloaden rensas och valideras. n8n normaliserar inkommande data till ett förutsägbart format och kontrollerar sedan att meddelandet är ”incoming” för att undvika oavsiktliga självsvar och märkliga loopar.
Chatthistorik hämtas och formateras. Ett Chatwoot API-anrop hämtar konversationstråden och workflowet gör om den till en läsbar konversationslogg som modellen kan följa utan förvirring.
OpenRouter skapar utkastet och Chatwoot tar emot det. OpenRouter-chattmodellen genererar ett svar med konversationens kontext, och den sista HTTP-förfrågan publicerar det utkastade svaret i rätt Chatwoot-konversation.
Du kan enkelt justera assistentens prompt så att den matchar era policys och er varumärkesröst utifrån era behov. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera webhook-triggern
Konfigurera arbetsflödets startpunkt så att den kan ta emot webhook-händelser från Chatwoot.
- Lägg till noden Incoming Chatwoot Hook som din trigger.
- Ställ in HTTP Method på
POST. - Ställ in Path på
your-pathoch kopiera den genererade webhook-URL:en till Chatwoots webhook-inställningar. - Behåll Flowpast Branding som en dokumentationsnotering (valfritt, ingen konfiguration krävs).
Steg 2: Koppla Chatwoot-data och normalisera payloaden
Omvandla rå webhook-payload till en konsekvent struktur och filtrera så att endast inkommande meddelanden går vidare.
- Öppna Normalize Webhook Payload och ställ in Mode på
raw. - Ställ in JSON Output till den angivna objektstrukturen, inklusive uttryck som
{{ $json.body.content.replace(/\r?\n/g, '\\n') }}. - Öppna Validate Incoming Type och behåll villkoret Left Value som
{{ $json.data.message_type }}och Right Value somincoming.
Steg 3: Konfigurera hämtning och formatering av konversation
Hämta konversationshistoriken och omvandla den till en enda textlogg för AI-kedjan.
- Konfigurera Retrieve Chat History med URL satt till
https://yourchatwooturl.com/api/v1/accounts/{{ $('Normalize Webhook Payload').item.json.data.account_id }}/conversations/{{ $('Normalize Webhook Payload').item.json.data.conv_id }}/messages. - Aktivera Send Headers och sätt headern api_access_token till er Chatwoot-token (ersätt
[CONFIGURE_YOUR_TOKEN]). - Behåll headern Content-Type som
application/json. - Öppna Format Conversation Log och behåll den medföljande JavaScript-koden för att bygga
conversation_textfrån de hämtade meddelandena.
api_access_token i headers för åtkomst till Chatwoot API.Steg 4: Konfigurera generering av AI-svar
Använd OpenRouter-modellen för att generera ett svar baserat på den formaterade konversationshistoriken.
- Konfigurera OpenRouter Chat Engine och anslut inloggningsuppgifter.
- Inloggningsuppgifter krävs: Anslut era
openRouterApi-inloggningsuppgifter i OpenRouter Chat Engine. - Öppna Chatwoot Helper Chain och ställ in Text på
`conversation history`: `{{ $json.conversation_text }}`. - Verifiera att OpenRouter Chat Engine är ansluten som språkmodell för Chatwoot Helper Chain (inloggningsuppgifter ska läggas till i OpenRouter Chat Engine, inte i kedjenoden).
Steg 5: Konfigurera utgående svar till Chatwoot
Skicka det AI-genererade svaret tillbaka till Chatwoot-konversationen.
- Konfigurera Dispatch Chat Reply med URL satt till
https://yourchatwooturl.com/api/v1/accounts/{{ $('Normalize Webhook Payload').item.json.data.account_id }}/conversations/{{ $('Normalize Webhook Payload').item.json.data.conv_id }}/messages. - Ställ in Method på
POSToch aktivera Send Body och Send Headers. - Ställ in content på
{{ $json.text }}, message_type påoutgoing, private påfalse, content_type påtextoch content_attributes på{}. - Lägg till headern api_access_token med er Chatwoot-token (ersätt
[CONFIGURE_YOUR_TOKEN]).
Steg 6: Testa och aktivera ert arbetsflöde
Verifiera flödet från start till mål och aktivera för produktionsanvändning.
- Klicka på Execute Workflow och skicka ett testmeddelande i Chatwoot för att trigga Incoming Chatwoot Hook.
- Bekräfta att Normalize Webhook Payload returnerar ett
data-objekt och att Validate Incoming Type släpper igenom inkommande meddelanden. - Kontrollera Retrieve Chat History och Format Conversation Log så att ni får en icke-tom
conversation_text. - Verifiera att Chatwoot Helper Chain returnerar ett svar och att Dispatch Chat Reply postar det tillbaka i konversationen.
- Sätt arbetsflödet till Active för att börja hantera live-meddelanden från Chatwoot.
Vanliga fallgropar
- Chatwoot-inloggningar kan löpa ut eller kräva specifika behörigheter. Om saker slutar fungera, kontrollera först din Chatwoot super admin-token och API-bas-URL:en som används i HTTP Request-noderna.
- Om du använder Wait-noder eller extern rendering varierar processningstider. Öka väntetiden om nedströmsnoder fallerar 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
Cirka 30 minuter om du redan har Chatwoot och OpenRouter redo.
Nej. Du kopplar mest konton, klistrar in en API-token och justerar assistentens prompt.
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 OpenRouter-kostnader, som beror på vilken modell du väljer.
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 hanterar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det är en smart förändring. Istället för att posta utkastet direkt tillbaka till Chatwoot i HTTP Request-noden ”Dispatch Chat Reply” kan du routa svaret till ett granskningssteg först (till exempel skicka utkastet till Telegram för godkännande och skicka till Chatwoot först när du bekräftar). Vanliga anpassningar är att lägga till en regel för ”agentöverlämning” vid känsliga nyckelord, ändra assistentens prompt så att den matchar er återbetalningspolicy och byta OpenRouter-modell för att byta hastighet mot kvalitet.
Oftast är det API-bas-URL:en eller token. Dubbelkolla att HTTP Request-noderna använder din riktiga Chatwoot-domän (inte platshållaren) och att api_access_token är giltig för en super admin. Om det fungerade i går men inte i dag, generera en ny token och uppdatera den i n8n. Titta också efter behörighetsproblem på Chatwoot-sidan, särskilt om kontot eller rollen nyligen ändrats.
Om du self-hostar n8n finns ingen hård gräns för antal körningar (det beror främst på din serverstorlek och Chatwoot/OpenRouter rate limits). På n8n Cloud beror din månatliga körningsgräns på din plan, så team med hög volym går oftast upp en nivå. I praktiken klarar det här workflowet typiska supportvolymer för små team utan problem, och du kan köa eller strypa förfrågningar om du når API-gränser.
Ofta, ja, eftersom det här flödet drar nytta av villkorskontroller (som ”endast inkommande”), formatering av konversationshistoriken och mer flexibel logik utan att betala extra för varje gren. n8n ger dig också möjligheten att self-hosta, vilket spelar roll när du vill ha obegränsat antal körningar och mer kontroll över data. Zapier eller Make kan fortfarande fungera om ditt mål är ett väldigt enkelt flöde ”nytt meddelande → skicka till AI → svara”, men du märker begränsningarna när du lägger till kontext och skyddsräcken. Om din support är kundnära och insatsnivån är hög är just det skyddsarbetet skillnaden mellan ”hjälpsam assistent” och ”varför sa den så?”. Prata med en automatiseringsexpert om du vill ha en snabb rekommendation för din setup.
När det här väl rullar slutar teamet att återskapa samma kontext hela dagen. Workflowet tar hand om de repetitiva delarna, och du behåller kontrollen över det slutliga svaret.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.