Din supportinkorg fylls med samma frågor, och svaren ligger i fem olika Google Drive-dokument som ingen hinner hitta tillräckligt snabbt.
Den här Telegram-supportautomationen slår först mot supportansvariga. Men Marketing Ops som städar upp “snabba frågor” och grundare som kör support vid sidan av märker det också. Ni slutar med att skriva om samma svar, sedan svarar någon annan på ett annat sätt, och plötsligt har ni ett policyproblem.
Det här workflowet gör dina Drive-filer till en Telegram-bot som svarar konsekvent, på flera språk, och håller sig uppdaterad när dokumenten ändras. Du får se vad det gör, vad du behöver och var team oftast går snett.
Så fungerar den här automationen
Hela n8n-workflowet, från trigger till slutligt resultat:
n8n Workflow Template: Telegram + Google Drive: direkta supportsvar
flowchart LR
subgraph sg0["Telegram Flow"]
direction LR
n72@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI3", pos: "b", h: 48 }
n73@{ icon: "mdi:memory", form: "rounded", label: "Postgres Chat Memory1", pos: "b", h: 48 }
n74@{ icon: "mdi:cube-outline", form: "rounded", label: "Supabase Vector Store1", pos: "b", h: 48 }
n75@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model5", pos: "b", h: 48 }
n76@{ icon: "mdi:wrench", form: "rounded", label: "News AI Agent", pos: "b", h: 48 }
n77@{ icon: "mdi:wrench", form: "rounded", label: "Academy AI Agent", pos: "b", h: 48 }
n78@{ icon: "mdi:wrench", form: "rounded", label: "Product AI Agent", pos: "b", h: 48 }
n79@{ icon: "mdi:robot", form: "rounded", label: "Supervisor AI Agent1", pos: "b", h: 48 }
n80@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model1", pos: "b", h: 48 }
n81@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model3", pos: "b", h: 48 }
n82@{ icon: "mdi:robot", form: "rounded", label: "Output First Translator", pos: "b", h: 48 }
n83["<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/telegram.svg' width='40' height='40' /></div><br/>Telegram Trigger"]
n84@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields Telegram Message1", pos: "b", h: 48 }
n85@{ icon: "mdi:robot", form: "rounded", label: "Translator1", pos: "b", h: 48 }
n86@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields Translator", pos: "b", h: 48 }
n87["<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/telegram.svg' width='40' height='40' /></div><br/>Telegram Waiting"]
n88@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
n89@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If English", pos: "b", h: 48 }
n90@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model2", pos: "b", h: 48 }
n91@{ icon: "mdi:robot", form: "rounded", label: "Output Translator", pos: "b", h: 48 }
n92["<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/merge.svg' width='40' height='40' /></div><br/>Merge Output"]
n93@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields Output", pos: "b", h: 48 }
n94["<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/telegram.svg' width='40' height='40' /></div><br/>Send a text message"]
n95@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Question", pos: "b", h: 48 }
n96@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser2", pos: "b", h: 48 }
n89 --> n93
n89 --> n91
n95 --> n79
n85 --> n86
n92 --> n94
n76 -.-> n79
n77 -.-> n79
n78 -.-> n79
n83 --> n84
n87 --> n95
n91 --> n92
n93 --> n92
n72 -.-> n74
n80 -.-> n85
n90 -.-> n91
n81 -.-> n82
n75 -.-> n79
n79 --> n89
n73 -.-> n79
n86 --> n82
n74 -.-> n79
n82 --> n87
n88 -.-> n85
n96 -.-> n82
n84 --> n85
end
subgraph sg1["Google Drive File Created1 Flow"]
direction LR
n33@{ icon: "mdi:database", form: "rounded", label: "Google Sheets Manual Documents", pos: "b", h: 48 }
n34@{ icon: "mdi:cube-outline", form: "rounded", label: "Insert Content Into Supabase..", pos: "b", h: 48 }
n35@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n36["<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/>Convert Word to Google Docs"]
n37@{ icon: "mdi:cog", form: "rounded", label: "Google Drive - Delete File", pos: "b", h: 48 }
n38@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set File Get Data", pos: "b", h: 48 }
n39@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n40@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set File Get Data1", pos: "b", h: 48 }
n41@{ icon: "mdi:cog", form: "rounded", label: "Aggregate", pos: "b", h: 48 }
n42@{ icon: "mdi:cog", form: "rounded", label: "Download File1", pos: "b", h: 48 }
n43["<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/supabase.svg' width='40' height='40' /></div><br/>Delete Old Doc Rows1"]
n44@{ icon: "mdi:robot", form: "rounded", label: "Default Data Loader", pos: "b", h: 48 }
n45@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI1", pos: "b", h: 48 }
n46@{ icon: "mdi:robot", form: "rounded", label: "Character Text Splitter", pos: "b", h: 48 }
n47@{ icon: "mdi:play-circle", form: "rounded", label: "Google Drive File Created1", pos: "b", h: 48 }
n48@{ icon: "mdi:play-circle", form: "rounded", label: "Google Drive File Updated1", pos: "b", h: 48 }
n49@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Files1", pos: "b", h: 48 }
n50@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set File Data1", pos: "b", h: 48 }
n51@{ icon: "mdi:cog", form: "rounded", label: "Wait2", pos: "b", h: 48 }
n52@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch File Type1", pos: "b", h: 48 }
n53@{ icon: "mdi:cog", form: "rounded", label: "Extract From Document1", pos: "b", h: 48 }
n54@{ icon: "mdi:cog", form: "rounded", label: "Extract From PDF1", pos: "b", h: 48 }
n35 --> n36
n35 --> n39
n51 --> n49
n41 --> n33
n42 --> n52
n50 --> n43
n39 --> n49
n39 --> n35
n49 --> n50
n54 --> n34
n38 --> n39
n52 --> n53
n52 --> n54
n45 -.-> n34
n40 --> n39
n44 -.-> n34
n43 --> n42
n53 --> n34
n46 -.-> n44
n37 --> n40
n47 --> n38
n48 --> n38
n36 --> n37
n33 --> n51
n34 --> n41
end
subgraph sg2["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "Google Docs - Create", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Save Text To Doc", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Content Formatter", pos: "b", h: 48 }
n6@{ icon: "mdi:database", form: "rounded", label: "Google Sheets Website Links", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Links", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Document ID", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "Update Text To Doc", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter Links", pos: "b", h: 48 }
n11@{ icon: "mdi:database", form: "rounded", label: "Google Sheets Website Links ..", 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/merge.svg' width='40' height='40' /></div><br/>Merge Document Output"]
n13@{ icon: "mdi:cog", form: "rounded", label: "Get Text From Doc", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>HTTP Request - Crawl4AI"]
n15@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n16@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields Settings", pos: "b", h: 48 }
n32@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n1 --> n7
n15 --> n5
n10 --> n7
n8 --> n13
n8 --> n2
n7 --> n14
n3 --> n12
n5 --> n8
n13 --> n9
n4 -.-> n5
n9 --> n12
n16 --> n6
n2 --> n3
n12 --> n11
n14 --> n15
n32 -.-> n5
n6 --> n10
n0 --> n16
n11 --> n1
end
subgraph sg3["Schedule Flow"]
direction LR
n55@{ icon: "mdi:database", form: "rounded", label: "Google Sheets - Manual Docum..", pos: "b", h: 48 }
n56@{ icon: "mdi:database", form: "rounded", label: "Google Sheets Manual Documen..", pos: "b", h: 48 }
n57@{ icon: "mdi:database", form: "rounded", label: "Google Sheets - Website Link..", pos: "b", h: 48 }
n58@{ icon: "mdi:database", form: "rounded", label: "Google Sheets Website Links ..", pos: "b", h: 48 }
n59["<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/supabase.svg' width='40' height='40' /></div><br/>Delete Old Doc Rows3"]
n60@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Files3", pos: "b", h: 48 }
n61@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set File Data3", pos: "b", h: 48 }
n62["<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/supabase.svg' width='40' height='40' /></div><br/>Delete Old Doc Rows4"]
n63@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Files4", pos: "b", h: 48 }
n64@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set File Data4", pos: "b", h: 48 }
n65@{ icon: "mdi:cog", form: "rounded", label: "Google Drive - Delete File1", pos: "b", h: 48 }
n66@{ icon: "mdi:cog", form: "rounded", label: "Google Drive - Delete File ", pos: "b", h: 48 }
n67@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Document ID1", pos: "b", h: 48 }
n68@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Document ID ", pos: "b", h: 48 }
n69@{ icon: "mdi:cog", form: "rounded", label: "Wait4", pos: "b", h: 48 }
n70@{ icon: "mdi:cog", form: "rounded", label: "Wait5", pos: "b", h: 48 }
n71@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger1", pos: "b", h: 48 }
n69 --> n60
n70 --> n63
n61 --> n59
n64 --> n62
n68 --> n66
n68 --> n58
n67 --> n65
n67 --> n56
n60 --> n61
n63 --> n64
n71 --> n55
n71 --> n57
n59 --> n67
n62 --> n68
n66 --> n58
n65 --> n56
n57 --> n63
n58 --> n70
n55 --> n60
n56 --> n69
end
subgraph sg4["Google Drive File Created Flow"]
direction LR
n17@{ icon: "mdi:cog", form: "rounded", label: "Download File", pos: "b", h: 48 }
n18["<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/supabase.svg' width='40' height='40' /></div><br/>Delete Old Doc Rows"]
n19@{ icon: "mdi:robot", form: "rounded", label: "Default Data Loader2", pos: "b", h: 48 }
n20@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI", pos: "b", h: 48 }
n21@{ icon: "mdi:robot", form: "rounded", label: "Character Text Splitter1", pos: "b", h: 48 }
n22@{ icon: "mdi:play-circle", form: "rounded", label: "Google Drive File Created", pos: "b", h: 48 }
n23@{ icon: "mdi:play-circle", form: "rounded", label: "Google Drive File Updated", pos: "b", h: 48 }
n24@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Files", pos: "b", h: 48 }
n25@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set File Data", pos: "b", h: 48 }
n26@{ icon: "mdi:cog", form: "rounded", label: "Wait1", pos: "b", h: 48 }
n27@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch File Type", pos: "b", h: 48 }
n28@{ icon: "mdi:cog", form: "rounded", label: "Extract From Document", pos: "b", h: 48 }
n29@{ icon: "mdi:cog", form: "rounded", label: "Extract From PDF", pos: "b", h: 48 }
n30@{ icon: "mdi:database", form: "rounded", label: "Google Sheets Get Document", pos: "b", h: 48 }
n31@{ icon: "mdi:cube-outline", form: "rounded", label: "Insert Content into Supabase..", pos: "b", h: 48 }
n26 --> n24
n17 --> n27
n25 --> n30
n24 --> n25
n29 --> n31
n27 --> n28
n27 --> n29
n20 -.-> n31
n18 --> n17
n19 -.-> n31
n28 --> n31
n21 -.-> n19
n22 --> n24
n23 --> n24
n30 --> n18
n31 --> n26
end
subgraph sg5["When Executed Supervisor Flow"]
direction LR
n97@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI2", pos: "b", h: 48 }
n98@{ icon: "mdi:cube-outline", form: "rounded", label: "Supabase Vector Store", pos: "b", h: 48 }
n99@{ icon: "mdi:play-circle", form: "rounded", label: "When Executed Supervisor", pos: "b", h: 48 }
n100@{ icon: "mdi:robot", form: "rounded", label: "RAG AI Agent - Product", pos: "b", h: 48 }
n101@{ icon: "mdi:database", form: "rounded", label: "Query Products", pos: "b", h: 48 }
n102@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model4", pos: "b", h: 48 }
n101 -.-> n100
n97 -.-> n98
n102 -.-> n100
n98 -.-> n100
n99 --> n100
end
subgraph sg6["RAG AI Agent - Acade Flow"]
direction LR
n103@{ icon: "mdi:robot", form: "rounded", label: "RAG AI Agent - Academy", pos: "b", h: 48 }
n104@{ icon: "mdi:database", form: "rounded", label: "Find course", pos: "b", h: 48 }
n105@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI4", pos: "b", h: 48 }
n106@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model6", pos: "b", h: 48 }
n107@{ icon: "mdi:cube-outline", form: "rounded", label: "Supabase Vector Store2", pos: "b", h: 48 }
n104 -.-> n103
n105 -.-> n107
n106 -.-> n103
n107 -.-> n103
end
subgraph sg7["RAG AI Agent - News Flow"]
direction LR
n108@{ icon: "mdi:robot", form: "rounded", label: "RAG AI Agent - News", pos: "b", h: 48 }
n109@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI5", pos: "b", h: 48 }
n110@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model7", pos: "b", h: 48 }
n111@{ icon: "mdi:cube-outline", form: "rounded", label: "Supabase Vector Store3", pos: "b", h: 48 }
n109 -.-> n111
n110 -.-> n108
n111 -.-> n108
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 n83,n47,n48,n0,n71,n22,n23,n99 trigger
class n79,n82,n85,n88,n91,n96,n44,n46,n5,n32,n19,n21,n100,n103,n108 ai
class n75,n80,n81,n90,n4,n102,n106,n110 aiModel
class n76,n77,n78 ai
class n73 ai
class n74,n34,n31,n98,n107,n111 ai
class n72,n45,n20,n97,n105,n109 ai
class n89,n95,n35,n52,n8,n10,n67,n68,n27 decision
class n33,n6,n11,n55,n56,n57,n58,n30,n101,n104 database
class n36,n14 api
classDef customIcon fill:none,stroke:none
class n83,n87,n92,n94,n36,n43,n12,n14,n59,n62,n18 customIcon
Problemet: supportsvar glider isär (och eskaleringar skjuter i höjden)
De flesta “supportärenden” är inte svåra frågor. Det är återkommande frågor som borde ha ett enda, godkänt svar: prisdetaljer, uppsägningsregler, steg-för-steg-instruktioner, vad som ingår, vad som inte ingår. Röran börjar när svaret ändras i ett Google-dokument, men gamla svar fortsätter kopieras från Slack-trådar, personliga anteckningar eller någons minne. Då får du motsägelser, frustrerade kunder och eskaleringar som aldrig borde ha hänt. Ännu värre: teamet slutar lita på dokumenten eftersom “de är ändå säkert inaktuella”.
Friktionen byggs på. Här är var det faller isär i det dagliga arbetet.
- Handläggare slösar runt 10 minuter på att leta upp den “senaste” versionen, särskilt när det finns flera varianter och mappar.
- Svaren blir inkonsekventa eftersom två personer hämtar från två olika källor, vilket gör att kunder fortsätter ställa följdfrågor.
- Nyansatta eskalerar enkla frågor eftersom de ännu inte vet var sanningen finns.
- När policyer ändras måste du manuellt träna om människor, och en del av uppdateringarna fastnar helt enkelt inte.
Lösningen: Google Drive-kunskap → Telegram-svar (uppdateras automatiskt)
Det här workflowet bygger en hybrid RAG-supportbot (retrieval-augmented generation) kring filerna du redan underhåller i Google Drive. När ett dokument läggs till eller uppdateras i specifika Drive-mappar hämtar n8n automatiskt innehållet, strukturerar och rensar det, delar upp det i användbara segment och skapar embeddings (tänk: sökbara “betydelsevektorer”) med OpenAI. Embeddings lagras i en Supabase-vektordatabas, så att boten senare kan hämta de mest relevanta utdragen. I gränssnittet lyssnar din Telegram-bot på inkommande frågor, identifierar språket och skickar vidare begäran till en Supervisor AI-agent som väljer rätt “expert”-agent. Den valda agenten hämtar kontext från vektorlagret (och vid behov produktdetaljer från Postgres), genererar ett svar, översätter tillbaka och svarar i Telegram.
Workflowet startar med två flöden som kör parallellt: kunskapsinläsning (webb + Drive) och chattgränssnittet i Telegram. När en användare ställer en fråga avgör Supervisor-agenten vilken expert som ska svara, sedan hämtar systemet rätt kontext och skickar ett tydligt, konsekvent svar. Om dina dokument ändras uppdateras kunskapsbasen utan att du behöver jaga folk.
Det du får: automation vs. resultat
| Det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att ditt team får 20 återkommande frågor per dag. Manuellt, om varje fråga tar cirka 6 minuter att söka i Drive, bekräfta senaste policyn och svara, blir det ungefär 2 timmar per dag. Med det här workflowet är “arbetet” att skicka frågan i Telegram och sedan vänta på svaret, vilket oftast tar under en minut. Även om du granskar och justerar några svar tar du fortfarande tillbaka cirka 1–2 timmar de flesta dagar.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Telegram-bot för att ta emot frågor och skicka svar.
- Google Drive för att lagra och uppdatera dina källdokument.
- Google Sheets för att hantera URL:er, dokumentposter och borttagningar.
- Supabase för vektorlagring och hämtning.
- OpenAI API-nyckel (hämta den i din OpenAI-dashboard under API keys).
- Postgres-databas för att lagra strukturerade produktdetaljer (valfritt, men inkluderat här).
- Crawl4AI om du vill läsa in webbplatsinnehåll utöver Drive-filer.
Kunskapsnivå: Medel. Du kopplar konton, klistrar in några ID:n (Drive-mapp-ID:n, tabellnamn) och verifierar att AI-promptarna beter sig som du förväntar dig.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Drive- och webbinnehåll triggar inläsning. När en fil skapas eller uppdateras i dina Google Drive-mappar (och när ditt Google Sheet listar nya webbplats-URL:er) hämtar workflowet in innehållet automatiskt.
Kunskap rensas och förbereds för sök. n8n använder HTTP-anrop och AI-hjälpare för att skrapa, normalisera och dela upp innehåll i chunkar, och genererar sedan embeddings med OpenAI Chat Model så att hämtningen baseras på betydelse, inte exakta nyckelord.
Telegram-frågor routas till rätt “expert”. En Telegram-trigger tar emot meddelandet, identifierar språk och lämnar över till en Supervisor AI-agent. Den agenten avgör om News-agenten, Product-agenten (Postgres-backad) eller Academy-agenten ska svara, och kör sedan en fråga-svar-kedja mot ditt Supabase-vektorlager.
Svaren levereras tillbaka i Telegram. Workflowet genererar ett slutligt svar (och översätter tillbaka vid behov) och svarar sedan användaren i samma Telegram-chatt. Det känns omedelbart, även om mycket händer i bakgrunden.
Du kan enkelt ändra källmappar och kategorier så att det matchar hur ni redan organiserar dokument. Se hela implementationsguiden nedan för anpassningsalternativ.
Vanliga fallgropar
- Google Drive-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera: kolla panelen Credentials i n8n och bekräfta först att det anslutna Google-kontot har åtkomst till de övervakade mapparna.
- Om du använder Wait-noder eller extern bearbetning (som skrapning) varierar processtiderna. Öka väntetiden om noder längre ned fallerar på tomma svar.
- Standardprompter i AI Agent-noder är generiska. Lägg in er tonalitet och era “gör/gör inte”-regler tidigt, annars kommer du redigera utdata för alltid.
Vanliga frågor
Räkna med cirka 60–90 minuter om dina konton och mappar är klara.
Nej. Du kommer främst koppla behörigheter och klistra in ID:n för mappar, Sheets och tabeller.
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 volymer. Du behöver också räkna in OpenAI API-användning och Supabase-lagring.
Två alternativ: n8n Cloud (hanterat, enklast uppsättning) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är en vanlig variant. Peka Google Drive Trigger mot en ny mapp, uppdatera kategorikoderna i Google Sheets och justera prompten för Supervisor-agenten så att den routar till en “HR”-agent (du kan duplicera ett befintligt AI Agent-sub-workflow). Du kan också ta bort delarna för Product-agenten om du inte behöver Postgres-uppslag.
Oftast är det bot-token eller chattbehörigheter. Skapa en ny Telegram bot token i BotFather vid behov, uppdatera sedan credential i n8n och testa Telegram Trigger igen. Kontrollera också att boten faktiskt finns i chatten du testar och inte har begränsats. Om det fungerar i en privat chatt men misslyckas i en grupp är det nästan alltid en behörighetsinställning.
Många, men den praktiska gränsen är din n8n-körkvot (i Cloud) och hur snabbt dina AI-anrop svarar. På self-hostad n8n finns inget körtak, så det beror mest på serverstorlek och rate limits i OpenAI/Supabase. För många små team är det realistiskt att hantera några hundra frågor per dag om du håller promptarna tajta och undviker att åter-embeda för ofta.
För en multi-agent RAG-bot som den här: ja, i de flesta fall. Du behöver förgreningar, routing och datainläsning som är mer än “trigger → action”, och n8n klarar det utan att bli märkligt dyrt. Self-hosting är också viktigt om du förväntar dig högre volymer. Zapier eller Make kan fortfarande funka för ett enkelt flöde som “skicka standardsvar”, men de är inte lika bekväma när du hanterar Drive-synk, en vektordatabas och AI-kedjor. Prata med en automationsexpert om du vill ha en snabb rekommendation baserat på din volym och dina kanaler.
Sätt upp det här en gång, så blir dina dokument till konsekventa svar vid begäran. Ärligt talat är det svårt att gå tillbaka efter första veckan utan det ständiga copy-paste-arbetet.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.