This workflow corresponds to n8n.io template #5010 — we link there as the canonical source.
This workflow follows the Agent → Chat Trigger 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 →
{
"nodes": [
{
"id": "83ed351e-90e8-458f-a01b-73001ef1800f",
"name": "Upload your file here",
"type": "n8n-nodes-base.formTrigger",
"position": [
220,
-120
],
"parameters": {
"options": {},
"formTitle": "Upload your data to test RAG",
"formFields": {
"values": [
{
"fieldType": "file",
"fieldLabel": "Upload your file(s)",
"requiredField": true,
"acceptFileTypes": ".pdf, .csv"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "26d63e24-2592-41f9-9b4b-edab81e99f21",
"name": "Embeddings OpenAI",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
860,
360
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "3a69c8a7-bf95-4de2-84b0-ae2cc3d2e4e7",
"name": "Default Data Loader",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
660,
40
],
"parameters": {
"options": {},
"dataType": "binary"
},
"typeVersion": 1.1
},
{
"id": "0b42832b-c9e8-4627-b36c-94fc5e242b33",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-320,
-180
],
"parameters": {
"color": 4,
"width": 440,
"height": 300,
"content": "### Readme\nLoad your data into a vector database with the \ud83d\udcda **Load Data** flow, and then use your data as chat context with the \ud83d\udc15 **Retriever** flow.\n\n**Quick start**\n1. Click on the `Execute Workflow` button to run the \ud83d\udcda **Load Data** flow.\n2. Click on `Open Chat` button to run the \ud83d\udc15 **Retriever** flow. Then ask a question about content from your document(s)\n\n\nFor more info, check our [docs on RAG in n8n](https://docs.n8n.io/advanced-ai/rag-in-n8n/)"
},
"typeVersion": 1
},
{
"id": "f902ab8f-4620-4a95-86f7-c5857c4d6c4f",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
-180
],
"parameters": {
"color": 7,
"width": 700,
"height": 460,
"content": "### \ud83d\udcda Load Data Flow"
},
"typeVersion": 1
},
{
"id": "0f4185ea-d7a9-44a9-a824-98f9dc2c2a5d",
"name": "Insert Data to Store",
"type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
"position": [
400,
-120
],
"parameters": {
"mode": "insert",
"memoryKey": {
"__rl": true,
"mode": "list",
"value": "vector_store_key",
"cachedResultName": "vector_store_key"
}
},
"typeVersion": 1.2
},
{
"id": "ce86b41b-7e1b-458f-ab13-d6b187854ae8",
"name": "Query Data Tool",
"type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
"position": [
1280,
80
],
"parameters": {
"mode": "retrieve-as-tool",
"toolName": "knowledge_base",
"memoryKey": {
"__rl": true,
"mode": "list",
"value": "vector_store_key"
},
"toolDescription": "Use this knowledge base to answer questions from the user"
},
"typeVersion": 1.2
},
{
"id": "0039537b-558c-4fe8-9716-f8aa13676f4a",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1280,
-140
],
"parameters": {
"options": {}
},
"typeVersion": 2
},
{
"id": "2669a65e-f0f3-45aa-95c0-621b15a4fc67",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
1060,
-140
],
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "d43cf585-4192-4f53-9532-4677923289ba",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1060,
80
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "3d1b3f5a-bc35-4739-a618-9c85820d39a0",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
940,
-180
],
"parameters": {
"color": 7,
"width": 680,
"height": 460,
"content": "### \ud83d\udc15 2. Retriever Flow"
},
"typeVersion": 1
},
{
"id": "8d4c68cf-64d1-4b3a-bb19-2f003303c1df",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1000,
320
],
"parameters": {
"color": 4,
"width": 320,
"height": 240,
"content": "### Embeddings\n\nThe Insert and Retrieve operation use the same embedding node.\n\nThis is to ensure that they are using the **exact same embeddings and settings**.\n\nDifferent embeddings might not work at all, or have unintended consequences.\n"
},
"typeVersion": 1
}
],
"connections": {
"Query Data Tool": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Embeddings OpenAI": {
"ai_embedding": [
[
{
"node": "Insert Data to Store",
"type": "ai_embedding",
"index": 0
},
{
"node": "Query Data Tool",
"type": "ai_embedding",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Default Data Loader": {
"ai_document": [
[
{
"node": "Insert Data to Store",
"type": "ai_document",
"index": 0
}
]
]
},
"Upload your file here": {
"main": [
[
{
"node": "Insert Data to Store",
"type": "main",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
}
}
}
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.
openAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This template quickly shows how to use RAG in n8n.
Source: https://n8n.io/workflows/5010/ — 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.
This workflow implements a complete Retrieval-Augmented Generation (RAG) knowledge assistant with built-in document ingestion, conversational AI, and automated analytics using n8n, OpenAI, and Pinecon
This is a template for n8n's evaluation feature.
The scoring approach is adapted from https://cloud.google.com/vertex-ai/generative-ai/docs/models/metrics-templates#pointwise_groundedness This evaluation works best for an agent that requires documen
An upgraded Retrieval-Augmented Generation (RAG) chatbot built in n8n that lets users ask questions via Telegram and receive accurate answers from uploaded PDFs. It embeds documents using OpenAI and b
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.