Folk ställer samma frågor om och om igen eftersom svaren finns på fem ställen: Google Drive-mappar, gamla Slack-trådar, någons huvud och ett dokument som ingen hittar.
Marknadschefer märker det när kampanjdetaljer återges fel. Ops-teamet får hantera det när ”processen” ändras men teamet fortfarande använder förra månadens version. Och byråägare får det dubbelt, eftersom varje kund lägger till ännu en hög med dokument. Den här automatiseringen för Slack wiki answers gör ditt Drive-innehåll till tillförlitliga svar vid begäran, direkt i Slack.
Du sätter upp ett flöde som klassificerar varje fråga, hämtar bästa möjliga kontext från dina dokument och svarar med ett strukturerat svar som teamet faktiskt kan lita på.
Så fungerar automatiseringen
Här är hela flödet som du kommer att sätta upp:
n8n Workflow Template: Google Drive + Slack: interna svar direkt med Gemini
flowchart LR
subgraph sg0["Chat Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "Query Classification", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Factual Strategy - Focus on ..", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Analytical Strategy - Compre..", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Opinion Strategy - Diverse P..", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Contextual Strategy - User C..", pos: "b", h: 48 }
n6@{ icon: "mdi:play-circle", form: "rounded", label: "Chat", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Factual Prompt and Output", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Contextual Prompt and Output", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Opinion Prompt and Output", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Analytical Prompt and Output", pos: "b", h: 48 }
n11@{ icon: "mdi:brain", form: "rounded", label: "Gemini Classification", pos: "b", h: 48 }
n12@{ icon: "mdi:brain", form: "rounded", label: "Gemini Factual", pos: "b", h: 48 }
n13@{ icon: "mdi:brain", form: "rounded", label: "Gemini Analytical", pos: "b", h: 48 }
n14@{ icon: "mdi:memory", form: "rounded", label: "Chat Buffer Memory Analytical", pos: "b", h: 48 }
n15@{ icon: "mdi:memory", form: "rounded", label: "Chat Buffer Memory Factual", pos: "b", h: 48 }
n16@{ icon: "mdi:brain", form: "rounded", label: "Gemini Opinion", pos: "b", h: 48 }
n17@{ icon: "mdi:memory", form: "rounded", label: "Chat Buffer Memory Opinion", pos: "b", h: 48 }
n18@{ icon: "mdi:brain", form: "rounded", label: "Gemini Contextual", pos: "b", h: 48 }
n19@{ icon: "mdi:memory", form: "rounded", label: "Chat Buffer Memory Contextual", pos: "b", h: 48 }
n20@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings", pos: "b", h: 48 }
n21@{ icon: "mdi:cog", form: "rounded", label: "Concatenate Context", pos: "b", h: 48 }
n22@{ icon: "mdi:cube-outline", form: "rounded", label: "Retrieve Documents from Vect..", pos: "b", h: 48 }
n23@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Prompt and Output", pos: "b", h: 48 }
n24@{ icon: "mdi:brain", form: "rounded", label: "Gemini Answer", pos: "b", h: 48 }
n25@{ icon: "mdi:robot", form: "rounded", label: "Answer", pos: "b", h: 48 }
n26@{ icon: "mdi:memory", form: "rounded", label: "Chat Buffer Memory", pos: "b", h: 48 }
n27["<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"]
n28@{ icon: "mdi:play-circle", form: "rounded", label: "When Executed by Another Wor..", pos: "b", h: 48 }
n29@{ icon: "mdi:swap-vertical", form: "rounded", label: "Combined Fields", pos: "b", h: 48 }
n6 --> n29
n25 --> n27
n1 --> n2
n1 --> n3
n1 --> n4
n1 --> n5
n20 -.-> n22
n24 -.-> n25
n12 -.-> n2
n16 -.-> n4
n29 --> n0
n13 -.-> n3
n18 -.-> n5
n26 -.-> n25
n21 --> n25
n0 --> n1
n11 -.-> n0
n23 --> n22
n7 --> n23
n9 --> n23
n15 -.-> n2
n17 -.-> n4
n10 --> n23
n8 --> n23
n14 -.-> n3
n19 -.-> n5
n28 --> n29
n22 --> n21
n2 --> n7
n4 --> n9
n3 --> n10
n5 --> n8
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,n28 trigger
class n0,n2,n3,n4,n5,n25 ai
class n11,n12,n13,n16,n18,n24 aiModel
class n14,n15,n17,n19,n26 ai
class n22 ai
class n20 ai
class n1 decision
class n27 api
classDef customIcon fill:none,stroke:none
class n27 customIcon
Varför det här spelar roll: Slack-frågor avbryter jobbet hela tiden
Slack är där jobbet händer, vilket också är där fokus dör. En enkel ”Var finns senaste varumärkesdecket?” blir en tråd med fem meddelanden, två fel länkar och en kollega som nu tvivlar på att dokumenten är uppdaterade. Multiplicera det med onboarding, överlämningar och ”snabba frågor” från andra avdelningar så får du en dold skatt på dina bästa personer. Du får också tysta inkonsekvenser: någon svarar från minnet, någon annan citerar ett gammalt Drive-dokument och plötsligt skickar ni fel information till kunder eller interna intressenter.
Det eskalerar snabbt. Så här brukar det fallera i riktiga team.
- Manuell sökning i Google Drive går långsamt, särskilt när filnamn inte matchar det folk skriver i Slack.
- Svar förändras över tid, så att kopiera ett gammalt Slack-svar sprider föråldrade instruktioner utan att någon märker.
- Subjektiva frågor (”vad är bästa angreppssättet?”) behandlas som faktabaserade, vilket ger vaga eller inte särskilt hjälpsamma svar.
- Seniora kollegor blir mänskliga sökmotorer, och ni tappar ungefär en timme om dagen på avbrott och upprepade förklaringar.
Det du bygger: Drive-baserade svar levererade i Slack
Det här flödet gör dina Google Drive-dokument till en levande intern kunskapsbas som besvarar frågor i Slack. En användare frågar något via ett chattgränssnitt (ofta ett Slack slash-kommando, en bot eller en enkel webhook). Flödet klassificerar först frågetypen: faktabaserad, analytisk, åsikt eller kontextuell. Klassificeringen är viktig eftersom det ”bästa” svaret på ”Vad är vår återbetalningspolicy?” är helt annorlunda än ”Hur bör vi positionera den här funktionen för vårdsektorn?”. När frågan omformas utifrån sin kategori skapar flödet embeddings, hämtar de mest relevanta utdragen från Qdrant (din vektordatabas) och ber sedan Gemini att formulera ett slutligt svar som är förankrat i dessa utdrag. Resultatet returneras direkt via webhooken så att din Slack-bot kan posta tillbaka i tråden.
Flödet startar när en chattförfrågan kommer in och användarens meddelande sätts ihop till en korrekt formaterad input-payload. Gemini hjälper sedan till att klassificera avsikten och välja rätt svarsstrategi. Till sist ger Qdrant-hämtning plus Geminis svarsgenerering ett enda användbart svar som du kan skicka direkt tillbaka till Slack.
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att ditt team får runt 20 interna frågor per dag i Slack, och att varje fråga tar cirka 6 minuter att besvara (hitta dokumentet, skumma igenom, klistra in rätt utdrag och sedan förtydliga). Det är ungefär 2 timmar per dag av avbrutet arbete. Med det här flödet blir den ”mänskliga tiden” i princip själva frågan (kanske 1 minut) plus en kort väntan medan Gemini hämtar och svarar. Du får tillbaka nära 90 minuter de flesta dagar, och svaren slutar glida isär mellan personer i teamet.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Drive för dina interna dokument och filer.
- Slack för att leverera svar där frågorna ställs.
- Qdrant API-åtkomst (hämta den i din Qdrant Cloud-dashboard eller från en egenhostad instans)
Svårighetsnivå: Medel. Du kopplar upp credentials, testar en webhook/chatt-trigger och justerar prompts utan att skriva tung kod.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En fråga kommer in via chatten. Flödet kan starta från den inbyggda chatt-triggern eller en extern workflow/webhook-trigger, så att din Slack-bot (eller ett annat gränssnitt) kan skicka frågan till n8n.
Frågan städas upp och klassificeras. n8n sätter ihop inputfälten, och sedan sorterar Gemini plus ett agentsteg den som faktabaserad, analytisk, åsikt eller kontextuell. Det är den här delen som stoppar ”one-size-fits-all”-svar.
Flödet formar om prompten och hämtar matchande kontext. Baserat på kategori skriver ett strategisteg om frågan, bygger en prompt-payload och genererar embeddings. Qdrant hämtar de närmaste dokumentutdragen, och n8n slår ihop dem till en användbar sammanfattning.
Ett slutligt svar genereras och returneras. Gemini producerar svaret förankrat i den hämtade kontexten, och n8n returnerar det via noden Respond to Webhook så att Slack kan posta tillbaka på rätt ställe.
Du kan enkelt ändra avsiktskategorierna så att de passar din organisation (till exempel lägga till ”policy” vs ”hur-gör-man”), eller byta ut output från Slack-svar till ett helpdesk-verktyg beroende på behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera den externa workflow-triggern
Konfigurera startpunkterna så att det här workflowet kan triggas antingen av ett annat workflow eller en chatt-session.
- Lägg till noden External Workflow Trigger och definiera workflow-inputs för user_query, chat_memory_key och vector_store_id.
- Lägg till noden Chat Session Trigger för interaktiva chatt-sessioner; behåll Options som standard.
- Koppla Chat Session Trigger → Assemble Input Fields och External Workflow Trigger → Assemble Input Fields.
⚠️ Vanlig fallgrop: Om ni bara triggar en av vägarna, säkerställ att saknade fält hanteras i uttrycken i Assemble Input Fields; annars kanske workflowet inte får en giltig user_query.
Steg 2: anslut inloggningsuppgifter för Google Gemini och Qdrant
Koppla inloggningsuppgifter för alla språkmodeller och vektorhämtning. Dessa krävs för AI- och vector store-operationer.
- Inloggningsuppgifter krävs: Anslut era googlePalmApi-inloggningsuppgifter i Gemini Intent Model, Gemini Factual Model, Gemini Analytical Model, Gemini Opinion Model, Gemini Contextual Model, Embedding Generator och Gemini Answer Model.
- Inloggningsuppgifter krävs: Anslut era qdrantApi-inloggningsuppgifter i Vector Store Retriever.
- Observera att Embedding Generator är ansluten som embedding-leverantör för Vector Store Retriever och att Gemini Answer Model är ansluten som språkmodell för Compose Final Reply—säkerställ att inloggningsuppgifter är tillagda på dessa överordnade noder.
Steg 3: konfigurera input-sammansättning och intent-klassificering
Normalisera inkommande payload och klassificera frågans intent med Gemini.
- I Assemble Input Fields, sätt user_query till
={{ $json.user_query || $json.chatInput }}. - Sätt chat_memory_key till
={{ $json.chat_memory_key || $('Chat Session Trigger').item.json.sessionId }}. - Sätt vector_store_id till
={{ $json.vector_store_id || "[YOUR_ID]" }}. - I Classify Query Intent, sätt Text till
=Classify this query: {{ $('Assemble Input Fields').item.json.user_query }}och behåll Prompt Type somdefine. - Säkerställ att Gemini Intent Model är ansluten som språkmodell till Classify Query Intent.
⚠️ Vanlig fallgrop: Ersätt [YOUR_ID] i vector_store_id med ett riktigt Qdrant collection-ID om det inte skickas in från triggern.
Steg 4: konfigurera routning och kategorispecifika prompt-byggare
Routa den klassificerade intenten till rätt strategi och bygg prompt-instruktioner för hämtning.
- I Route by Category, behåll de fyra reglerna som jämför
={{ $json.output.trim() }}motFactual,Analytical,OpinionochContextual. - För Factual-vägen, koppla Route by Category → Factual Refinement Strategy → Factual Prompt Builder.
- För Analytical-vägen, koppla Route by Category → Analytical Expansion Plan → Analytical Prompt Builder.
- För Opinion-vägen, koppla Route by Category → Opinion Angle Strategy → Opinion Prompt Builder.
- För Contextual-vägen, koppla Route by Category → Context Contextualization → Contextual Prompt Builder.
Tips: Switchen använder strikt skiftlägeskänslig matchning. Om er klassificerare returnerar etiketter i gemener, uppdatera regelvärdena därefter.
Steg 5: bygg retrieval-pipelinen
Förbered prompt-payloaden, skapa embeddings för frågan, hämta kontext från Qdrant och slå ihop snippets för det slutliga svaret.
- I Prepare Prompt Payload, sätt output till
={{ $json.output }}och prompt till={{ $json.prompt }}. - I Vector Store Retriever, sätt Mode till
load, Top K till10och Prompt till=Prompt.
{{ $json.prompt }}
User query:
{{ $json.output }} - Sätt Qdrant Collection i Vector Store Retriever till att använda ID-uttrycket
=vector_store_id. - Säkerställ att Embedding Generator är ansluten som embedding-leverantör till Vector Store Retriever och använder Model Name
models/text-embedding-004. - I Merge Context Snippets, sammanfatta document.pageContent genom att använda Concatenate med Custom Separator satt till
={{ "\n\n---\n\n" }}.
Steg 6: skapa det slutliga svaret och returnera webhook-resultatet
Använd den sammanslagna kontexten och chattminnet för att skapa det slutliga svaret och skicka tillbaka det till den som begärde det.
- I Shared Chat Memory, sätt Session Key till
={{ $('Assemble Input Fields').item.json.chat_memory_key }}och Context Window Length till10. - I Compose Final Reply, sätt Text till
=User query: {{ $('Assemble Input Fields').item.json.user_query }}. - Sätt System Message i Compose Final Reply till
={{ $('Prepare Prompt Payload').item.json.prompt }}.
Use the following context (delimited by) and the chat history to answer the user query.
{{ $json.concatenated_document_pageContent }} - Säkerställ att Gemini Answer Model är ansluten som språkmodell för Compose Final Reply och att Shared Chat Memory är ansluten som minnesleverantör.
- Koppla Compose Final Reply → Return Webhook Result för att skicka output tillbaka till anroparen.
Det här workflowet innehåller ingen explicit felhantering. Vid behov, lägg till felgrenar eller ett dedikerat fel-workflow för robusthet i produktion.
Steg 7: testa och aktivera ert workflow
Validera hela pipelinen med en provfråga och aktivera sedan workflowet för användning i produktion.
- Klicka på Execute Workflow och skicka en test-payload via External Workflow Trigger eller initiera en chatt via Chat Session Trigger.
- Verifiera att Route by Category routar till rätt gren och att Vector Store Retriever returnerar context snippets som slås ihop av Merge Context Snippets.
- Bekräfta att Compose Final Reply genererar ett svar och att Return Webhook Result returnerar det till den som begärde det.
- Slå på workflowet Active för att möjliggöra kontinuerlig användning.
Felsökningstips
- Google Drive-credentials kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först din Google-koppling i n8n:s Credentials-sektion och bekräfta sedan att åtkomst till Drive-mappen fortfarande är tillåten.
- Om du använder vänteliknande beteende i ditt chattgränssnitt eller förlitar dig på extern indexering varierar processtiderna. Öka eventuella timeout-/väntinställningar på Slack-sidan om du ser tomma eller avklippta svar.
- Standardprompter i Gemini-/agentnoder är generiska. Lägg in ert tonalitet och ”så här ser ett bra svar ut” tidigt, annars kommer du fortsätta skriva om svar manuellt.
Snabba svar
Cirka 15 minuter om dina Qdrant- och Gemini-credentials är klara.
Nej. Du kopplar främst konton, klistrar in API-nycklar och justerar några prompter.
Ja. n8n har ett gratis egenhostat alternativ och en gratis testperiod på n8n Cloud. Molnplaner börjar på 20 USD/månad för högre volym. Du behöver också räkna in Gemini-användning samt dina Qdrant-hostingkostnader.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det bör du. Du kan justera växeln ”Route by Category” för att lägga till eller ta bort avsiktstyper och sedan uppdatera motsvarande strategiagent- och prompt builder-steg (till exempel strama åt ”Factual” så att den bara svarar utifrån policydokument). Många team ändrar också beteendet i ”Merge Context Snippets” för att inkludera kortare citat, eller justerar ”Compose Final Reply” för att returnera ett enradigt svar plus källor.
Oftast handlar det om behörigheter. Återanslut Google Drive i n8n och bekräfta sedan att kontot har åtkomst till exakt de mappar du indexerade samt att delade enheter är aktiverade om du använder dem. Om det fortfarande misslyckas, kontrollera om din Google Workspace-administratör begränsar åtkomst för tredjepartsappar.
På n8n Cloud Starter klarar du vanligtvis en liten teams dagliga Q&A-volym; om du kör egen hosting är den praktiska gränsen dina serverresurser och dina rate limits i Gemini/Qdrant. I praktiken börjar de flesta team med ”några hundra frågor per dag” som en bekväm nivå och skalar sedan upp när prompter och hämtning är stabila.
Ofta, ja. Det här flödet använder förgrening (fyra avsiktsvägar), minnesbuffertar, hämtning och flera AI-steg, och det tenderar att bli dyrt eller klumpigt i Zapier/Make när du går förbi enkla tvåstegszaps. n8n är också enklare att köra egen host, vilket spelar roll om du vill ha obegränsade körningar eller stramare datakontroll. Zapier kan fortfarande fungera bra om du bara vill vidarebefordra ett Slack-meddelande till en AI-modell och posta tillbaka ett generiskt svar. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation.
När det här är live slutar teamet leta och börjar leverera. Flödet svarar på återkommande frågor, och dina medarbetare kan behålla fokus på det arbete som faktiskt spelar roll.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.