Ditt team har redan svaren. De är bara begravda i Drive-mappar, gamla PDF:er och skärmdumpar som ingen ens minns finns. Så samma frågor fortsätter att komma tillbaka i Slack, mejl och möten, och någon slutar med att agera mänsklig sökmotor.
Den här uppsättningen för Drive Qdrant answers träffar marketing ops och team leads först, eftersom det är de som får “var finns senaste dokumentet?” hela dagen. Byråer känner också av det när kundkunskap ligger i en delad Drive och onboarding blir en skattjakt. Resultatet är enkelt: ditt team ställer en fråga och får ett pålitligt svar snabbt, utan att du behöver gräva i filer.
Nedan ser du hur arbetsflödet gör en Google Drive-mapp till en sökbar Qdrant-kunskapsbas och sedan lägger till en chattagent som hämtar rätt utdrag (och som valfritt kan kolla webben när Drive inte har svaret).
Så här fungerar den här automatiseringen
Hela n8n-arbetsflödet, från trigger till slutligt resultat:
n8n Workflow Template: Google Drive + Qdrant: sökbara svar för team
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n6@{ icon: "mdi:robot", form: "rounded", label: "Default Data Loader", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Character Text Splitter", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "Google Drive", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "Google Drive1", 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/>Mistral Upload"]
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/>Mistral Signed URL"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Mistral DOC OCR"]
n13@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n14@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI", pos: "b", h: 48 }
n15@{ icon: "mdi:cube-outline", form: "rounded", label: "Qdrant Vector Store1", pos: "b", h: 48 }
n16@{ icon: "mdi:brain", form: "rounded", label: "Mistral Cloud Chat Model", pos: "b", h: 48 }
n18@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over each file in gdriv..", pos: "b", h: 48 }
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "add metadata", pos: "b", h: 48 }
n20@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If NODE", pos: "b", h: 48 }
n21@{ icon: "mdi:robot", form: "rounded", label: "based file name it assign di..", pos: "b", h: 48 }
n22@{ icon: "mdi:swap-vertical", form: "rounded", label: "set all metadata", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>clean output"]
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/code.svg' width='40' height='40' /></div><br/>convert data into smaller ch.."]
n20 --> n21
n20 --> n18
n8 --> n18
n19 --> n9
n23 --> n24
n9 --> n10
n10 --> n11
n12 --> n20
n22 --> n23
n14 -.-> n15
n11 --> n12
n6 -.-> n15
n15 --> n18
n7 -.-> n6
n16 -.-> n21
n24 --> n15
n13 --> n8
n18 --> n19
n21 --> n22
end
subgraph sg1["When chat message received Flow"]
direction LR
n0@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI1", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model1", pos: "b", h: 48 }
n2@{ icon: "mdi:wrench", form: "rounded", label: "Web Search ", pos: "b", h: 48 }
n3@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory1", pos: "b", h: 48 }
n4@{ icon: "mdi:cube-outline", form: "rounded", label: "Qdrant Vector Store", pos: "b", h: 48 }
n5@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n17@{ icon: "mdi:robot", form: "rounded", label: "ai chat agent", pos: "b", h: 48 }
n2 -.-> n17
n3 -.-> n17
n0 -.-> n4
n1 -.-> n17
n4 -.-> n17
n5 --> n17
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 n13,n5 trigger
class n6,n7,n21,n17 ai
class n16,n1 aiModel
class n2 ai
class n3 ai
class n15,n4 ai
class n14,n0 ai
class n20 decision
class n10,n11,n12 api
class n23,n24 code
classDef customIcon fill:none,stroke:none
class n10,n11,n12,n23,n24 customIcon
Problemet: din “kunskapsbas” är utspridd i Drive
Google Drive är bra för lagring. Det är mindre bra för svar. Du kan söka på filnamn, kanske lite text, och ändå måste du öppna tre dokument för att hitta det enda stycket som spelar roll. Samtidigt ställer nyanställda samma onboarding-frågor, support ber om den “godkända” versionen av en policy och marknad undrar vilken deck som är okej att skicka. Även när folk hittar svaret blir det inkonsekvent, eftersom alla hänvisar till olika dokumentrevisioner. Kostnaden är ärligt talat inte bara tid. Det är de ständiga kontextbytena och den tysta förlusten av förtroende för “våra dokument”.
Friktionen växer över tid. Här är var det fallerar i verkliga team.
- Folk slösar cirka 10 minuter per fråga genom att hoppa mellan Drive-sökresultat och öppna flikar.
- Onboarding går långsammare eftersom tyst kunskap bor i PDF:er, inte på ett ställe där nykomlingar kan ställa frågor.
- Svaren glider isär eftersom olika kollegor refererar till olika versioner av samma dokument.
- Ämnesexperter blir avbrutna hela dagen, vilket skjuter riktigt arbete till kvällar och helger.
Lösningen: Google Drive-dokument omvandlade till en chattredo Qdrant-kunskapsbas
Det här arbetsflödet ger dig ett “chatta med din Drive-mapp”-system utan att du behöver bygga en egen app. Du pekar det mot en Google Drive-mapp, kör inläsningsflödet en gång, och det hämtar ner varje fil för att extrahera text (inklusive OCR för PDF:er och bilder). Sedan genererar det användbar metadata (som dokumenttyp, projekt eller vem det är tilldelat), rensar och chunkar texten, och lagrar dessa chunkar som embeddings i en Qdrant-collection. Efter det lyssnar ett andra flöde på chattmeddelanden. När någon ställer en fråga söker agenten först i Qdrant, använder de mest relevanta utdragen som kontext och svarar med klarspråk. Om Drive inte har svaret kan arbetsflödet erbjuda en valfri webbsökning via Tavily för att fylla luckor.
Arbetsflödet startar antingen med en manuell inläsningskörning eller en trigger från ett chattmeddelande. Under inläsningen loopar det igenom Drive-filer, kör OCR och metadataextraktion med Mistral, och embed:ar samt lägger in i Qdrant. Under chatt hämtar det från Qdrant och svarar, med webbsökning som fallback vid behov.
Vad du får: automatisering vs. resultat
| Det här automatiserar arbetsflödet | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att ditt team får 15 “var hittar jag…”-frågor i veckan, och att varje tar cirka 10 minuter att söka i Drive, öppna dokument och svara. Det är ungefär 2,5 timmar ren uppslagstid, plus avbrott. Med det här arbetsflödet körs inläsningen i bakgrunden (en manuell körning för att starta, sedan kör du om när du lägger till dokument), och varje fråga blir ett snabbt chattmeddelande som ger ett svar på cirka en minut. Du får tillbaka runt 2 timmar i veckan, och svaren beror inte på vem som är online.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Google Drive för att hämta filer från en mapp
- Qdrant för att lagra embeddings och sökbara chunkar
- Mistral AI API-nyckel (hämta den i din Mistral-kontos dashboard)
- OpenAI API-nyckel (hämta den på sidan för OpenAI API-nycklar)
- Tavily API-nyckel (hämta den från Tavily för att aktivera webbsökning)
Kunskapsnivå: Medel. Du kopplar in credentials, klistrar in ett mapp-ID och verifierar några node-inställningar som headers och collections-namn.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så här fungerar det
En manuell inläsningskörning bygger din kunskapsbas. Du startar arbetsflödet, det listar filer från en specifik Google Drive-mapp och loopar sedan igenom dem i batchar så att det inte sätter igen på en stor katalog.
Varje fil laddas ner och “läses”, även om den inte är text. Arbetsflödet skickar filen genom Mistrals OCR-process (uppladdning, signerad URL, OCR-request) och kontrollerar sedan att OCR-svaret är giltigt innan det går vidare.
Texten rensas, etiketteras och förbereds för hämtning. En metadataextraktor tilldelar användbara fält som document_type och project, och sedan normaliserar kodnoder payloaden och delar upp innehållet i hanterbara chunkar (det här arbetsflödet använder chunkar på cirka 1000 tecken).
Qdrant blir single source of truth för sök och svar. OpenAI-embeddings genereras för varje chunk och läggs in i en Qdrant-collection (exempelnamnet är “docaiauto”), som chattagenten frågar mot senare.
Du kan enkelt ändra chunkstorlek och metadatafält så att det passar dina dokument och hur ditt team söker. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera chatttriggern
Sätt upp chattens ingångspunkt som routar användarmeddelanden till AI-orkestreringslagret.
- Lägg till och öppna Chat Message Trigger.
- Aktivera publik åtkomst genom att ställa in Public på
true. - Bekräfta kopplingsflödet: Chat Message Trigger → AI Chat Orchestrator.
Steg 2: Konfigurera den manuella triggern för inhämtning
Aktivera en manuell körväg för att hämta in och indexera dokument från Google Drive.
- Lägg till och öppna Manual Run Trigger för att starta inhämtningens flöde.
- Säkerställ att flödet är kopplat: Manual Run Trigger → Drive File Listing.
Steg 3: Anslut Google Drive och filbearbetning
Hämta filer från Drive, iterera över dem och fånga metadata för efterföljande OCR.
- Öppna Drive File Listing och ställ in Resource på
fileFolderoch Search Method påquery. - Ställ in Filter → Folder ID till er Drive-mapp-URL i uttrycksfältet (nuvarande värde är
=). - Autentiseringsuppgifter krävs: Anslut era
googleDriveOAuth2Api-uppgifter i Drive File Listing och Drive File Download. - I Append File Metadata bekräftar ni att tilldelningarna använder uttryck som
{{ $json.id }},{{ $json.name }},{{ $json.webViewLink }}och{{ $json.modifiedTime }}. - I Drive File Download ställer ni in Operation på
downloadoch sätter File ID till{{ $('Append File Metadata').item.json.file_url }}.
file_url.Steg 4: Konfigurera Mistral OCR-pipeline
Ladda upp filer till Mistral, generera en signerad URL och kör OCR för att extrahera text.
- Öppna Mistral File Upload och behåll URL som
https://api.mistral.ai/v1/filesmed Method satt tillPOSToch Content Type tillmultipart-form-data. - Autentiseringsuppgifter krävs: Anslut era
mistralCloudApi-uppgifter i Mistral File Upload, Mistral Signed Link, Mistral OCR Request och Mistral Chat Model. - I Mistral Signed Link ställer ni in URL på
=https://api.mistral.ai/v1/files/{{ $json.id }}/urloch behåller frågeparametern expiry på24. - I Mistral OCR Request ställer ni in JSON Body till
{ "model": "mistral-ocr-latest", "document": { "type": "document_url", "document_url": "{{ $json.url }}" }, "include_image_base64": true }. - I Validate OCR Output säkerställer ni att villkoret kontrollerar
{{ $json.data[0].parseJson().skipped }}med Not Exists för att bara släppa igenom giltiga OCR-resultat.
Steg 5: Extrahera metadata och normalisera för indexering
Extrahera dokumentmetadata och normalisera den sedan till ett konsekvent format för embedding och lagring.
- Öppna Derive Document Metadata och bekräfta att Text är satt till
{{ $json.pages[0].markdown }}. - Säkerställ att Mistral Chat Model är ansluten som språkmodell för Derive Document Metadata; lägg till autentiseringsuppgifter i Mistral Chat Model (överordnad nod), inte i extraktorn.
- I Assemble Metadata Fields verifierar ni att uttrycken mappar fält som
{{ $('Drive File Download').item.json.file_title }}och{{ $('Validate OCR Output').item.json.pages[0].markdown }}. - Öppna Normalize Output Payload och behåll JavaScript-koden som mappar till
contentochmetadata(observera att nyckeln" source"innehåller ett inledande blanksteg).
" source" i Normalize Output Payload innehåller ett inledande blanksteg. Om ni tar bort det måste ni uppdatera alla referenser som förväntar sig exakt denna nyckel.Steg 6: Dela upp texten i chunkar och infoga i Qdrant
Dela upp dokument i chunkar, skapa embeddings och infoga i Qdrant för återhämtning.
- I Segment Text Chunks behåller ni chunk-konfigurationen med
chunkSize = 1000ochchunkOverlap = 100. - Autentiseringsuppgifter krävs: Anslut era
qdrantApi-uppgifter i Qdrant Insert Store och Qdrant Retrieval Tool. - Bekräfta att OpenAI Embedding Generator är ansluten som embeddingmodell för Qdrant Insert Store; lägg till autentiseringsuppgifter i OpenAI Embedding Generator (överordnad nod), inte i lagringsnoden.
- I Qdrant Insert Store behåller ni Mode som
insertoch Embedding Batch Size som=200. - I Standard Document Loader bekräftar ni metadatauttryck som
{{ $('Assemble Metadata Fields').item.json["Document name"] }}och{{ $('Drive File Download').item.json.file_url }}.
updatedText men definierar bara text. Om chunkarna är tomma, ersätt updatedText med text.Steg 7: Konfigurera AI-chattorkestrering och verktyg
Konfigurera chatboten så att den använder Qdrant-återhämtning, OpenAI-embeddings och valfri extern webbsökning.
- Öppna AI Chat Orchestrator och granska System Message för era önskade regler för återhämtning och svar.
- Autentiseringsuppgifter krävs: Anslut era
openAiApi-uppgifter i OpenAI Chat Model Core, som är kopplad till AI Chat Orchestrator som språkmodell. - Säkerställ att Qdrant Retrieval Tool är ansluten till AI Chat Orchestrator och använder
docaiautoför Qdrant Collection. - Säkerställ att OpenAI Embedding Tool A är ansluten till Qdrant Retrieval Tool för embeddings; lägg till autentiseringsuppgifter i OpenAI Embedding Tool A (överordnad nod), inte i verktyget.
- I External Web Lookup behåller ni URL som
https://api.tavily.com/searchoch JSON Body-uttrycket som konfigurerat med{query}.
[CONFIGURE_YOUR_TOKEN]. Ersätt detta med er faktiska Tavily API-nyckel innan ni aktiverar webbsökning.Steg 8: Granska stöd-/platshållarnoder
Bekräfta eventuella icke-exekverande eller platshållarnoder och behåll dem för framtida utbyggnad eller tydlighet i dokumentationen.
- Behåll Flowpast Branding som en dokumentations-anteckning (påverkar inte körning).
- Granska Unnamed (okänd nod) som en platshållare; den påverkar inte exekveringen om den inte kopplas in.
- Bekräfta att Character Chunk Splitter är länkat in i Standard Document Loader som AI-textsplitter.
Steg 9: Testa och aktivera ert arbetsflöde
Validera både inhämtningens flöde och chattflödet innan ni slår på produktion.
- Klicka på Execute Workflow och kör Manual Run Trigger för att bekräfta att filer går igenom Drive File Listing → Qdrant Insert Store.
- Verifiera lyckad OCR och metadataextraktion genom att kontrollera output i Validate OCR Output och Assemble Metadata Fields.
- Testa chattflödet genom att skicka ett meddelande till Chat Message Trigger och bekräfta att AI Chat Orchestrator returnerar ett svar med källor.
- När testerna passerar växlar ni arbetsflödet till Active för produktion.
Vanliga fallgropar
- Google Drive-credentials kan löpa ut eller sakna filbehörigheter. Om inläsningen plötsligt returnerar noll filer, kontrollera först åtkomsten för Google-kontot och mappens delningsinställningar.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera output för alltid.
Vanliga frågor
Räkna med cirka en timme om du redan har dina API-nycklar.
Nej. Du kommer mest att koppla konton och klistra in ID:n/nycklar i rätt noder.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på $20/månad för högre volym. Du behöver också räkna in kostnader för OpenAI-embeddings (oftast några dollar i månaden för små teamdokument) plus Mistral OCR och Tavily om du aktiverar webbsökning.
Två alternativ: n8n Cloud (hanterat, enklast setup) 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 serveradministration.
Ja, men du vill göra det med eftertanke. Det enklaste är att duplicera noden “Drive File Listing” per mapp och slå ihop fillistorna innan batch-loopen. Om du föredrar ett enda arbetsflöde kan du skicka in ett mapp-ID till inläsningsflödet (från ett kalkylark, en webhook eller manuell input) och återanvända samma pipeline. Vanliga anpassningar är att byta Qdrant-collection per mapp, lägga till ett filter för “uppdaterad sedan senaste körning” och utöka metadatafält i extraktorn “Derive Document Metadata”.
Oftast handlar det om behörigheter. Det anslutna Google-kontot behöver åtkomst till målmappen och dess innehåll, och delade enheter kan kräva extra scopes beroende på hur din admin har låst ner saker. Kontrollera också att mapp-ID:t är korrekt (ett enda fel tecken ger inget resultat) och bekräfta att credentials som valts i varje Google Drive-nod matchar samma konto.
Några tusen dokument är normalt, och den praktiska gränsen beror på din n8n-exekveringskapacitet och hur du dimensionerar Qdrant.
För RAG-liknande arbetsflöden är n8n oftast bättre, eftersom du inte bara flyttar data mellan appar. Du loopar igenom filer, validerar OCR-output, chunkar text, skapar embeddings och skriver in i en vektordatabas, och kör sedan ett andra chattflöde som hämtar och svarar. Zapier och Make klarar enkla “ny fil → skicka notis”-flöden, men den här typen av logik blir snabbt klumpig och dyr. n8n ger dig också self-hosting, vilket spelar roll när du börjar läsa in många dokument. Vill du ha en second opinion innan du bestämmer dig, prata med en automationsexpert.
När det här väl rullar slutar Drive vara en dumpingplats och börjar fungera som en riktig intern wiki. Sätt upp det, mata in din mapp och låt arbetsflödet ta hand om återkommande frågor.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.