Din supportinkorg är inte ”upptagen”. Den är kaotisk. Meddelanden kommer in från alla håll, ordersökningar tar för lång tid och kunder får olika svar beroende på vem som svarar.
Supportansvariga märker det när SLA:er börjar halka. En butiksägare märker det när återbetalningarna ökar. Och marknadsförare som kör kampanjer märker det när varje kampanj triggar en liten supportstorm. Den här automatiseringen för Telegram Gmail-support kortar svarstiden till minuter och håller svaren konsekventa.
Du sätter upp ett AI-drivet flöde i n8n som routar frågor, hämtar orderinfo, rekommenderar produkter och eskalerar riktiga ärenden via Gmail vid behov.
Så fungerar automatiseringen
Här är hela arbetsflödet som du kommer att sätta upp:
n8n Workflow Template: Telegram + Gmail: snabbare supportsvar för e-handel
flowchart LR
subgraph sg0["AI Agent Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n2["<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/>Code"]
n3@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Order Queries", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "getOrderStatus", pos: "b", h: 48 }
n6@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model1", pos: "b", h: 48 }
n7@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", pos: "b", h: 48 }
n8@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory1", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "AI Agent1", pos: "b", h: 48 }
n10@{ icon: "mdi:brain", form: "rounded", label: "handle support tickets", pos: "b", h: 48 }
n11@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory2", pos: "b", h: 48 }
n12@{ icon: "mdi:wrench", form: "rounded", label: "Code Tool", pos: "b", h: 48 }
n13@{ icon: "mdi:message-outline", form: "rounded", label: "Send", pos: "b", h: 48 }
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "createSupportTicket", pos: "b", h: 48 }
n15@{ icon: "mdi:swap-vertical", form: "rounded", label: "getTicketStatus", pos: "b", h: 48 }
n16@{ icon: "mdi:robot", form: "rounded", label: "Recommendations", pos: "b", h: 48 }
n17@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model2", pos: "b", h: 48 }
n18@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory3", pos: "b", h: 48 }
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "getCategoryRecommendations", pos: "b", h: 48 }
n20@{ icon: "mdi:swap-vertical", form: "rounded", label: "getProductRecommendations", pos: "b", h: 48 }
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/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook"]
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/webhook.dark.svg' width='40' height='40' /></div><br/>Respond to Webhook"]
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/webhook.dark.svg' width='40' height='40' /></div><br/>Respond to Webhook1"]
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/webhook.dark.svg' width='40' height='40' /></div><br/>Respond to Webhook2"]
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/webhook.dark.svg' width='40' height='40' /></div><br/>Respond to Webhook3"]
n2 --> n3
n13 -.-> n9
n3 --> n4
n3 --> n16
n3 --> n9
n3 --> n25
n21 --> n0
n0 --> n2
n9 --> n24
n12 -.-> n9
n4 --> n22
n7 -.-> n4
n8 -.-> n0
n11 -.-> n9
n18 -.-> n16
n5 -.-> n4
n16 --> n23
n15 -.-> n9
n1 -.-> n0
n6 -.-> n4
n17 -.-> n16
n14 -.-> n9
n10 -.-> n9
n20 -.-> n16
n19 -.-> n16
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,n4,n9,n16 ai
class n1,n6,n10,n17 aiModel
class n12 ai
class n7,n8,n11,n18 ai
class n3 decision
class n21,n22,n23,n24,n25 api
class n2 code
classDef customIcon fill:none,stroke:none
class n2,n21,n22,n23,n24,n25 customIcon
Varför det här spelar roll: långsamma svar skapar dyra ärenden
Support för e-handel ser enkelt ut tills du lever i den. En kund frågar om spårning, en annan vill ha en storleksrekommendation och en tredje är arg för att paketet inte kom fram. Det ”snabba” jobbet blir aldrig snabbt eftersom du hoppar mellan adminpaneler, letar order-ID:n och skriver om samma lugnande meddelande för hundrade gången. Och när ett meddelande hanteras sent (eller inkonsekvent) blir det följdfrågor, chargebacks och offentliga klagomål som du sedan måste städa upp.
Det växer snabbt. Här är var det oftast brister i riktiga team.
- Frågor om orderstatus tvingar fram konstant kontextväxling mellan chatt, butiksadmin och din databas.
- Supportmedarbetare copy-pastar svar, så ton och policys glider från person till person över tid.
- Eskaleringar försvinner eftersom ”någon mejlar dem” inte är en process.
- När kampanjer går live kommer samma tre frågor hela dagen, och teamet svarar fortfarande manuellt.
Vad du bygger: en AI-router för support som svarar, hämtar orderinfo och eskalerar
Det här flödet startar med en inkommande webhook från din webbplats, butik, hjälpwidget eller vilket system som helst som kan skicka en request. n8n skickar meddelandet till en AI-agent som klassificerar intent och avgör vad kunden faktiskt frågar om: allmän support, orderstatus, produktrekommendationer eller ett ärende som ska bli en ticket. Baserat på intent routar flödet konversationen till rätt AI-agent, som kan komma ihåg nylig kontext så att följdfrågor inte känns som att börja om. Om kunden behöver spårning hämtar flödet orderdetaljer från din Supabase-databas och svarar direkt. Om kunden vill ha rekommendationer hämtar det produkt- eller kategoridata och genererar ett hjälpsamt förslag. Och om det är ett supportärende skapar flödet ett ticket-ID, sparar posten och skickar ett eskaleringsmejl via Gmail så att ditt team kan ta över med all kontext inkluderad.
Flödet är enkelt att följa. En webhook triggar flödet, AI klassificerar intent och sedan routar en switch requesten till rätt ”spår”. Varje spår avslutas med att svara direkt, vilket håller kundupplevelsen snabb även när backend-steg (som e-post) pågår.
Det här bygger du
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att ni får ungefär 30 supportmeddelanden per dag. En typisk manuell loop är 5 minuter för att läsa, kolla ett ordersystem, klistra in ett svar och logga en anteckning, vilket blir cirka 2–3 timmar per dag. Med det här flödet får kunden ett omedelbart svar via webhook (sekunder), och ditt team kliver bara in vid riktiga ticket-ärenden; även då skickar Gmail eskaleringen automatiskt med ticket-ID och kontext. De flesta team får tillbaka runt 2 timmar per dag och, ärligt talat, minskningen i mental belastning är minst lika värdefull.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Telegram för interna aviseringar och supportrouting
- Gmail för att skicka eskaleringar och ticket-mejl
- OpenAI API-nyckel (hämta den från din OpenAI-dashboard)
- Supabase för att lagra och hämta ordrar/tickets
- Google Sheets för enkel loggning eller rapportering
Svårighetsgrad: Medel. Du kopplar konton, lägger in API-nycklar och mappar några fält från din webhook-payload.
Vill du att någon bygger detta åt dig? Prata med en automationskonsult (gratis 15-minuters konsultation).
Steg för steg
En webhook tar emot kundmeddelandet. Din webbplats, butik eller hjälpwidget skickar frågan (och de identifierare du har, som e-post eller ordernummer) till n8n:s Incoming Webhook Trigger.
AI klassificerar intent och behåller kontext. En agent för intent-klassificering använder en OpenAI-chatmodell, plus sessionsminne, för att avgöra vilket spår meddelandet hör hemma i och för att komma ihåg nylig dialog.
Routing skickar vidare till rätt assistent. En switch-nod delar upp i fyra vägar: allmänt svar, orderstatus, produktrekommendationer eller hantering av supportärende. Varje väg använder sin egen AI-agent och sitt eget minne så att konversationerna håller ihop.
Datauppslag och eskaleringar sker i bakgrunden. Spåren för order och rekommendationer frågar Supabase-verktyg efter orderdetaljer samt produkt-/kategoriinformation. Ticket-spåret genererar ett ticket-ID, sparar ticket-posten och skickar ett Gmail-meddelande som ditt team tar över.
Du kan enkelt ändra intent-kategorierna så att de matchar din butik (till exempel ”returer”, ”försenad leverans” eller ”grossist”) utifrån dina behov. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera webhook-triggern
Konfigurera den inkommande webhooken som tar emot supportmeddelanden och startar routningsflödet.
- Lägg till Incoming Webhook Trigger och ställ in HTTP Method på
POST. - Ställ in Path till
4cdaa2e9-be46-4f60-83f6-8d7bd4a6ad5d. - Ställ in Response Mode till
responseNodeså att efterföljande noder (Return Order Response, Return Recommendation Response, Return Ticket Response, Return General Reply) returnerar webhook-svaret. - Behåll Flowpast Branding som en sticky note endast för dokumentation (valfritt).
Tips: Skicka en POST-body som innehåller fälten message och session_id för att stämma överens med AI-minneskonfigurationen senare i workflowet.
Steg 2: Koppla intent-klassificeraren och sessionsminnet
Konfigurera det inledande AI-klassificeringslagret som avgör vart varje förfrågan ska routas.
- I Intent Classifier Agent ställer ni Text till
=Here is the query of user {{ $json.body.message }}. - Koppla Primary Chat Model som språkmodell för Intent Classifier Agent. Inloggningsuppgifter krävs: Koppla era openAiApi-inloggningsuppgifter.
- Koppla Session Memory Core som minne för Intent Classifier Agent och ställ in Session Key till
={{ $json.body.session_id }}med Context Window Length7.
⚠️ Vanlig fallgrop: Lägg inte till inloggningsuppgifter i Session Memory Core—minnesnoder ärver åtkomst via överordnad agent. Säkerställ i stället att inloggningsuppgifter är satta på Primary Chat Model.
Steg 3: Tolka intent och routa förfrågningar
Tolka klassificerarens output och routa till rätt assistent baserat på intent.
- I Parse Intent Payload behåller ni JavaScript Code som angivet för att tolka agentens JSON-output till
category. - I Route by Intent bekräftar ni att varje regel använder
={{ $json.category.intent }}och matchar: - Sätt de fyra regelvärdena till
order_status,product_recommendation,support_ticketochgeneral. - Säkerställ att Route by Intent kopplar till Order Status Assistant, Product Suggestion Agent, Support Ticket Agent och Return General Reply baserat på den matchade intenten.
Tips: Den här switchen routar bara till en väg åt gången baserat på intent, så bekräfta att klassificeraren returnerar giltig JSON och en intent-sträng som stöds.
Steg 4: Konfigurera orderstatus-flödet
Konfigurera orderspårningsassistenten så att den hämtar orderstatus och svarar användaren.
- I Order Status Assistant ställer ni Text till
=The query of the user is this .{{ $('Incoming Webhook Trigger').item.json.body.message }}. - Koppla Order Chat Model som språkmodell. Inloggningsuppgifter krävs: Koppla era openAiApi-inloggningsuppgifter.
- Koppla Order Memory Buffer som minne med Session Key
={{ $('Incoming Webhook Trigger').item.json.body.session_id }}och Context Window Length7. - Konfigurera Retrieve Order Status med Table
ordersoch Operationget, med filtervärde={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('conditions0_Value', ``, 'string') }}. Inloggningsuppgifter krävs: Koppla era supabaseApi-inloggningsuppgifter. - I Return Order Response behåller ni Response Body som
={ "response": "{{ $json.output.replace(/[\n\r\t]+/g, ' ').replace(/\s{2,}/g, ' ').trim() }}" }.
⚠️ Vanlig fallgrop: Verktyg som Retrieve Order Status anropas av agenten, så inloggningsuppgifterna måste vara giltiga och Supabase-tabellen måste finnas med matchande fältnamn.
Steg 5: Konfigurera flödet för produktrekommendationer
Konfigurera rekommendationsassistenten så att den kan fråga produktdata baserat på användarens intent.
- I Product Suggestion Agent ställer ni Text till
=The query of the user is this . {{ $('Incoming Webhook Trigger').item.json.body.message }}. - Koppla Recommendation Chat Model som språkmodell. Inloggningsuppgifter krävs: Koppla era openAiApi-inloggningsuppgifter.
- Koppla Recommendation Memory med Session Key
={{ $('Incoming Webhook Trigger').item.json.body.session_id }}och Context Window Length7. - Konfigurera Product Recommendation Lookup med Table
products, Operationget, och filtervärde={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('conditions0_Value', ``, 'string') }}. Inloggningsuppgifter krävs: Koppla era supabaseApi-inloggningsuppgifter. - Konfigurera Category Recommendation Lookup med Table
products, Operationget, och filtervärde={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('conditions1_Value', ``, 'string') }}. Inloggningsuppgifter krävs: Koppla era supabaseApi-inloggningsuppgifter. - I Return Recommendation Response behåller ni Response Body inställt på
={ "response":"{{ JSON.stringify($json.output) }}" }.
Tips: Det finns flera Supabase-verktyg i det här workflowet. Bekräfta att alla Supabase-verktyg pekar mot rätt projekt och tabeller för att undvika partiella fel.
Steg 6: Konfigurera supportärende-flödet
Aktivera skapande av ärenden och uppslag av status, inklusive e-postnotifieringar till ert supportteam.
- I Support Ticket Agent ställer ni Text till
=The message/qiery of the user {{ $('Incoming Webhook Trigger').item.json.body.message }}. - Koppla Support Chat Model som språkmodell. Inloggningsuppgifter krävs: Koppla era openAiApi-inloggningsuppgifter.
- Koppla Support Memory Buffer med Session Key
={{ $('Incoming Webhook Trigger').item.json.body.session_id }}och Context Window Length7. - Säkerställ att Generate Ticket ID Tool är kopplat som ett AI-verktyg (inga inloggningsuppgifter krävs) och att koden är oförändrad.
- Konfigurera Create Ticket Record med Table
support_ticketsoch fältvärden med de angivna={{ /*n8n-auto-generated-fromAI-override*/ $fromAI(...) }}-uttrycken. Inloggningsuppgifter krävs: Koppla era supabaseApi-inloggningsuppgifter. - Konfigurera Retrieve Ticket Status med Table
support_ticketsoch filtervärde={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('conditions0_Value', ``, 'string') }}. Inloggningsuppgifter krävs: Koppla era supabaseApi-inloggningsuppgifter. - I Dispatch Support Email ställer ni Send To till
[YOUR_EMAIL]och behåller Subject och Message som uttryck. Inloggningsuppgifter krävs: Koppla era gmailOAuth2-inloggningsuppgifter. - I Return Ticket Response behåller ni Response Body som
={ "response": "{{ $json.output.replace(/[\n\r\t]+/g, ' ').replace(/\s{2,}/g, ' ').trim() }}" }.
⚠️ Vanlig fallgrop: Verktygen Create Ticket Record, Retrieve Ticket Status och Dispatch Support Email anropas av Support Ticket Agent. Validera dessa inloggningsuppgifter och fält innan ni testar för att förhindra tysta fel.
Steg 7: Testa och aktivera ert workflow
Validera varje intent-väg och bekräfta att rätt webhook-svar returneras.
- Använd test-URL:en för Incoming Webhook Trigger och skicka exempelpayloads med
messageochsession_id. - Verifiera körvägen: Incoming Webhook Trigger → Intent Classifier Agent → Parse Intent Payload → Route by Intent → rätt assistentnod.
- Bekräfta lyckade svar från Return Order Response, Return Recommendation Response, Return Ticket Response eller Return General Reply.
- När testerna är godkända, växla workflowet till Active för användning i produktion.
Felsökningstips
- Gmail-inloggningar kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först Gmail-kopplingen i n8n:s lista över Credentials.
- Om du får tomma orderresultat beror det oftast på en mismatch mellan din webhook-payload och Supabase-fälten du slår upp mot. Dubbelkolla mappningen av order-ID/e-post i verktygssteget ”Retrieve Order Status”.
- Standardprompter i OpenAI-agentnoderna är generiska. Lägg in er tonalitet och era policys tidigt (returer, återbetalningar, leveransfönster), annars kommer du att sitta och redigera utdata för alltid.
Snabba svar
Cirka 45 minuter om Supabase och Gmail redan är kopplade.
Nej. Du kopplar främst konton och mappar några fält från din webhook-payload.
Ja. n8n har ett gratis alternativ för self-hosting och en gratis testperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in kostnader för OpenAI API (ofta några cent per konversation) och den Supabase-plan du använder.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och hanterar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serveradministration.
Ja, och det bör du. De flesta ändringar görs i ”Route by Intent” (kategorierna), plus Supabase-verktygsstegen som används för uppslag som ”Retrieve Order Status” och ”Create Ticket Record.” Vanliga anpassningar är att lägga till ett spår för ”returer/återbetalningar”, ändra vilken data som hämtas in i ordersvaret och att skicka en kopia av ticket-data till Google Sheets för rapportering.
Oftast beror det på att OAuth-åtkomsten har löpt ut eller att fel Google-konto är kopplat. Anslut Gmail på nytt i n8n Credentials och kör sedan en enskild testkörning för att bekräfta att steget ”Dispatch Support Email” kan skicka. Om du använder en delad inkorg, säkerställ att behörigheter för postlådan är aktiverade på Google Workspace-sidan. Kontrollera också sändningsgränser om du plötsligt har börjat eskalera många tickets under en kort period.
Om du kör self-hosting finns ingen gräns för antal körningar; det beror främst på din server och API:ernas rate limits.
Ofta ja, eftersom det här flödet inte bara är ”skicka meddelande från A till B”. Du klassificerar intent, förgrenar till flera spår, använder minne för uppföljningar och gör databasuppslag innan du svarar, vilket är där enklare verktyg kan bli klumpiga eller dyra. n8n ger dig också möjlighet till self-hosting, så du betalar inte mer bara för att det är mycket att göra. Samtidigt: om du bara behöver en enkel eskalering (som ”ny formulärinsändning → skicka mejl”) kan Zapier eller Make gå snabbare att sätta upp. Prata med en automationskonsult om du vill ha hjälp att välja det enklaste alternativet som fortfarande fungerar.
När det här väl är igång slutar rutinfrågor att stjäla fokus. Dina kunder får snabba svar och ditt team får en lugnare kö som faktiskt går att hantera.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.