Ditt team ställer samma frågor om och om igen eftersom svaren är utspridda i Google Drive. Någon “vet” att dokumentet finns, men att hitta rätt sida tar en evighet. När du väl hittar det är det inaktuellt, eller så är du inte säker på att det är senaste versionen.
Det är precis den här typen av röra som bromsar marknadsförare som försöker få ut kampanjer, ops-chefer som ska hålla SOP:ar uppdaterade och byråägare som behöver att kunder kan självbetjäna. Med automatiseringen Drive Gemini Q&A slutar du agera mänsklig sökmotor och börjar få källbaserade svar på sekunder.
Det här flödet gör en Drive-mapp till en självuppdaterande Q&A-hubb. Du får se hur den hålls aktuell, var svaren kommer ifrån och vad du behöver för att köra den stabilt.
Så fungerar den här automatiseringen
Hela n8n-flödet, från trigger till slutligt resultat:
n8n Workflow Template: Google Drive + Gemini: snabba svar från dina dokument
flowchart LR
subgraph sg0["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:vector-polygon", form: "rounded", label: "Embeddings OpenAI1", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Default Data Loader1", pos: "b", h: 48 }
n3["<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/>Create collection"]
n4@{ icon: "mdi:robot", form: "rounded", label: "Recursive Character Text Spl..", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n10["<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/>Clear collection"]
n12@{ icon: "mdi:cog", form: "rounded", label: "Search files", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Wait 5 sec.", pos: "b", h: 48 }
n15@{ icon: "mdi:cube-outline", form: "rounded", label: "Insert file", pos: "b", h: 48 }
n17@{ icon: "mdi:cog", form: "rounded", label: "Get files", pos: "b", h: 48 }
n17 --> n15
n15 --> n13
n13 --> n5
n12 --> n5
n5 --> n17
n10 --> n12
n1 -.-> n15
n2 -.-> n15
n4 -.-> n2
n0 --> n3
n0 --> n10
end
subgraph sg1["Update? Flow"]
direction LR
n6@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI2", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Default Data Loader", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Recursive Character Text Spl..", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set file_id", pos: "b", h: 48 }
n11["<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/>Delete points by file_id"]
n14@{ icon: "mdi:cube-outline", form: "rounded", label: "Update file", pos: "b", h: 48 }
n16@{ icon: "mdi:cog", form: "rounded", label: "Get file", pos: "b", h: 48 }
n24@{ icon: "mdi:play-circle", form: "rounded", label: "Update?", pos: "b", h: 48 }
n24 --> n9
n16 --> n14
n9 --> n11
n9 --> n16
n6 -.-> n14
n7 -.-> n14
n8 -.-> n7
end
subgraph sg2["When chat message received Flow"]
direction LR
n18@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n19@{ icon: "mdi:robot", form: "rounded", label: "Question and Answer Chain", pos: "b", h: 48 }
n20@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n21@{ icon: "mdi:cube-outline", form: "rounded", label: "Vector Store Retriever", pos: "b", h: 48 }
n22@{ icon: "mdi:cube-outline", form: "rounded", label: "Qdrant Vector Store1", pos: "b", h: 48 }
n23@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI", pos: "b", h: 48 }
n23 -.-> n22
n22 -.-> n21
n21 -.-> n19
n20 -.-> n19
n18 --> n19
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,n24,n18 trigger
class n2,n4,n7,n8,n19 ai
class n20 aiModel
class n15,n14,n21,n22 ai
class n1,n6,n23 ai
class n3,n10,n11 api
classDef customIcon fill:none,stroke:none
class n3,n10,n11 customIcon
Problemet: Google Drive blir “platsen där kunskap gömmer sig”
Google Drive är bra på att lagra filer, men inte på att svara på frågor. Sökningen hjälper tills den inte gör det. Folk minns fel filnamn, eller hittar tre versioner av samma dokument och väljer den som är lite fel. Sedan kommer Slack-pingar, e-posttrådar och snabba samtal som avbryter det riktiga arbetet. Multiplicera det med onboarding, policyfrågor, kampanjspecar, prisdetaljer och kund-FAQ:er, så lägger du timmar varje vecka på att förklara sådant du redan har skrivit ned.
Friktionen växer snabbt. Här är var det fallerar.
- Folk slutar lita på Drive som “single source of truth” eftersom de hela tiden ser motstridiga dokument.
- Ämnesexperter tappar ungefär 30 minuter om dagen på avbrott av typen “var är det där dokumentet?”.
- Nyanställda ställer grundfrågor i veckor eftersom de inte hittar det enda stycket som svarar.
- Manuellt underhåll av “kunskapsbasen” hamnar efter, så svaren glider isär och ingen märker det.
Lösningen: ett självuppdaterande Q&A-lager ovanpå din Drive
Det här n8n-flödet bygger ett Retrieval-Augmented Generation-system (RAG) ovanpå din Google Drive-mapp, så att teamet kan ställa frågor och få förankrade svar som hämtas direkt från era dokument. När en fil läggs till eller uppdateras i Drive laddar flödet ned den, delar upp texten i mindre delar och skapar “embeddings” (tänk: ett sökbart, betydelsebaserat fingeravtryck) med OpenAI:s embedding-modell. Dessa textbitar lagras i en Qdrant-vektordatabas tillsammans med metadata som fil-ID och filnamn. När någon sedan ställer en fråga via chatttriggern hämtar flödet de mest relevanta textbitarna från Qdrant och använder Google Gemini för att skriva ett strukturerat, kontextmedvetet svar baserat på de källorna.
Det börjar med att Drive övervakas för förändringar och en ingest-pipeline som håller vektordatabasen aktuell. Därifrån triggar en fråga först hämtning, och sedan omvandlar Gemini de hämtade utdragen till ett rakt svar. Resultatet känns som “ställ en fråga till Drive”, fast svaret är kopplat till dina egna filer, inte till vag AI-minnesbild.
Det du får: automatisering vs. resultat
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att teamet får 15 interna frågor om dagen som kräver att ni letar i Drive. Manuellt är även en “snabb koll” kanske 10 minuter av sökning, öppna filer och bekräfta att du tittar på senaste versionen, alltså ungefär 2,5 timmar per dag. Med det här flödet ställer personen frågan en gång via chatttriggern och får ett källbaserat svar tillbaka på under en minut. Du gör fortfarande en rimlighetskontroll första veckan, ärligt talat, men du får snabbt tillbaka ett par timmar de flesta dagar.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Drive för att lagra och övervaka dokument.
- Qdrant för att lagra vektorer för semantisk sökning.
- OpenAI API-nyckel (hämta den i din OpenAI-dashboard) för embeddings.
Kunskapsnivå: Medel. Du kopplar konton, klistrar in en Qdrant-URL och validerar ett par testfrågor.
Vill du inte sätta upp det själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En Drive-ändring startar allt. När en fil läggs till eller uppdateras i din valda Google Drive-mapp fångar flödet filens identitet så att uppdateringar kan spåras korrekt.
Dokumentet förbereds för sökning. n8n laddar ned filen, delar upp den i mindre delar med en rekursiv text-splitter och lägger till metadata som fil-ID och filnamn så att du kan spåra svaren tillbaka till en källa.
Betydelsebaserad indexering sker i Qdrant. OpenAI-embeddings konverterar varje textbit till vektorer, och sedan lägger flödet in dem i Qdrant. Om filen uppdaterades tar flödet först bort de gamla vektorerna så att kunskapsbasen inte driver iväg.
Frågor får förankrade svar. Ett chattmeddelande triggar hämtning från Qdrant (de bäst matchande textbitarna), och Google Gemini skriver ett svar baserat på den kontexten i stället för att gissa.
Du kan enkelt ändra vilken Drive-mapp som övervakas till en annan avdelnings mapp utifrån behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera triggertypen
Skapa de tre ingångspunkterna som styr manuell initiering, Google Drive-uppdateringar och chattbaserade frågor.
- Lägg till och öppna Manual Run Trigger för att tillåta manuell körning för att sätta upp samlingen och köra fullständig indexering.
- Konfigurera Drive Update Trigger med Event inställt på
fileUpdatedoch Trigger On inställt påspecificFolder. - Ställ in Drive Update Trigger → Folder to Watch till ert mål-mapp-ID och behåll Poll Times på
everyHour. - Lägg till Chat Message Trigger för att ta emot inkommande chattmeddelanden för retrieval-frågor (Q&A).
- Bekräfta parallell körning: Manual Run Trigger skickar utdata till både Initialize Collection och Purge Collection parallellt.
Inloggningsuppgifter krävs: Anslut era googleDriveOAuth2Api-inloggningsuppgifter i Drive Update Trigger.
Steg 2: Anslut Google Drive och batch-inläsning
Det här arbetsflödet kan göra en fullständig Drive-skanning och batch-inläsning för initial vektorindexering.
- Öppna Purge Collection och verifiera att den är kopplad till Find Drive Files för fullständiga ombyggnader av samlingen.
- Konfigurera Find Drive Files med Resource inställt på
fileFolderoch välj era Drive- och Folder-ID:n. - Säkerställ att Batch Item Iterator tar emot indata från både Find Drive Files och Delay Five Seconds.
- Ställ in Download Drive Files → Operation till
downloadoch File ID till{{ $json.id }}. - I Download Drive Files ska ni behålla konverteringen för Docs to Format inställd på
text/plainför konsekvent textextrahering.
Inloggningsuppgifter krävs: Anslut era googleDriveOAuth2Api-inloggningsuppgifter i Find Drive Files och Download Drive Files.
Steg 3: Initiera och underhåll Qdrant-samlingen
Sätt upp Qdrant-samlingen och en valfri rensning före en fullständig omindexering.
- Konfigurera Initialize Collection med Method inställt på
PUToch URL inställt påhttp:///collections/test_sparse. - Ställ in Initialize Collection → JSON Body till det angivna schemat för vektor och sparse vector.
- Konfigurera Purge Collection med Method inställt på
POSToch URL inställt påhttp:/[CONFIGURE_YOUR_API_KEY]/delete. - Behåll Purge Collection → JSON Body inställt på
{ "filter": {} }för att ta bort alla vektorer vid en fullständig ombyggnad.
Inloggningsuppgifter krävs: Anslut era httpHeaderAuth-inloggningsuppgifter i Initialize Collection och Purge Collection.
http:///collections/test_sparse och http:/[CONFIGURE_YOUR_API_KEY]/delete med er riktiga Qdrant-endpoint och API-nyckel.Steg 4: Konfigurera filuppdateringsflödet och vektor-upserts
När en Drive-fil ändras tar arbetsflödet bort befintliga vektorer för den filen och läser in det uppdaterade innehållet på nytt.
- I Assign File Identifier mappar ni file_id till
{{ $json.id }}för att spåra den uppdaterade filen. - Bekräfta parallell körning: Assign File Identifier skickar utdata till både Remove Vectors by File och Download Drive File parallellt.
- Ställ in Remove Vectors by File → JSON Body till
={ "filter": { "must": [ { "key": "metadata.file_id", "match": { "value": "{{$json.file_id}}" } } ] } }. - Konfigurera Download Drive File med Operation inställt på
downloadoch File ID inställt på{{ $json.file_id }}. - Behåll Recursive Text Splitter B inställd på Chunk Size
500och Chunk Overlap50, och skicka sedan vidare till Secondary Data Loader. - Säkerställ att Upsert File Vectors har Mode inställt på
insertoch pekar mot er Qdrant-samling.
Inloggningsuppgifter krävs: Anslut era httpHeaderAuth-inloggningsuppgifter i Remove Vectors by File.
Inloggningsuppgifter krävs: Anslut era googleDriveOAuth2Api-inloggningsuppgifter i Download Drive File.
Inloggningsuppgifter krävs: Anslut era qdrantApi-inloggningsuppgifter i Upsert File Vectors.
Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter i OpenAI Embeddings Beta (används av Upsert File Vectors).
Steg 5: Konfigurera bulkindexering, embeddings och vektorinsättningar
Den här delen hanterar fullständig indexering för alla filer i den valda Drive-mappen.
- Säkerställ att Recursive Text Splitter A är ansluten till Primary Data Loader och inställd på Chunk Size
500och Chunk Overlap50. - I Primary Data Loader ställer ni in metadata-värden: file_id till
{{ $('Download Drive Files').item.json.id }}och file_name till{{ $('Download Drive Files').item.json.name }}. - Konfigurera Insert File Vectors med Mode inställt på
insertoch välj er Qdrant-samling. - Efter insättningar ska ni behålla Delay Five Seconds för att minska belastningen på Qdrant innan ni loopar med Batch Item Iterator.
Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter i OpenAI Embeddings Alpha (används av Insert File Vectors).
Inloggningsuppgifter krävs: Anslut era qdrantApi-inloggningsuppgifter i Insert File Vectors.
Steg 6: Sätt upp retrieval Q&A med Gemini och Qdrant
Konfigurera AI-kedjan som svarar på chattfrågor med vektorbaserad hämtning.
- Anslut Chat Message Trigger direkt till QA Retrieval Chain.
- Ställ in Gemini Chat Model → Model Name till
models/gemini-1.5-flashoch koppla den som språkmodell för QA Retrieval Chain. - Ställ in Vector Store Fetcher → Top K till
5och koppla den som retriever för QA Retrieval Chain. - Konfigurera Qdrant Vector Store Main så att den pekar på samma Qdrant-samling som inläsningsnoderna.
- Anslut OpenAI Embeddings Gamma till Qdrant Vector Store Main för att möjliggöra vektorsimilaritetssökning.
Inloggningsuppgifter krävs: Anslut era googlePalmApi-inloggningsuppgifter i Gemini Chat Model.
Inloggningsuppgifter krävs: Anslut era qdrantApi-inloggningsuppgifter i Qdrant Vector Store Main.
Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter i OpenAI Embeddings Gamma.
Steg 7: Testa och aktivera ert arbetsflöde
Verifiera att inläsning, uppdateringar och Q&A fungerar innan ni slår på arbetsflödet.
- Klicka på Manual Run Trigger för att initiera samlingen och indexera alla Drive-filer; verifiera att Initialize Collection, Purge Collection, Find Drive Files och Insert File Vectors körs utan fel.
- Uppdatera en fil i den övervakade mappen och bekräfta att Drive Update Trigger triggas. Verifiera sedan att både Remove Vectors by File och Download Drive File körs parallellt och matar in i Upsert File Vectors.
- Skicka ett meddelande till Chat Message Trigger och verifiera att QA Retrieval Chain returnerar ett svar som använder vektorer från Qdrant Vector Store Main.
- När alla flöden lyckas växlar ni arbetsflödet till Active för användning i produktion.
Vanliga fallgropar
- Google Drive-inloggningar kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera Google-anslutningen i n8n:s Credentials och bekräfta att kontot kan läsa mål-mappen.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder misslyckas på tomma svar.
- Qdrant API-åtkomst är lätt att felkonfigurera om URL eller nyckel ändras. Om upserts misslyckas, verifiera Qdrant-host-URL:en i dina HTTP Request-noder och bekräfta att collectionen finns.
Vanliga frågor
Cirka en timme om Drive, Qdrant och API-nycklarna är klara.
Nej. Du klistrar mest in inloggningsuppgifter, anger ett mapp-ID och testar några frågor.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Molnplaner börjar på 20 USD/månad för högre volymer. Du behöver också räkna in kostnader för OpenAI:s embedding-API (oftast några dollar i månaden för små team) och vad du än betalar för att köra Qdrant.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärt och hanterar n8n bra. Egen hosting ger obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är en vanlig justering. Ändra Google Drive-mapp-ID:t som används av “Find Drive Files” och Drive-uppdateringstriggern så att varje avdelning bara indexerar det de ska. Du kan också justera chunk-storlek genom att redigera noderna för den rekursiva text-splittern, vilket är hjälpsamt för långa SOP:ar jämfört med korta FAQ:er. Om du vill att svaret ska innehålla filnamn varje gång, använd metadata som läggs till i data loader-noderna.
Oftast handlar det om OAuth-behörigheter eller fel Google-konto. Anslut Google Drive-credentialn på nytt i n8n och bekräfta sedan att det anslutna kontot faktiskt har åtkomst till mappen du övervakar. Om det bara misslyckas på vissa filer, kontrollera filtyp och delningsinställningar eftersom vissa objekt inte laddas ned korrekt. Verifiera också att du inte klistrade in en Drive-“länk” där flödet förväntar sig ett mapp-ID.
Många, så länge din Qdrant-instans och n8n-host har resurserna. På n8n Cloud beror din månatliga gräns för körningar på plan, medan egen hosting saknar körningstak (det handlar främst om CPU/RAM). I praktiken börjar team ofta med en enda mapp med några hundra dokument och expanderar när de är nöjda med svarskvalitet och kostnader. Om du ingest:ar stora PDF:er, räkna med långsammare indexering och planera för längre körningar vid första inläsningen.
För RAG-arbete är n8n oftast ett bättre val eftersom det klarar förgreningslogik, batching och steg mot vector store utan att bli en skör kedja av betalda tasks. Du får också egen hosting, vilket spelar roll när ingest-körningar blir tunga. Zapier eller Make kan funka för flöden som “notifiera mig när en fil ändras”, men de är inte byggda kring embeddings + retrieval. En annan praktisk poäng: felsökning är enklare när allt ligger på en canvas och du kan spela upp körningar igen. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation.
Så här ska “Drive som kunskapsbas” kännas. Sätt upp det en gång, låt det uppdatera sig själv och låt avbrotten stanna där de hör hemma: i det förflutna.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.