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

Supabase + Gemini: dokumentbot som svarar i Slack

Rickard Andersson Partner, Nodenordic.se

Ditt team fortsätter att ställa samma ”snabba frågor” i Slack. Svaren finns någonstans (ett dokument, en wikisida, en Google Drive-mapp), men ingen hittar dem tillräckligt snabbt, så samma personer får svara. Igen.

Det här problemet med en Supabase Slack-chatbot slår först mot marketing ops och ansvariga för kundsupport. Men grundare och byråteam känner av det också, eftersom varje avbrott bryter fokus och skapar ”tribal knowledge” som aldrig hamnar tillbaka i dokumentationen.

Det här arbetsflödet gör om dina dokument till en förankrad, sökbar chatbot som drivs av Gemini och levererar sedan svar direkt i Slack. Du får se hur det fungerar, vad du behöver och vad du ska se upp med.

Så fungerar den här automatiseringen

Se hur detta löser problemet:

n8n Workflow Template: Supabase + Gemini: dokumentbot som svarar i Slack

Utmaningen: Slack-frågorna tar aldrig slut

Slack är fantastiskt tills det blir er helpdesk för intern kunskap. En person frågar var senaste prisdokumentet ligger. En annan frågar vad ”RAG” betyder i er kontext. Någon annan behöver den ”officiella” processen för att beställa kreativt. Inget av detta är svårt, men det är konstant. Och eftersom svaren skrivs i chatten blir de inkonsekventa, svåra att hitta senare och ofta fel när dokumentationen ändras. Ärligt talat är det värsta kontextbytena. Du tappar hela förmiddagen på ”bara en minut”-svar.

Det blir mycket, snabbt. Här är var det faller isär i riktiga team.

  • Folk frågar i Slack eftersom det känns långsammare att söka i wikin än att avbryta en kollega.
  • Svaren glider över tid, så två olika kanaler får två olika ”sanningar” om samma policy.
  • Nyanställda vet inte vad de ska lita på, så de ställer ännu fler frågor (och får dåligt samvete av det).
  • Dina ämnesexperter blir mänskliga FAQ-maskiner, vilket i det tysta saktar ner projekten.

Lösningen: en Gemini-driven dokumentbot med Supabase som grund

Det här arbetsflödet löser problemet i två delar: först bygger det en privat, sökbar kunskapsbas i Supabase, och sedan använder det den kunskapsbasen för att svara på frågor i Slack med Gemini. ”Indexeringskörningen” startas manuellt, skrapar dokumentationssidor, rensar texten, delar upp den i mindre chunkar och skapar en embedding för varje chunk så att den kan sökas på innebörd (inte bara nyckelord). Dessa chunkar och embeddings hamnar i Supabase som din vektordatabas. Därefter är chatbot-delen alltid aktiv. När någon ställer en fråga hittar arbetsflödet de mest relevanta chunkarna i Supabase och instruerar Gemini att svara med enbart det materialet, vilket håller svaren konsekventa och förankrade.

Arbetsflödet börjar med en engångskörning för indexering (manuell trigger) som samlar in och bearbetar dokumentationssidor. När kunskapsbasen är byggd skickar chat-triggern Slack-liknande frågor till en AI-agent som hämtar kontext från Supabase och sedan skriver ett begränsat svar med Gemini. En schemalagd ”keep alive”-ping hindrar databasen från att gå ner i viloläge.

Vad som förändras: före vs. efter

Effekt i praktiken

Säg att ditt team får 20 interna ”var finns / hur gör jag”-frågor per vecka i Slack. Manuellt tar varje fråga cirka 5 minuter att läsa, hitta dokumentet, verifiera att det är aktuellt och svara (alltså ungefär 2 timmar per vecka). Med det här arbetsflödet besvaras frågan i Slack på under en minut, och du kliver bara in vid specialfall. Det är en eller två timmar tillbaka varje vecka, plus färre avbrott för personerna som alla är beroende av.

Krav

  • n8n-instans (prova n8n Cloud gratis)
  • Självhostat alternativ om du föredrar det (Hostinger fungerar bra)
  • Supabase för vektordatabasen (kunskapsbasen).
  • Google AI (Gemini) för att skapa embeddings och generera svar.
  • Supabase Service Role Key (hämta den i Supabase-projektinställningarna).

Kunskapsnivå: Avancerad. Du är bekväm med att följa setup-noteringar, skapa credentials och köra ett SQL-utdrag i Supabase.

Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).

Flödet i arbetsflödet

En manuell indexeringskörning sätter igång allt. Du klickar på triggern ”Start Indexing” när du är redo att bygga kunskapsbasen. Arbetsflödet hämtar en lista med dokumentationslänkar, filtrerar bort irrelevanta sökvägar och förbereder dem för bearbetning i batchar.

Sidor hämtas, rensas och chunkas. För varje dokumentsida hämtar n8n HTML:en, extraherar huvudtexten och sanerar den så att AI:n ser läsbar text (inte navigationsfält och skript). En rekursiv text-splitter delar sedan upp innehållet i mindre segment som är lättare att söka träffsäkert i.

Gemini skapar embeddings och Supabase lagrar dem. Varje chunk omvandlas till en vektor (en embedding) och infogas i din Supabase-vektordatabas. Det här är ”biblioteksindexet” som gör semantisk hämtning möjlig.

Chat-triggern besvarar frågor med hjälp av hämtning. När en fråga kommer in skapar arbetsflödet en embedding för frågan, hämtar de mest relevanta chunkarna från Supabase och ger den kontexten till en AI-agent med tydliga instruktioner att hålla sig till det tillhandahållna materialet. Det slutliga svaret returneras till chattgränssnittet (och kan visas i Slack med den routing du föredrar).

Du kan enkelt ändra källdokumenten så att de matchar din egen wiki eller Google Drive-dokument utifrån dina behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: Konfigurera den manuella triggern

Det här arbetsflödet startar manuell indexering från en trigger och förgrenas sedan till komponenter för dokumentationsinsamling och chatbot.

  1. Lägg till Manual Index Start som trigger för indexeringskörningar.
  2. Bekräfta att Manual Index Start inte har några parametrar att ställa in.
  3. Valfritt: behåll Flowpast Branding som en visuell notering (ingen konfiguration krävs).

Steg 2: Anslut dokumentationskällan

Dessa noder hämtar och tolkar listan med dokumentationslänkar som används för indexering.

  1. I Fetch Documentation Links, ställ in URL till https://docs.n8n.io/.
  2. I Parse HTML Links, behåll Operation som extractHtmlContent och säkerställ att CSS Selector är a med Attribute href.
  3. I Expand Link Items, ställ in Field to Split Out till links och behåll Destination Field Name som link.
  4. I Deduplicate Links, ställ in Compare till selectedFields och Fields to Compare till link.

⚠️ Vanlig fallgrop: Om Parse HTML Links inte returnerar någon data, verifiera HTML-selektorn och att dokumentationssajten är åtkomlig från er n8n-instans.

Steg 3: Filtrera och batcha dokumentationsvägar

Det här steget filtrerar giltiga dokumentationsvägar och batchar dem för bearbetning i ett underarbetsflöde.

  1. I Filter Doc Paths, bekräfta att villkoren använder uttryck: {{ $json.link }} slutar med / och börjar inte med https://.
  2. I Batch Documentation Pages, ställ in Batch Size till 10.
  3. I Run Sub-Workflow (Configure Required), ställ in Workflow ID till arbetsflödet som hanterar sidinhämtning och indexering.

⚠️ Vanlig fallgrop: Run Sub-Workflow (Configure Required) har ett tomt Workflow ID. Ni måste välja rätt underarbetsflöde, annars körs inte den här grenen.

Steg 4: Konfigurera sidinhämtning och rensning

Underarbetsflödet hämtar varje dokumentsida och normaliserar innehållet innan indexering.

  1. I Inbound Page Trigger, behåll Input Source inställt på passthrough.
  2. I Retrieve Doc Page, ställ in URL till =https://docs.n8n.io/{{ $json.link }}.
  3. I Extract Doc Body, behåll OperationextractHtmlContent och använd CSS Selector article med Skip Selectors img, footer, form.
  4. I Sanitize Documentation, ställ in fältvärdet för documentation till {{ $json.data.replace(/([^#\n]+)\s*#/g, '# $1').trim().replace(/^\s*https?:\/\/\S+\s*/, '') }}.
  5. I Deduplicate Doc Content, ställ in Operation till removeItemsSeenInPreviousExecutions och Dedupe Value till {{ $json.documentation }}.

Steg 5: Sätt upp vektorindexering i Supabase

Dessa AI-indexeringsnoder delar upp innehåll, skapar embeddings och infogar dem i Supabase för återhämtning.

  1. I Recursive Text Segmenter, ställ in Chunk Size till 1500 och Chunk Overlap till 200.
  2. I Standard Data Importer, ställ in JSON Data till {{ $json.documentation }} och Text Splitting Mode till custom.
  3. I Supabase Vector Insert, ställ in Mode till insert, Table Name till documents och Embedding Batch Size till 30.

Inloggningsuppgifter krävs: Anslut era supabaseApi-inloggningsuppgifter i Supabase Vector Insert.

Inloggningsuppgifter krävs: Anslut era googlePalmApi-inloggningsuppgifter i Gemini Chunk Vector.

AI-verktygsnoder som Gemini Chunk Vector, Standard Data Importer och Recursive Text Segmenter är anslutna som undernoder till Supabase Vector Insert. Säkerställ att inloggningsuppgifter läggs till i föräldranoderna (t.ex. Gemini Chunk Vector och Supabase Vector Insert), inte i verktygslänkarna.

Steg 6: Konfigurera chatbotens pipeline för hämtning

Det här steget driver chatboten med RAG ovanpå Supabase vektorlagring.

  1. I Documentation Chat Trigger, behåll Public aktiverat och granska Initial Messages för den hälsning ni vill ha.
  2. I Docs Expert Agent, behåll System Message intakt för att säkerställa svar enbart baserade på dokumentation.
  3. Anslut Gemini Flash Model som språkmodell för Docs Expert Agent.
  4. Anslut Short-Term Buffer som minne för Docs Expert Agent.
  5. I Docs Vector Retriever, ställ in Mode till retrieve-as-tool, Top K till 10 och Tool Description till Get related chunks of the official n8n documentation.

Inloggningsuppgifter krävs: Anslut era googlePalmApi-inloggningsuppgifter i Gemini Flash Model.

Inloggningsuppgifter krävs: Anslut era supabaseApi-inloggningsuppgifter i Docs Vector Retriever.

Inloggningsuppgifter krävs: Anslut era googlePalmApi-inloggningsuppgifter i Gemini Query Vector.

AI-verktygsnoder som Gemini Query Vector och Short-Term Buffer är kopplade till Docs Expert Agent. Säkerställ att inloggningsuppgifter läggs till i föräldranoderna (Gemini Flash Model, Gemini Query Vector, Docs Vector Retriever), inte i verktygslänkarna.

Steg 7: Lägg till schemalagd hälsokontroll av databasen

Det här schemalagda flödet validerar Supabase-anslutningen var 6:e dag.

  1. I Scheduled 6-Day Trigger, behåll intervallregeln på daysInterval: 6.
  2. I Ping Supabase Database, ställ in Operation till getAll, Table ID till documents och Limit till 1.

Inloggningsuppgifter krävs: Anslut era supabaseApi-inloggningsuppgifter i Ping Supabase Database.

Steg 8: Testa och aktivera ert arbetsflöde

Kör ett manuellt indexeringstest och bekräfta att både vektorlagringen och chatboten fungerar som förväntat.

  1. Klicka på Execute Workflow för att köra Manual Index Start och verifiera att Supabase Vector Insert skriver till tabellen documents.
  2. Trigga Documentation Chat Trigger och ställ en fråga för att bekräfta att Docs Expert Agent hämtar relevant dokumentation via Docs Vector Retriever.
  3. Kontrollera att Deduplicate Doc Content förhindrar dubbletter mellan körningar.
  4. Aktivera arbetsflödet genom att slå på Active för att köra den schemalagda hälsokontrollen och chatboten i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Saker att se upp med

  • Supabase-credentials kan löpa ut eller kräva specifika behörigheter. Om något går sönder, kontrollera först inställningarna i ditt Supabase-projekt (API-nycklar och RLS-policyer).
  • Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera utdata för alltid.

Vanliga frågor

Hur snabbt kan jag implementera den här Supabase Slack-chatbot-automatiseringen?

Cirka 20 minuter om dina Supabase- och Gemini-nycklar är klara.

Kan icke-tekniska team implementera den här dokumentchatboten?

Ja, men du vill ha någon som är bekväm med att koppla credentials och klistra in ett SQL-script för setup en gång. Efter det är den dagliga användningen bara att ställa frågor.

Är n8n gratis att använda för det här Supabase Slack-chatbot-arbetsflödet?

Ja. n8n har ett gratis självhostat 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 användning av Gemini API, vilket vanligtvis är en liten kostnad per fråga plus indexering.

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

Två alternativ: n8n Cloud (hanterat, enklast setup) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärt och hanterar n8n bra. Självhosting ger obegränsade exekveringar men kräver grundläggande serveradministration.

Hur anpassar jag den här Supabase Slack-chatbot-lösningen till mina specifika utmaningar?

Du kan byta indexeringskälla utan att ändra grundmönstret. Till exempel kan du ersätta HTTP-stegen ”Fetch Documentation Links” och ”Retrieve Doc Page” med inläsning av Google Drive-filer och sedan behålla samma text-splitting och Supabase-insert av vektorer. Vanliga justeringar är att filtrera vilka mappar eller dokumentsökvägar som tillåts, att justera chunk-storlek i text-splittern för bättre träffar och att skärpa agentinstruktionerna så att den svarar med er interna tonalitet.

Varför misslyckas min Supabase-anslutning i det här arbetsflödet?

Oftast beror det på att Service Role Key saknas, har roterats eller har klistrats in i fel credential. Dubbelkolla att du använder rätt Project URL och bekräfta sedan att Supabase-projektet går att nå från din n8n-miljö. Om arbetsflödet fungerade igår men fallerar idag, leta efter utgångna credentials eller säkerhetspolicyer som har ändrats. Rate limiting är mer ovanligt här, men stora indexeringskörningar kan trigga det.

Vilken kapacitet har den här Supabase Slack-chatbot-lösningen?

Den skalar bra för de flesta små team.

Är den här Supabase Slack-chatbot-automatiseringen bättre än att använda Zapier eller Make?

Ofta, ja, eftersom RAG-arbetsflöden behöver förgrening, batchning och dataformning som blir krångligt (och dyrt) i enklare verktyg. n8n ger dig också ett självhostat alternativ, så hög meddelandevolym betyder inte automatiskt en större faktura. En annan praktisk punkt: att lagra och hämta embeddings är enklare när du kontrollerar databaslagret, vilket du gör med Supabase. Om du bara behöver posta ett standardsvar eller routa ett ärende kan Zapier eller Make fungera helt fint. Prata med en automationsexpert om du vill ha hjälp att välja.

När detta är live slutar Slack vara er kunskapsflaskhals. Arbetsflödet tar hand om de repetitiva frågorna och ditt team kan återgå till det riktiga jobbet.

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