邮件历史RAG
高级
这是一个Internal Wiki, AI RAG领域的自动化工作流,包含 23 个节点。主要使用 Code, Gmail, GmailTrigger, ManualTrigger, SplitInBatches 等节点。 使用Gmail、OpenAI和Qdrant向量数据库创建邮件知识库
前置要求
- •Google 账号和 Gmail API 凭证
- •OpenAI API Key
- •Qdrant 服务器连接信息
使用的节点 (23)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "7QhxjMbqHv5tk9wM",
"meta": {
"instanceId": "b50483b2122f6dc268662b45507d575d939570ea8e1e086601ebb3b6273c1cfd",
"templateCredsSetupCompleted": true
},
"name": "邮件历史 RAG",
"tags": [
{
"id": "PNmVCFjr9sq0xind",
"name": "RAG",
"createdAt": "2025-07-12T09:30:51.202Z",
"updatedAt": "2025-07-12T09:30:51.202Z"
}
],
"nodes": [
{
"id": "dec780ab-9e05-4305-ba52-8a92dfc266e7",
"name": "OpenAI 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-7040,
800
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "K8T7HIhpd7gMJG20",
"name": "OpenAi account - Remap"
}
},
"typeVersion": 1
},
{
"id": "13f21017-5470-4e0e-8d13-aea6d98c4918",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-7440,
448
],
"parameters": {
"width": 1162,
"height": 796,
"content": "# RAG AI 代理"
},
"typeVersion": 1
},
{
"id": "b6615316-94c0-4091-b6e3-8cdf64cb0902",
"name": "当点击\"测试工作流\"时",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-6048,
1472
],
"parameters": {},
"typeVersion": 1
},
{
"id": "349336cd-9373-4553-aa13-9cf6a427a0c6",
"name": "RAG 代理",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-6944,
576
],
"parameters": {
"options": {
"systemMessage": "=You are a helpful assistant that will get data from RAG and send a good response to user.\n\nToday date is this if user ask for dated or latest data: {{ $now }}\n\nSo add date when send query to vector database because I am already setting the date field in embedding."
}
},
"typeVersion": 1.7
},
{
"id": "82da160a-a572-4cdf-a260-f7a0c51a30fa",
"name": "Gmail 触发器1",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
-6064,
672
],
"parameters": {
"filters": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"credentials": {
"gmailOAuth2": {
"id": "ufYEel3Kf0MiIlZB",
"name": "Gmail account - chzainali6363@gmail.com"
}
},
"typeVersion": 1.2
},
{
"id": "954a8ea4-9e00-43b9-9fe2-6d717b6dccd7",
"name": "获取邮件数据1",
"type": "n8n-nodes-base.gmail",
"position": [
-5840,
672
],
"webhookId": "[REDACTED_WEBHOOK_ID]",
"parameters": {
"simple": false,
"options": {},
"messageId": "={{ $json.id }}",
"operation": "get"
},
"credentials": {
"gmailOAuth2": {
"id": "ufYEel3Kf0MiIlZB",
"name": "Gmail account - chzainali6363@gmail.com"
}
},
"typeVersion": 2.1
},
{
"id": "16acb16b-8d56-425a-b484-fa4ffc3f5616",
"name": "嵌入 OpenAI5",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
-5680,
912
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "K8T7HIhpd7gMJG20",
"name": "OpenAi account - Remap"
}
},
"typeVersion": 1.1
},
{
"id": "73a26bce-0df2-4755-8175-8a0e367f7418",
"name": "增强默认数据加载器3",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
-5424,
880
],
"parameters": {
"options": {
"metadata": {
"metadataValues": [
{
"name": "=data_source",
"value": "=gmail"
},
{
"name": "=created_at",
"value": "={{ $json.date }}"
}
]
}
},
"jsonData": "=Email details:\nDate: {{ $json.headers.date }}\n\nFrom Email: {{ $json.from.value[0].address }}\nFrom Name: {{ $json.from.value[0].name }}\n\nTo Email: {{ $json.to.value[0].address }}\n\nEmail Subject:\n{{ $json.subject }}\n\nEmail body:\n{{ $json.text }}",
"jsonMode": "expressionData"
},
"typeVersion": 1
},
{
"id": "262344fa-8b26-4665-b0ff-e1354e6d84eb",
"name": "便签说明4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-6128,
448
],
"parameters": {
"color": 4,
"width": 1200,
"height": 788,
"content": "# 监视触发器(邮件)- 新邮件"
},
"typeVersion": 1
},
{
"id": "c70f74e1-75ab-4ce3-9c84-f92ff1d7a762",
"name": "字符文本分割器",
"type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
"position": [
-5344,
1056
],
"parameters": {
"separator": "Email details:"
},
"typeVersion": 1
},
{
"id": "f01ccf0e-caf4-44f1-a385-a6eb2b063551",
"name": "代码",
"type": "n8n-nodes-base.code",
"position": [
-5616,
1472
],
"parameters": {
"jsCode": "const emails = $input.all().map((item) => item.json);\n\nconst extractedData = emails.map((email) => {\n // Remove line breaks and excessive spaces from body\n const cleanBody = email.text\n ?.replace(/(\\r\\n|\\n|\\r)/gm, ' ') // Replace newlines with space\n ?.replace(/\\s+/g, ' ') // Collapse multiple spaces\n ?.trim(); // Remove leading/trailing space\n\n return {\n to: email.to?.value?.[0]?.address || '',\n from: email.from?.value?.[0]?.address || '',\n fromName: email.from?.value?.[0]?.name || '',\n date: email.date || '',\n subject: email.subject || '',\n body: cleanBody || '',\n emailId: email.id || '',\n };\n});\n\nreturn extractedData;\n"
},
"typeVersion": 2
},
{
"id": "69d042bf-b75a-414e-a2e2-a62632e6aef2",
"name": "嵌入 OpenAI11",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
-5280,
1712
],
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "5200b258-2c96-4d38-9c92-b5353ada6957",
"name": "默认数据加载器",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
-5104,
1696
],
"parameters": {
"options": {
"metadata": {
"metadataValues": [
{
"name": "created_at",
"value": "={{ $json.date }}"
},
{
"name": "data_source",
"value": "gmail"
}
]
}
},
"jsonData": "=Email details:\nDate: {{ $json.date }}\n\nFrom Email: {{ $json.from }}\nFrom Name: {{ $json.fromName }}\n\nTo Email: {{ $json.to }}\n\nEmail Subject:\n{{ $json.subject }}\n\nEmail body:\n{{ $json.body }}",
"jsonMode": "expressionData"
},
"typeVersion": 1
},
{
"id": "cd126bb7-60a6-450b-b31c-cfd9517e9441",
"name": "便签11",
"type": "n8n-nodes-base.stickyNote",
"position": [
-6128,
1328
],
"parameters": {
"width": 1596,
"height": 740,
"content": "# 获取所有邮件 -> 将嵌入存储在向量数据库中"
},
"typeVersion": 1
},
{
"id": "19fe59c6-6576-453a-8098-97e47c72c033",
"name": "批量邮件",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-5424,
1472
],
"parameters": {
"options": {},
"batchSize": 50
},
"typeVersion": 3
},
{
"id": "512bb68a-94d7-4e0f-ab51-265f19d670bd",
"name": "字符文本分割器1",
"type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
"position": [
-5024,
1888
],
"parameters": {
"separator": "Email details:"
},
"typeVersion": 1
},
{
"id": "051c026e-0fd7-4182-a388-0ccd6e0c085e",
"name": "嵌入 OpenAI3",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
-6784,
1072
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "K8T7HIhpd7gMJG20",
"name": "OpenAi account - Remap"
}
},
"typeVersion": 1.1
},
{
"id": "d7481948-2972-42e9-b2ef-900c55bc6465",
"name": "Qdrant 邮件向量存储",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
-6736,
896
],
"parameters": {
"mode": "retrieve-as-tool",
"options": {},
"toolName": "emails_vector_search",
"toolDescription": "=Call this tool to perform a vector embeddings search in my e-mail database. For time-specific queries:\n1. ALWAYS include the time frame in your query (e.g., \"interviews scheduled after April 27, 2025\" or \"interviews for next week April 28-May 4, 2025\")\n2. For future events, explicitly mention \"future\" or \"upcoming\" in your query",
"qdrantCollection": {
"__rl": true,
"mode": "list",
"value": "emails_history",
"cachedResultName": "emails_history"
}
},
"typeVersion": 1.1
},
{
"id": "7cecd74a-bde6-4fcf-8622-81620c63b20f",
"name": "Qdrant 向量存储",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
-5568,
672
],
"parameters": {
"mode": "insert",
"options": {},
"qdrantCollection": {
"__rl": true,
"mode": "list",
"value": "emails_history",
"cachedResultName": "emails_history"
}
},
"typeVersion": 1.1
},
{
"id": "1e6d26d8-60e3-4128-82b4-a5e61d83cff1",
"name": "Qdrant 向量存储1",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
-5104,
1456
],
"parameters": {
"mode": "insert",
"options": {},
"qdrantCollection": {
"__rl": true,
"mode": "list",
"value": "emails_history",
"cachedResultName": "emails_history"
}
},
"typeVersion": 1.1
},
{
"id": "8b9845c3-a9e6-47a1-ae0e-8e66a15b5812",
"name": "当收到聊天消息时",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-7248,
576
],
"webhookId": "61ffbc2d-0469-49ab-8541-694f021112e6",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "2c320869-b169-4961-a8fd-5403c7a1366e",
"name": "简单记忆",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-6864,
800
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "6735edda-91ff-4872-8c13-bec68a8af925",
"name": "获取多条消息",
"type": "n8n-nodes-base.gmail",
"position": [
-5824,
1472
],
"webhookId": "778c704a-a717-45e1-adc7-f15a6426c415",
"parameters": {
"simple": false,
"filters": {},
"options": {},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"gmailOAuth2": {
"id": "ufYEel3Kf0MiIlZB",
"name": "Gmail account - chzainali6363@gmail.com"
}
},
"typeVersion": 2.1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "a81f41c7-8a71-483c-82bb-ff45081649cf",
"connections": {
"Code": {
"main": [
[
{
"node": "batch emails",
"type": "main",
"index": 0
}
]
]
},
"RAG Agent": {
"main": [
[]
]
},
"batch emails": {
"main": [
[],
[
{
"node": "Qdrant Vector Store1",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "RAG Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Get Mail Data1": {
"main": [
[
{
"node": "Qdrant Vector Store",
"type": "main",
"index": 0
}
]
]
},
"Gmail Trigger1": {
"main": [
[
{
"node": "Get Mail Data1",
"type": "main",
"index": 0
}
]
]
},
"Get many messages": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "RAG Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Embeddings OpenAI3": {
"ai_embedding": [
[
{
"node": "Qdrant Email Vector Store",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Embeddings OpenAI5": {
"ai_embedding": [
[
{
"node": "Qdrant Vector Store",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Default Data Loader": {
"ai_document": [
[
{
"node": "Qdrant Vector Store1",
"type": "ai_document",
"index": 0
}
]
]
},
"Embeddings OpenAI11": {
"ai_embedding": [
[
{
"node": "Qdrant Vector Store1",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Qdrant Vector Store1": {
"main": [
[
{
"node": "batch emails",
"type": "main",
"index": 0
}
]
]
},
"Character Text Splitter": {
"ai_textSplitter": [
[
{
"node": "Enhanced Default Data Loader3",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"Character Text Splitter1": {
"ai_textSplitter": [
[
{
"node": "Default Data Loader",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"Qdrant Email Vector Store": {
"ai_tool": [
[
{
"node": "RAG Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "RAG Agent",
"type": "main",
"index": 0
}
]
]
},
"Enhanced Default Data Loader3": {
"ai_document": [
[
{
"node": "Qdrant Vector Store",
"type": "ai_document",
"index": 0
}
]
]
},
"When clicking ‘Test workflow’": {
"main": [
[
{
"node": "Get many messages",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 内部知识库, AI RAG 检索增强
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
文档 RAG 和聊天代理:Google Drive 到 Qdrant 与 Mistral OCR
文档 RAG 和聊天代理:Google Drive 到 Qdrant 与 Mistral OCR
If
Set
Code
+16
40 节点DIGITAL BIZ TECH
内部知识库
产品推荐RAG
使用OpenAI、Qdrant和Google表格RAG将医疗症状匹配到产品
Google Sheets
Manual Trigger
Split In Batches
+9
17 节点Zain Ali
客户培育
🤖 使用Gemini RAG流水线构建文档专家聊天机器人
使用OpenAI RAG流水线构建n8n文档专家聊天机器人
Set
Html
Filter
+16
46 节点Ayham
内部知识库
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
递归混合RAG 1
使用Google Drive、OpenAI和Gemini RAG进行递归分块的文档处理
Set
Code
Switch
+18
25 节点Mohsin Ali
内部知识库
新邮件的Email RAG
使用Gmail、OpenAI GPT和PGVector的实时邮件RAG助手
Gmail
Gmail Trigger
Agent
+7
13 节点Zain Ali
个人效率