This workflow follows the Documentdefaultdataloader → OpenAI Embeddings 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 →
{
"name": "Knowledge ingestion",
"nodes": [
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "58cd871e-7c2b-45e9-a5f3-4bd1f7531b03",
"name": "text",
"value": "=title : {{ $json.title }} | abstract : {{ $json.abstract }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-160,
656
],
"id": "47fd7dda-960c-41b9-90fd-573b4deaa83a",
"name": "[Transform] Format Title & Abstract"
},
{
"parameters": {
"textSplittingMode": "custom",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"typeVersion": 1.1,
"position": [
200,
888
],
"id": "608531a3-434c-4349-a2d8-4de42b0e4230",
"name": "[Load] Convert to Documents"
},
{
"parameters": {
"chunkSize": 800,
"chunkOverlap": 100,
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"typeVersion": 1,
"position": [
280,
1096
],
"id": "73ac8109-df45-4e8b-ae56-95cb2edbf82a",
"name": "[Split] Chunk Text (800/100)"
},
{
"parameters": {
"mode": "insert",
"qdrantCollection": {
"__rl": true,
"value": "my_rag",
"mode": "list",
"cachedResultName": "my_rag"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"typeVersion": 1.3,
"position": [
96,
656
],
"id": "b825f9b6-9e20-431e-98b3-a1d4aad745ef",
"name": "[Store] Insert to Vector DB",
"credentials": {
"qdrantApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"typeVersion": 1.2,
"position": [
72,
888
],
"id": "299aa97f-34ce-4b81-a252-0df6b28c3309",
"name": "[Embed] Generate Vectors",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"pollTimes": {
"item": [
{
"mode": "everyHour"
}
]
},
"documentId": "={{ $env.GOOGLE_SHEETS_ID }}",
"sheetName": "={{ $env.GOOGLE_SHEETS_SHEET_NAME || \"Sheet1\" }}",
"event": "rowAdded",
"options": {}
},
"type": "n8n-nodes-base.googleSheetsTrigger",
"typeVersion": 1,
"position": [
-384,
656
],
"id": "50ed2095-a3c4-48af-8bc2-da0d25f29e81",
"name": "[Trigger] Watch New Paper",
"credentials": {
"googleSheetsTriggerOAuth2Api": {
"name": "<your credential>"
}
}
}
],
"connections": {
"[Transform] Format Title & Abstract": {
"main": [
[
{
"node": "[Store] Insert to Vector DB",
"type": "main",
"index": 0
}
]
]
},
"[Load] Convert to Documents": {
"ai_document": [
[
{
"node": "[Store] Insert to Vector DB",
"type": "ai_document",
"index": 0
}
]
]
},
"[Split] Chunk Text (800/100)": {
"ai_textSplitter": [
[
{
"node": "[Load] Convert to Documents",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"[Embed] Generate Vectors": {
"ai_embedding": [
[
{
"node": "[Store] Insert to Vector DB",
"type": "ai_embedding",
"index": 0
}
]
]
},
"[Trigger] Watch New Paper": {
"main": [
[
{
"node": "[Transform] Format Title & Abstract",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1",
"binaryMode": "separate",
"availableInMCP": false
},
"meta": {
"templateCredsSetupCompleted": false
},
"nodeGroups": [],
"tags": []
}
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.
googleSheetsTriggerOAuth2ApiopenAiApiqdrantApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Knowledge ingestion. Uses documentDefaultDataLoader, textSplitterRecursiveCharacterTextSplitter, vectorStoreQdrant, embeddingsOpenAi. Event-driven trigger; 6 nodes.
Source: https://github.com/mryusefi/rag-chatbot-qdrant/blob/main/knowledge-ingestion.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.
simple_vector_db. Uses googleDriveTrigger, googleDrive, vectorStoreQdrant, embeddingsOpenAi. Event-driven trigger; 13 nodes.
RAG Agent. Uses vectorStoreQdrant, documentDefaultDataLoader, agent, chatTrigger. Event-driven trigger; 12 nodes.
Upload Brochures to Qdrant (Manual Trigger). Uses googleDrive, vectorStoreQdrant, embeddingsOpenAi, documentDefaultDataLoader. Event-driven trigger; 8 nodes.
Agent IA Projet Client. Uses executeWorkflowTrigger, lmChatOpenAi, toolWorkflow, vectorStoreQdrant. Event-driven trigger; 79 nodes.
Build a powerful, customizable AI chatbot for your WordPress website that intelligently retrieves posts, answers questions, and engages in natural conversations. This complete solution handles content