This workflow follows the Documentdefaultdataloader → Google Drive recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"updatedAt": "2026-07-18T12:06:18.995Z",
"createdAt": "2026-07-05T13:16:13.684Z",
"id": "PF38bb0iXFIqG7al",
"name": "Google Drive PDF \u2192 Qdrant RAG Indexer",
"description": null,
"active": true,
"isArchived": false,
"nodes": [
{
"parameters": {},
"id": "22b7b813-26b0-4b7a-b956-67af72f0725d",
"name": "Run Indexer",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
4816,
1968
],
"notes": "Click 'Test workflow' to index all PDFs in your Google Drive folder."
},
{
"parameters": {
"resource": "fileFolder",
"searchMethod": "query",
"queryString": "'1kiyeVdh-lP45tH8uV-_8hpPVQc1DR_NK' in parents and mimeType = 'application/pdf' and trashed = false",
"returnAll": true,
"filter": {},
"options": {}
},
"id": "a10aad4d-2703-4328-9384-0276a64d16bd",
"name": "List All PDFs",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
5040,
1968
],
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"options": {}
},
"id": "4940c393-0e5a-40f4-a288-b71a071b6a65",
"name": "Process One by One",
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [
5264,
1968
]
},
{
"parameters": {
"operation": "download",
"fileId": {
"__rl": true,
"value": "={{ $json.id }}",
"mode": "id"
},
"options": {
"fileName": "={{ $json.name }}"
}
},
"id": "c2cfe8a8-3bd9-4921-8ad1-d3e271e077b5",
"name": "Download PDF",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
5488,
1888
],
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"mode": "insert",
"qdrantCollection": {
"__rl": true,
"value": "n8n-rag",
"mode": "list",
"cachedResultName": "n8n-rag"
},
"options": {}
},
"id": "ccc21d27-c17a-4363-ae5a-1c2e7bbd492b",
"name": "Store in Qdrant",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"typeVersion": 1,
"position": [
5744,
1968
],
"credentials": {
"qdrantApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"options": {
"metadata": {
"metadataValues": [
{
"name": "file_id",
"value": "={{ $('Process One by One').item.json.id }}"
},
{
"name": "file_name",
"value": "={{ $('Process One by One').item.json.name }}"
}
]
}
}
},
"id": "05c8e93a-2ab4-4c57-98be-ee9caece0350",
"name": "Load PDF",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"typeVersion": 1,
"position": [
5840,
2192
]
},
{
"parameters": {
"chunkOverlap": 200,
"options": {}
},
"id": "84c03f6d-334a-405e-b224-fa9bf0b75609",
"name": "Split Text",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"typeVersion": 1,
"position": [
5920,
2400
]
},
{
"parameters": {
"model": "nomic-embed-text:latest"
},
"id": "555955fd-5056-4412-bdf5-0a51f5b71b93",
"name": "Ollama Embeddings",
"type": "@n8n/n8n-nodes-langchain.embeddingsOllama",
"typeVersion": 1,
"position": [
5712,
2192
],
"credentials": {
"ollamaApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "## \ud83d\udcc2 Google Drive PDF \u2192 Qdrant RAG Indexer\n\n### Setup (do once before running):\n\n**1. Google Drive Folder:**\n- The folder is pre-configured to your PDF folder (ID: 1kiyeVdh-lP45tH8uV-_8hpPVQc1DR_NK).\n- If you ever want to change it, open the 'List All PDFs' node and change the Folder ID.\n\n**2. Set credentials on both Google Drive nodes:**\n- Click each Google Drive node and select your Google Drive credential.\n\n**3. Set Qdrant credential:**\n- URL: `http://qdrant:6333`\n- No API key is needed.\n\n**4. Verify Ollama has the model:**\n- Ensure you have pulled `nomic-embed-text`.\n\n### How it works:\n- Lists ALL PDFs in your folder\n- Downloads and processes them one by one (avoids running out of memory)\n- Splits each PDF into 1000-char chunks with 200 overlap\n- Embeds via Ollama nomic-embed-text (768 dims)\n- Stores everything in local Qdrant collection `n8n-rag`",
"height": 748,
"width": 440,
"color": 7
},
"id": "0841d1fd-4e32-4509-ae3c-767b8b510375",
"name": "Setup Instructions",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
4192,
1824
]
},
{
"parameters": {},
"type": "n8n-nodes-base.timeSaved",
"typeVersion": 1,
"position": [
6208,
1968
],
"id": "1364d950-5522-46da-8a5a-b1831624147e",
"name": "Time Saved"
}
],
"connections": {
"Run Indexer": {
"main": [
[
{
"node": "List All PDFs",
"type": "main",
"index": 0
}
]
]
},
"List All PDFs": {
"main": [
[
{
"node": "Process One by One",
"type": "main",
"index": 0
}
]
]
},
"Process One by One": {
"main": [
[],
[
{
"node": "Download PDF",
"type": "main",
"index": 0
}
]
]
},
"Download PDF": {
"main": [
[
{
"node": "Store in Qdrant",
"type": "main",
"index": 0
}
]
]
},
"Store in Qdrant": {
"main": [
[
{
"node": "Process One by One",
"type": "main",
"index": 0
},
{
"node": "Time Saved",
"type": "main",
"index": 0
}
]
]
},
"Load PDF": {
"ai_document": [
[
{
"node": "Store in Qdrant",
"type": "ai_document",
"index": 0
}
]
]
},
"Split Text": {
"ai_textSplitter": [
[
{
"node": "Load PDF",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"Ollama Embeddings": {
"ai_embedding": [
[
{
"node": "Store in Qdrant",
"type": "ai_embedding",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1",
"binaryMode": "separate",
"availableInMCP": true,
"timeSavedMode": "fixed",
"timezone": "Africa/Cairo",
"saveDataErrorExecution": "all",
"saveDataSuccessExecution": "none",
"saveExecutionProgress": false,
"saveManualExecutions": true,
"callerPolicy": "workflowsFromSameOwner"
},
"staticData": {
"node:Google Drive Trigger": {
"lastTimeChecked": "2026-07-13T19:40:10Z"
}
},
"meta": {
"templateCredsSetupCompleted": true
},
"nodeGroups": [],
"versionId": "36467f06-ee21-4e4f-92f4-45569bbf6ca4",
"activeVersionId": "36560695-2703-42a2-992e-8ad6dc3ec8a9",
"versionCounter": 128,
"triggerCount": 1,
"sourceWorkflowId": null,
"tags": [
{
"updatedAt": "2026-07-16T16:03:29.217Z",
"createdAt": "2026-07-16T16:03:29.217Z",
"id": "08f43634238e406b",
"name": "Agentic AI"
},
{
"updatedAt": "2026-07-16T16:03:28.540Z",
"createdAt": "2026-07-16T16:03:28.540Z",
"id": "90acb56ef2f84a89",
"name": "Event-Driven"
},
{
"updatedAt": "2026-07-05T20:54:10.312Z",
"createdAt": "2026-07-05T20:54:10.312Z",
"id": "YPOBiRLmef0fLiKM",
"name": "RAG"
},
{
"updatedAt": "2026-07-16T16:03:28.786Z",
"createdAt": "2026-07-16T16:03:28.786Z",
"id": "6e30f4ffb71d4b65",
"name": "Data Pipeline"
},
{
"updatedAt": "2026-07-16T16:03:29.020Z",
"createdAt": "2026-07-16T16:03:29.020Z",
"id": "9a8d1d753df54ed1",
"name": "Production Automation"
},
{
"updatedAt": "2026-07-16T16:03:28.033Z",
"createdAt": "2026-07-16T16:03:28.033Z",
"id": "07e54c18d20c43bb",
"name": "Vector Storage"
}
],
"shared": [
{
"updatedAt": "2026-07-05T13:16:13.684Z",
"createdAt": "2026-07-05T13:16:13.684Z",
"role": "workflow:owner",
"workflowId": "PF38bb0iXFIqG7al",
"projectId": "7Kuw5RaGwePDWMtJ",
"project": {
"updatedAt": "2026-06-09T16:37:14.049Z",
"createdAt": "2026-06-09T16:15:53.210Z",
"id": "7Kuw5RaGwePDWMtJ",
"name": "Sohila Abbas <sohila.k.data@gmail.com>",
"type": "personal",
"icon": null,
"description": null,
"customTelemetryTags": [],
"creatorId": "ef255f89-7c87-4d14-8714-7469755d5486"
}
}
],
"versionMetadata": {
"name": null,
"description": null
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleDriveOAuth2ApiollamaApiqdrantApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Google Drive PDF → Qdrant RAG Indexer. Uses googleDrive, vectorStoreQdrant, documentDefaultDataLoader, textSplitterRecursiveCharacterTextSplitter. Event-driven trigger; 10 nodes.
Source: https://github.com/Sohila-Khaled-Abbas/n8n-workflow-gdrive-pdf-qdrant-indexer/blob/main/workflow.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
ejemplo RAG vs CRAG. Uses googleDrive, vectorStoreQdrant, embeddingsOllama, agent. Event-driven trigger; 30 nodes.
Local RAG AI Agent. Uses memoryPostgresChat, lmChatOllama, lmOllama, toolVectorStore. Event-driven trigger; 24 nodes.
V1 ocal RAG AI Agent. Uses memoryPostgresChat, lmChatOllama, lmOllama, toolVectorStore. Event-driven trigger; 24 nodes.
V1 Local RAG AI Agent. Uses memoryPostgresChat, lmChatOllama, lmOllama, toolVectorStore. Event-driven trigger; 24 nodes.
V1 Local RAG AI Agent. Uses memoryPostgresChat, lmChatOllama, lmOllama, toolVectorStore. Event-driven trigger; 24 nodes.