Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Chatwoot + OpenRouter: snabbare supportsvar

Rickard Andersson Partner, Nodenordic.se

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

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

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.

  1. Lägg till noden Incoming Chatwoot Hook som din trigger.
  2. Ställ in HTTP MethodPOST.
  3. Ställ in Pathyour-path och kopiera den genererade webhook-URL:en till Chatwoots webhook-inställningar.
  4. 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.

  1. Öppna Normalize Webhook Payload och ställ in Moderaw.
  2. Ställ in JSON Output till den angivna objektstrukturen, inklusive uttryck som {{ $json.body.content.replace(/\r?\n/g, '\\n') }}.
  3. Öppna Validate Incoming Type och behåll villkoret Left Value som {{ $json.data.message_type }} och Right Value som incoming.

⚠️ Vanlig fallgrop: Om Chatwoot skickar händelser som inte är inkommande, filtrerar Validate Incoming Type bort dem. Säkerställ att er webhook är konfigurerad för inkommande meddelanden.

Steg 3: Konfigurera hämtning och formatering av konversation

Hämta konversationshistoriken och omvandla den till en enda textlogg för AI-kedjan.

  1. 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.
  2. Aktivera Send Headers och sätt headern api_access_token till er Chatwoot-token (ersätt [CONFIGURE_YOUR_TOKEN]).
  3. Behåll headern Content-Type som application/json.
  4. Öppna Format Conversation Log och behåll den medföljande JavaScript-koden för att bygga conversation_text från de hämtade meddelandena.

⚠️ Vanlig fallgrop: Retrieve Chat History har inga sparade inloggningsuppgifter. Ni måste ange en giltig 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.

  1. Konfigurera OpenRouter Chat Engine och anslut inloggningsuppgifter.
  2. Inloggningsuppgifter krävs: Anslut era openRouterApi-inloggningsuppgifter i OpenRouter Chat Engine.
  3. Öppna Chatwoot Helper Chain och ställ in Text`conversation history`: `{{ $json.conversation_text }}`.
  4. 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.

  1. 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.
  2. Ställ in MethodPOST och aktivera Send Body och Send Headers.
  3. Ställ in content{{ $json.text }}, message_typeoutgoing, privatefalse, content_typetext och content_attributes{}.
  4. Lägg till headern api_access_token med er Chatwoot-token (ersätt [CONFIGURE_YOUR_TOKEN]).

⚠️ Vanlig fallgrop: Om token i Dispatch Chat Reply saknas eller är ogiltig kommer Chatwoot att neka svaret.

Steg 6: Testa och aktivera ert arbetsflöde

Verifiera flödet från start till mål och aktivera för produktionsanvändning.

  1. Klicka på Execute Workflow och skicka ett testmeddelande i Chatwoot för att trigga Incoming Chatwoot Hook.
  2. Bekräfta att Normalize Webhook Payload returnerar ett data-objekt och att Validate Incoming Type släpper igenom inkommande meddelanden.
  3. Kontrollera Retrieve Chat History och Format Conversation Log så att ni får en icke-tom conversation_text.
  4. Verifiera att Chatwoot Helper Chain returnerar ett svar och att Dispatch Chat Reply postar det tillbaka i konversationen.
  5. Sätt arbetsflödet till Active för att börja hantera live-meddelanden från Chatwoot.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

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

Hur lång tid tar det att sätta upp den här automatiseringen för Chatwoot OpenRouter replies?

Cirka 30 minuter om du redan har Chatwoot och OpenRouter redo.

Behöver jag kunna koda för att automatisera Chatwoot OpenRouter replies?

Nej. Du kopplar mest konton, klistrar in en API-token och justerar assistentens prompt.

Är n8n gratis att använda för det här workflowet för Chatwoot OpenRouter replies?

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.

Var kan jag hosta n8n för att köra den här automatiseringen?

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.

Kan jag anpassa det här workflowet för Chatwoot OpenRouter replies så att en människa godkänner innan det skickas?

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.

Varför misslyckas min Chatwoot-anslutning i det här workflowet?

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.

Hur många meddelanden kan den här automatiseringen för Chatwoot OpenRouter replies hantera?

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.

Är den här automatiseringen för Chatwoot OpenRouter replies bättre än att använda Zapier eller Make?

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.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal