This workflow corresponds to n8n.io template #9161 — we link there as the canonical source.
This workflow follows the Agent → Documentdefaultdataloader 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 →
{
"id": "udLJ2xzM6OGUAEQn",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Customer Support",
"tags": [],
"nodes": [
{
"id": "9f52a98d-5268-4e3a-97f3-5b8719e5aaff",
"name": "Text Classifier",
"type": "@n8n/n8n-nodes-langchain.textClassifier",
"position": [
192,
64
],
"parameters": {
"options": {},
"inputText": "={{ $json.text }}",
"categories": {
"categories": [
{
"category": "Customer Support",
"description": "An email that is related to helping out a customer. They may be asking questions about our policies or questions about product or services."
},
{
"category": "Other",
"description": "Any email is not customer support related."
}
]
}
},
"typeVersion": 1.1
},
{
"id": "3ca0071b-686d-4dea-84fd-6ed71bdfa14c",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
160,
240
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "7157699d-02ec-4d0e-b676-687fb0b25f75",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
624,
-16
],
"parameters": {
"text": "={{ $('Gmail Trigger').item.json.text }}",
"options": {
"systemMessage": "=# Overview\n\nYou are a customer support agent from Blueproof. Your role is to reply to incoming emails using your knowledgebase tool.\n\n## Output\nonly output the email body\n\n## Instructions\n-sign off as Yasser @ Blueproof\n\n## Final Notes\nif you didn't found the answer in your knowledgebase do not come up with hallusinated answer, just tell the user that you don't have the information in a proper way."
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "7bfeebf7-120a-4785-a4a5-f6cd2ef764b8",
"name": "Embeddings OpenAI",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
864,
336
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "b58e1ae7-70ab-4aa2-861e-b6177b7f2dc2",
"name": "knowledgebase",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"position": [
784,
192
],
"parameters": {
"mode": "retrieve-as-tool",
"options": {
"pineconeNamespace": "FAQ"
},
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "n8n",
"cachedResultName": "n8n"
},
"toolDescription": "call this tool to access knowledgebase"
},
"credentials": {
"pineconeApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "b1ba03dc-9d94-4233-850f-c67586428e74",
"name": "Reply to a message",
"type": "n8n-nodes-base.gmail",
"position": [
1184,
-16
],
"parameters": {
"message": "={{ $('AI Agent').item.json.output }}",
"options": {
"appendAttribution": false
},
"emailType": "text",
"messageId": "={{ $('Gmail Trigger').item.json.id }}",
"operation": "reply"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "c3810836-c0b5-448b-ab0c-7167b6ba3584",
"name": "Add label to message",
"type": "n8n-nodes-base.gmail",
"position": [
976,
-16
],
"parameters": {
"labelIds": [
"IMPORTANT"
],
"messageId": "={{ $('Gmail Trigger').item.json.id }}",
"operation": "addLabels"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "8fb33be4-21d9-4a49-9f1f-e3c89c49540e",
"name": "No Operation, do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
384,
304
],
"parameters": {},
"typeVersion": 1
},
{
"id": "9339887b-461b-4a3e-a483-1f29dd446b7a",
"name": "Google Drive Trigger",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
-208,
-592
],
"parameters": {
"event": "fileCreated",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"mode": "list",
"value": "1Z4mmP2gGcUAIHoKzN0Cjuf9r23bCx8fl",
"cachedResultUrl": "https://drive.google.com/drive/folders/1Z4mmP2gGcUAIHoKzN0Cjuf9r23bCx8fl",
"cachedResultName": "n8n"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "73189044-3324-4dff-a8cc-9174900cc0fb",
"name": "Download file",
"type": "n8n-nodes-base.googleDrive",
"position": [
0,
-592
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "009d65e5-4f02-460a-a395-2fa8eea7a70b",
"name": "Pinecone Vector Store",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"position": [
208,
-592
],
"parameters": {
"mode": "insert",
"options": {
"pineconeNamespace": "FAQ"
},
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "n8n",
"cachedResultName": "n8n"
}
},
"credentials": {
"pineconeApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "731aa45f-e2d2-405e-aebf-d796830d9ebb",
"name": "Default Data Loader",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
336,
-416
],
"parameters": {
"options": {},
"dataType": "binary",
"textSplittingMode": "custom"
},
"typeVersion": 1.1
},
{
"id": "26a54599-e00a-40c9-8b6f-8f98ec1431a7",
"name": "Recursive Character Text Splitter",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"position": [
416,
-240
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "f7447b47-e6fa-4a2f-a7c9-c313eea0bcb8",
"name": "Embeddings OpenAI1",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
160,
-368
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "f0658841-a213-4d9a-b87d-0174f2dc4bfa",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-304,
32
],
"parameters": {
"width": 256,
"content": "## AI Gmail Customer Support \nThis template auto-replies to customer emails in Gmail using AI + your knowledge base."
},
"typeVersion": 1
},
{
"id": "792141cb-cf13-4515-bd10-db61b9bf479d",
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
0,
64
],
"parameters": {
"simple": false,
"filters": {},
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "a6b06e9a-ef64-4c29-aad8-3346eb1f448b",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-176,
-336
],
"parameters": {
"color": 4,
"height": 192,
"content": "## Auto Update Knowledge Base \nWhen you add a file to a specific folder in your google drive it automatically update the vector database and add the file to the knowledge base."
},
"typeVersion": 1
},
{
"id": "37d7d970-e076-4eb1-a1e6-62fc155062fc",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-256,
-624
],
"parameters": {
"width": 848,
"height": 528,
"content": ""
},
"typeVersion": 1
},
{
"id": "48575e3f-6579-4a29-a56a-ab0c8c2e6d3e",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
112,
-32
],
"parameters": {
"width": 352,
"height": 80,
"content": "## Classification \nAI checks if the email is customer support or not."
},
"typeVersion": 1
},
{
"id": "7854ddf5-7119-4e0d-abcd-459611f97278",
"name": "OpenAI Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
576,
192
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "5d60f0df-53c7-4a1e-b3bb-c1869dd14401",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
624,
-128
],
"parameters": {
"width": 208,
"height": 96,
"content": "## AI Agent \nSearches your knowledge base and drafts a reply."
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "4c6edfde-4bb9-4b1d-ac1a-a4b62e359bee",
"connections": {
"AI Agent": {
"main": [
[
{
"node": "Add label to message",
"type": "main",
"index": 0
}
]
]
},
"Download file": {
"main": [
[
{
"node": "Pinecone Vector Store",
"type": "main",
"index": 0
}
]
]
},
"Gmail Trigger": {
"main": [
[
{
"node": "Text Classifier",
"type": "main",
"index": 0
}
]
]
},
"knowledgebase": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Text Classifier": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
],
[
{
"node": "No Operation, do nothing",
"type": "main",
"index": 0
}
]
]
},
"Embeddings OpenAI": {
"ai_embedding": [
[
{
"node": "knowledgebase",
"type": "ai_embedding",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Text Classifier",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Embeddings OpenAI1": {
"ai_embedding": [
[
{
"node": "Pinecone Vector Store",
"type": "ai_embedding",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Default Data Loader": {
"ai_document": [
[
{
"node": "Pinecone Vector Store",
"type": "ai_document",
"index": 0
}
]
]
},
"Add label to message": {
"main": [
[
{
"node": "Reply to a message",
"type": "main",
"index": 0
}
]
]
},
"Google Drive Trigger": {
"main": [
[
{
"node": "Download file",
"type": "main",
"index": 0
}
]
]
},
"Recursive Character Text Splitter": {
"ai_textSplitter": [
[
{
"node": "Default Data Loader",
"type": "ai_textSplitter",
"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.
gmailOAuth2googleDriveOAuth2ApiopenAiApipineconeApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n template demonstrates how to build an AI-powered customer support workflow that automatically handles incoming Gmail messages, classifies them, finds answers from your knowledge base, and sends a personalized reply. SaaS founders or teams who want to automate customer…
Source: https://n8n.io/workflows/9161/ — 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.
Your AI workforce is ready. Are you?
This intelligent chatbot leverages cutting-edge financial APIs and AI-driven analysis to deliver comprehensive stock research reports. Get instant access to professional-grade investment analysis that
This advanced n8n workflow automates the full lead enrichment, qualification, and personalized outreach process tailored specifically for the B2B real estate sector. Integrating top platforms like Api
This n8n template automatically classifies incoming emails (Sales, Support, Internal, Finance, Promotions) and routes them to a dedicated OpenAI LLM Agent for processing. Depending on the category, th
Automate Outreach Prospect automates finding, enriching, and messaging potential partners (like restaurants, malls, and bars) using Apify Google Maps scraping, Perplexity enrichment, OpenAI LLMs, Goog