This workflow follows the Agent → Chainllm 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": "q8IFGLeOCGSfoWZu",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Email AI Auto-responder. Summerize and send email",
"tags": [],
"nodes": [
{
"id": "59885699-0f6c-4522-acff-9e28b2a07b82",
"name": "Email Trigger (IMAP)",
"type": "n8n-nodes-base.emailReadImap",
"position": [
-440,
-20
],
"parameters": {
"options": {}
},
"credentials": {
"imap": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "b268ab9d-b2e3-46e6-b7ae-70aff0b5484d",
"name": "Markdown",
"type": "n8n-nodes-base.markdown",
"position": [
-220,
-20
],
"parameters": {
"html": "={{ $json.textHtml }}",
"options": {}
},
"typeVersion": 1
},
{
"id": "13c2d151-6f59-4e1f-a174-02d4d0bcaefd",
"name": "DeepSeek R1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-20,
160
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "deepseek/deepseek-r1:free",
"cachedResultName": "deepseek/deepseek-r1:free"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "8149e40d-64e6-4fb9-aebc-2a2483961f07",
"name": "Send Email",
"type": "n8n-nodes-base.emailSend",
"position": [
500,
340
],
"parameters": {
"html": "={{ $json.text }}",
"options": {},
"subject": "=Re: {{ $('Email Trigger (IMAP)').item.json.subject }}",
"toEmail": "={{ $('Email Trigger (IMAP)').item.json.from }}",
"fromEmail": "={{ $('Email Trigger (IMAP)').item.json.to }}"
},
"credentials": {
"smtp": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "633f0ce9-04ff-4653-8bbc-7457ba0d18bd",
"name": "Qdrant Vector Store",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
-320,
600
],
"parameters": {
"mode": "retrieve-as-tool",
"options": {},
"toolName": "company_knowladge_base",
"toolDescription": "Extracts information regarding the request made.",
"qdrantCollection": {
"__rl": true,
"mode": "id",
"value": "=COLLECTION"
},
"includeDocumentMetadata": false
},
"credentials": {
"qdrantApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "20daf5d3-dc9c-4fad-9f2f-98d86bc1660c",
"name": "Embeddings OpenAI",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
-340,
760
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "67699bca-4096-4259-bbd4-51a879539aca",
"name": "Email Classifier",
"type": "@n8n/n8n-nodes-langchain.textClassifier",
"position": [
360,
-20
],
"parameters": {
"options": {
"fallback": "other",
"multiClass": false,
"enableAutoFixing": true,
"systemPromptTemplate": "Please classify the text provided by the user into one of the following categories: {categories}, and use the provided formatting instructions below. Don't explain, and only output the json.\n"
},
"inputText": "=You must classify the following email::\n\n{{ $json.response.text }}",
"categories": {
"categories": [
{
"category": "Company info request",
"description": "Company info request"
}
]
}
},
"typeVersion": 1
},
{
"id": "9f7742e9-87d5-40b9-9129-0777d8a37933",
"name": "Email Summarization Chain",
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
"position": [
0,
-20
],
"parameters": {
"options": {
"binaryDataKey": "={{ $json.data }}",
"summarizationMethodAndPrompts": {
"values": {
"prompt": "=Write a concise summary of the following in max 100 words:\n\n\"{{ $json.data }}\"\n\nDo not enter the total number of words used.",
"combineMapPrompt": "=Write a concise summary of the following in max 100 words:\n\n\"{{ $json.data }}\"\n"
}
}
},
"operationMode": "nodeInputBinary"
},
"typeVersion": 2
},
{
"id": "e2d404c0-2aad-407d-b75e-5ef0c5105c0e",
"name": "Write email",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-440,
340
],
"parameters": {
"text": "=Write the text to reply to the following email:\n\n{{ $json.response.text }}",
"options": {
"systemMessage": "You are an expert at answering emails. You need to answer them professionally based on the information you have. This is a business email. Be concise and never exceed 100 words."
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "3786c2de-c5cb-4233-826e-7265f2bccbdb",
"name": "Review email",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
40,
340
],
"parameters": {
"text": "=Review at the following email:\n\n{{ $json.output }}",
"messages": {
"messageValues": [
{
"message": "=If you are an expert in reviewing emails before sending them. You need to review and structure them in such a way that you can send them. It must be in HTML format and you can insert (if you think it is appropriate) only HTML characters such as <br>, <b>, <i>, <p> where necessary.\n\nNon superare le 100 parole."
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.5
},
{
"id": "baf60eba-5e7b-467f-b27e-1388a91622d0",
"name": "When clicking \u2018Test workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-500,
-980
],
"parameters": {},
"typeVersion": 1
},
{
"id": "77e6160f-20a7-4a75-9fef-bc875b953a16",
"name": "Create collection",
"type": "n8n-nodes-base.httpRequest",
"position": [
-200,
-1120
],
"parameters": {
"url": "https://QDRANTURL/collections/COLLECTION",
"method": "POST",
"options": {},
"jsonBody": "{\n \"filter\": {}\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "ab7764d1-531c-4281-8b89-015fb3f5e780",
"name": "Refresh collection",
"type": "n8n-nodes-base.httpRequest",
"position": [
-200,
-860
],
"parameters": {
"url": "https://QDRANTURL/collections/COLLECTION/points/delete",
"method": "POST",
"options": {},
"jsonBody": "{\n \"filter\": {}\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "cd3eaa81-0f94-484b-b0c2-ecf0ca4541dc",
"name": "Get folder",
"type": "n8n-nodes-base.googleDrive",
"position": [
20,
-860
],
"parameters": {
"filter": {
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive",
"cachedResultUrl": "https://drive.google.com/drive/my-drive",
"cachedResultName": "My Drive"
},
"folderId": {
"__rl": true,
"mode": "id",
"value": "=test-whatsapp"
}
},
"options": {},
"resource": "fileFolder"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "b39ecd2d-4d5b-4885-86a9-2cfe9f6074ef",
"name": "Download Files",
"type": "n8n-nodes-base.googleDrive",
"position": [
240,
-860
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {
"googleFileConversion": {
"conversion": {
"docsToFormat": "text/plain"
}
}
},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "8171b8f2-998d-4d72-ac28-524daae4a2d7",
"name": "Default Data Loader",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
620,
-660
],
"parameters": {
"options": {},
"dataType": "binary"
},
"typeVersion": 1
},
{
"id": "ec6737ad-3fbe-4864-9df8-44f82d6f2c5c",
"name": "Token Splitter",
"type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter",
"position": [
600,
-500
],
"parameters": {
"chunkSize": 300,
"chunkOverlap": 30
},
"typeVersion": 1
},
{
"id": "57b6a4f3-e935-4058-bfdf-309d606c0ca9",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
-1180
],
"parameters": {
"color": 6,
"width": 880,
"height": 220,
"content": "# STEP 1\n\n## Create Qdrant Collection\nChange:\n- QDRANTURL\n- COLLECTION"
},
"typeVersion": 1
},
{
"id": "21e2326a-138d-46f3-a849-a80aa7917da9",
"name": "Qdrant Vector Store1",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
480,
-860
],
"parameters": {
"mode": "insert",
"options": {},
"qdrantCollection": {
"__rl": true,
"mode": "id",
"value": "=COLLECTION"
}
},
"credentials": {
"qdrantApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "0818fb6a-2adf-4725-90a4-11cdd7d14036",
"name": "Embeddings OpenAI1",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
500,
-620
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.1
},
{
"id": "8949d938-2743-45d6-b2ad-ce4ac139e0a3",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-220,
-920
],
"parameters": {
"color": 4,
"width": 620,
"height": 400,
"content": "# STEP 2\n\n\n\n\n\n\n\n\n\n\n\n\n## Documents vectorization with Qdrant and Google Drive\nChange:\n- QDRANTURL\n- COLLECTION"
},
"typeVersion": 1
},
{
"id": "36d384be-3e11-43b1-b8c3-f63df600a6a6",
"name": "Do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
820,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "386c27cb-6e69-4d96-a8ab-8cfd43e6b171",
"name": "OpenAI",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-520,
580
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "0bd17bef-e205-464e-9b36-dcda75254e06",
"name": "DeepSeek",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
40,
540
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "deepseek/deepseek-r1:free",
"cachedResultName": "deepseek/deepseek-r1:free"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "3e68a65f-af29-432f-8159-4a599e8a0866",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-540,
-320
],
"parameters": {
"width": 1620,
"height": 240,
"content": "# STEP 3 - MAIN FLOW\n\n- Transform the email into Markdown format for optimal reading by the LLM model\n- Email Summarization through DeepSeek R1 (any model can be used)\n- I classify the email in such a way as to continue only with emails regarding general information about the company. In this way I can respond independently through the information obtained from the vector database\n- I create a chain where I entrust the review of the email to a high-performance model designed for this purpose\n- I send the response email\n\n\n"
},
"typeVersion": 1
},
{
"id": "3b6ae6aa-75a8-4038-bbc2-248ab533b3ab",
"name": "OpenAI 4-o-mini",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
360,
160
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "eee08614-3096-477a-b462-859782a74188",
"connections": {
"OpenAI": {
"ai_languageModel": [
[
{
"node": "Write email",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"DeepSeek": {
"ai_languageModel": [
[
{
"node": "Review email",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Markdown": {
"main": [
[
{
"node": "Email Summarization Chain",
"type": "main",
"index": 0
}
]
]
},
"Get folder": {
"main": [
[
{
"node": "Download Files",
"type": "main",
"index": 0
}
]
]
},
"DeepSeek R1": {
"ai_languageModel": [
[
{
"node": "Email Summarization Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Write email": {
"main": [
[
{
"node": "Review email",
"type": "main",
"index": 0
}
]
]
},
"Review email": {
"main": [
[
{
"node": "Send Email",
"type": "main",
"index": 0
}
]
]
},
"Download Files": {
"main": [
[
{
"node": "Qdrant Vector Store1",
"type": "main",
"index": 0
}
]
]
},
"Token Splitter": {
"ai_textSplitter": [
[
{
"node": "Default Data Loader",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"OpenAI 4-o-mini": {
"ai_languageModel": [
[
{
"node": "Email Classifier",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Email Classifier": {
"main": [
[
{
"node": "Write email",
"type": "main",
"index": 0
}
],
[
{
"node": "Do nothing",
"type": "main",
"index": 0
}
]
]
},
"Embeddings OpenAI": {
"ai_embedding": [
[
{
"node": "Qdrant Vector Store",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Embeddings OpenAI1": {
"ai_embedding": [
[
{
"node": "Qdrant Vector Store1",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Refresh collection": {
"main": [
[
{
"node": "Get folder",
"type": "main",
"index": 0
}
]
]
},
"Default Data Loader": {
"ai_document": [
[
{
"node": "Qdrant Vector Store1",
"type": "ai_document",
"index": 0
}
]
]
},
"Qdrant Vector Store": {
"ai_tool": [
[
{
"node": "Write email",
"type": "ai_tool",
"index": 0
}
]
]
},
"Email Trigger (IMAP)": {
"main": [
[
{
"node": "Markdown",
"type": "main",
"index": 0
}
]
]
},
"Email Summarization Chain": {
"main": [
[
{
"node": "Email Classifier",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "Create collection",
"type": "main",
"index": 0
},
{
"node": "Refresh collection",
"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.
googleDriveOAuth2ApihttpHeaderAuthimapopenAiApiqdrantApismtp
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
Save time on email management by automatically summarising incoming messages with AI and crafting intelligent, personalised responses that maintain your professional tone. This workflow suits busy professionals or teams handling high email volumes, such as customer support or sales, who want to respond promptly without constant manual intervention. It starts with an IMAP trigger to detect new emails, then uses OpenAI's language model to classify and summarise content before sending the reply via the email send node, ensuring efficient handling of routine correspondence.
Use this workflow for event-driven automation of standard inquiries, like lead follow-ups or FAQ replies, where quick, consistent responses enhance productivity. Avoid it for complex negotiations requiring human nuance or when emails involve sensitive data needing manual review. Common variations include integrating Qdrant for storing past email vectors to improve response relevance over time, or adding custom classifiers for industry-specific categorisation.
About this workflow
Email AI Auto-responder. Summerize and send email. Uses emailReadImap, markdown, lmChatOpenAi, emailSend. Event-driven trigger; 26 nodes.
Source: https://github.com/Zie619/n8n-workflows — 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.
Alfred (funcional). Uses gmailTool, googleCalendarTool, gmail, embeddingsOpenAi. Event-driven trigger; 83 nodes.
This comprehensive workflow bundle is designed as a powerful starter kit, enabling you to build a multi-functional AI assistant on Telegram. It seamlessly integrates AI-powered voice interactions, an
Agent IA Projet Client. Uses executeWorkflowTrigger, lmChatOpenAi, toolWorkflow, vectorStoreQdrant. Event-driven trigger; 79 nodes.
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