{ "id": "nkPjDxMrrkKbgHaV", "meta": { "instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462", "templateCredsSetupCompleted": true }, "name": "Effortless Email Management with AI", "tags": [], "nodes": [ { "id": "9d77e26f-de2b-4bd4-b0f0-9924a8f459a6", "name": "Email Trigger (IMAP)", "type": "n8n-nodes-base.emailReadImap", "position": [ -2000, -180 ], "parameters": { "options": {} }, "credentials": { "imap": { "id": "k31W9oGddl9pMDy4", "name": "IMAP info@n3witalia.com" } }, "typeVersion": 2 }, { "id": "cf2d020b-b125-4a20-8694-8ed0f7acf755", "name": "Markdown", "type": "n8n-nodes-base.markdown", "position": [ -1740, -180 ], "parameters": { "html": "={{ $json.textHtml }}", "options": {} }, "typeVersion": 1 }, { "id": "41bfceff-0155-4643-be60-ee301e2d69e1", "name": "Send Email", "type": "n8n-nodes-base.emailSend", "position": [ 400, -320 ], "webhookId": "a79ae1b4-648c-4cb4-b6cd-04ea3c1d9314", "parameters": { "html": "={{ $('Edit Fields').item.json.email }}", "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": { "id": "hRjP3XbDiIQqvi7x", "name": "SMTP info@n3witalia.com" } }, "typeVersion": 2.1 }, { "id": "2aff581a-8b64-405c-b62f-74bf189fd7b1", "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": { "id": "iyQ6MQiVaF3VMBmt", "name": "QdrantApi account" } }, "typeVersion": 1 }, { "id": "6e3f6df0-8924-47d9-855c-51205d19e86d", "name": "Embeddings OpenAI", "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", "position": [ -440, 800 ], "parameters": { "options": {} }, "credentials": { "openAiApi": { "id": "CDX6QM4gLYanh0P4", "name": "OpenAi account" } }, "typeVersion": 1.2 }, { "id": "37ac411b-4a74-44d1-917e-b07d1c9ca221", "name": "Email Summarization Chain", "type": "@n8n/n8n-nodes-langchain.chainSummarization", "position": [ -1480, -180 ], "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\nDo not enter the total number of words used." } } }, "operationMode": "nodeInputBinary" }, "typeVersion": 2 }, { "id": "91edbac9-847b-4f31-a8dd-09418bd93642", "name": "Write email", "type": "@n8n/n8n-nodes-langchain.agent", "position": [ -1040, -180 ], "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. Only the body of the email, not create the subject" }, "promptType": "define", "hasOutputParser": true }, "typeVersion": 1.7 }, { "id": "1da0e72a-db97-4216-a1a5-038cebaf7e10", "name": "OpenAI", "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "position": [ -180, 280 ], "parameters": { "model": { "__rl": true, "mode": "list", "value": "gpt-4o-mini", "cachedResultName": "gpt-4o-mini" }, "options": {} }, "credentials": { "openAiApi": { "id": "CDX6QM4gLYanh0P4", "name": "OpenAi account" } }, "typeVersion": 1.2 }, { "id": "af2d6284-4c8f-4a07-b689-d0f55aaabd26", "name": "Gmail", "type": "n8n-nodes-base.gmail", "position": [ -300, -180 ], "webhookId": "d6dd2e7c-90ea-4b65-9c64-523d2541a054", "parameters": { "sendTo": "info@n3w.it", "message": "=

MESSAGE

\n{{ $('Email Trigger (IMAP)').item.json.textHtml }}\n\n

AI RESPONSE

\n{{ $json.email }}", "options": {}, "subject": "=[Approval Required] {{ $('Email Trigger (IMAP)').item.json.subject }}", "operation": "sendAndWait", "responseType": "freeText" }, "credentials": { "gmailOAuth2": { "id": "nyuHvSX5HuqfMPlW", "name": "Gmail account (n3w.it)" } }, "typeVersion": 2.1 }, { "id": "aaccc4a6-ce53-4813-8247-65bd1a9d5639", "name": "Text Classifier", "type": "@n8n/n8n-nodes-langchain.textClassifier", "position": [ -60, -180 ], "parameters": { "options": { "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." }, "inputText": "={{ $json.data.text }}", "categories": { "categories": [ { "category": "Approved", "description": "The email has been reviewed and accepted as-is. The human explicitly or implicity express approva, indicating that no changes ar needed.\n\nExample:\n\"Ok\",\n\"Approvato\",\n\"Invia\"" }, { "category": "Declined", "description": "The email has been reviewd, but the human request modifications before it sent link tweaks, removing parts, rewording etc... This could include suggested edits, rewording or major revision." } ] } }, "typeVersion": 1 }, { "id": "b46de5d9-1a2e-4d28-930b-e18fb1d7876e", "name": "Edit Fields", "type": "n8n-nodes-base.set", "position": [ -580, -180 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "35d7c303-42f4-4dd1-b41e-6eb087c23c3d", "name": "email", "type": "string", "value": "={{ $json.output }}" } ] } }, "typeVersion": 3.4 }, { "id": "36ce51c6-8ee1-4230-84c0-40e259eafb1a", "name": "When clicking ‘Test workflow’", "type": "n8n-nodes-base.manualTrigger", "position": [ -1340, -1300 ], "parameters": {}, "typeVersion": 1 }, { "id": "21a0c991-65dc-483e-9b98-5cedaba7ae13", "name": "Create collection", "type": "n8n-nodes-base.httpRequest", "position": [ -1040, -1440 ], "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": { "id": "qhny6r5ql9wwotpn", "name": "Qdrant API (Hetzner)" } }, "typeVersion": 4.2 }, { "id": "9a048d7d-bcdf-40b7-b33a-94b811083eac", "name": "Refresh collection", "type": "n8n-nodes-base.httpRequest", "position": [ -1040, -1180 ], "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": { "id": "qhny6r5ql9wwotpn", "name": "Qdrant API (Hetzner)" } }, "typeVersion": 4.2 }, { "id": "db494d2d-5390-4f83-9b87-3409fef31a7d", "name": "Get folder", "type": "n8n-nodes-base.googleDrive", "position": [ -820, -1180 ], "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": { "id": "HEy5EuZkgPZVEa9w", "name": "Google Drive account" } }, "typeVersion": 3 }, { "id": "e30dbe6f-482e-47f9-b5b8-62c1113e6c8b", "name": "Download Files", "type": "n8n-nodes-base.googleDrive", "position": [ -600, -1180 ], "parameters": { "fileId": { "__rl": true, "mode": "id", "value": "={{ $json.id }}" }, "options": { "googleFileConversion": { "conversion": { "docsToFormat": "text/plain" } } }, "operation": "download" }, "credentials": { "googleDriveOAuth2Api": { "id": "HEy5EuZkgPZVEa9w", "name": "Google Drive account" } }, "typeVersion": 3 }, { "id": "492d48d8-4997-4f04-902b-041da3210417", "name": "Default Data Loader", "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", "position": [ -200, -980 ], "parameters": { "options": {}, "dataType": "binary" }, "typeVersion": 1 }, { "id": "0cf45d10-3cbf-4eb6-ab30-11f264b3aa8d", "name": "Token Splitter", "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", "position": [ -240, -820 ], "parameters": { "chunkSize": 300, "chunkOverlap": 30 }, "typeVersion": 1 }, { "id": "7d60f569-c34e-49a8-ba9a-88cf33083136", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [ -840, -1500 ], "parameters": { "color": 6, "width": 880, "height": 220, "content": "# STEP 1\n\n## Create Qdrant Collection\nChange:\n- QDRANTURL\n- COLLECTION" }, "typeVersion": 1 }, { "id": "e86b18c4-d7e8-4e81-b520-dbd8125edf38", "name": "Sticky Note4", "type": "n8n-nodes-base.stickyNote", "position": [ -1060, -1240 ], "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": "05f65120-ef31-4c67-ac18-e68a8353909c", "name": "Qdrant Vector Store1", "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant", "position": [ -360, -1180 ], "parameters": { "mode": "insert", "options": {}, "qdrantCollection": { "__rl": true, "mode": "id", "value": "=COLLECTION" } }, "credentials": { "qdrantApi": { "id": "iyQ6MQiVaF3VMBmt", "name": "QdrantApi account" } }, "typeVersion": 1 }, { "id": "c15fd52f-b142-408e-af06-aeed10a1cf85", "name": "Embeddings OpenAI1", "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", "position": [ -380, -980 ], "parameters": { "options": {} }, "credentials": { "openAiApi": { "id": "CDX6QM4gLYanh0P4", "name": "OpenAi account" } }, "typeVersion": 1.1 }, { "id": "3e47224f-3deb-450b-b825-f16c5f860f28", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ -2020, -600 ], "parameters": { "color": 3, "width": 580, "height": 260, "content": "# STEP 3 - MAIN FLOW\n\n\n## How it works\nThis workflow automates the handling of incoming emails, summarizes their content, generates appropriate responses using a retrieval-augmented generation (RAG) approach, and obtains approval or suggestions before sending replies. \n\nYou can quickly integrate Gmail and Outlook via the appropriate trigger nodes" }, "typeVersion": 1 }, { "id": "63097039-58cb-4e0f-9fb6-6bf868275519", "name": "DeepSeek Chat Model", "type": "@n8n/n8n-nodes-langchain.lmChatDeepSeek", "position": [ -1560, 40 ], "parameters": { "options": {} }, "credentials": { "deepSeekApi": { "id": "sxh1rfZxonXV83hS", "name": "DeepSeek account" } }, "typeVersion": 1 }, { "id": "c86d6eeb-cf08-429f-b5b4-60b317071035", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [ -1500, -260 ], "parameters": { "width": 320, "height": 240, "content": "Chain that summarizes the received email" }, "typeVersion": 1 }, { "id": "4afc8b00-d1e5-473c-a71e-1299c84c546e", "name": "Sticky Note5", "type": "n8n-nodes-base.stickyNote", "position": [ -1060, -260 ], "parameters": { "width": 340, "height": 240, "content": "Agent that retrieves business information from a vector database and processes the response" }, "typeVersion": 1 }, { "id": "be1762ff-729b-4b83-9139-16f835b748f2", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ -1800, -260 ], "parameters": { "height": 240, "content": "Convert email to Markdown format for better understanding of LLM models" }, "typeVersion": 1 }, { "id": "f818ede7-895a-4860-91d3-f08cc32ec0e3", "name": "Sticky Note6", "type": "n8n-nodes-base.stickyNote", "position": [ -380, -380 ], "parameters": { "color": 4, "height": 360, "content": "## IMPORTANT\n\nFor the \"Send Draft\" node, you need to send the draft email to a Gmail address because it is the only one that allows the \"Send and wait for response\" function." }, "typeVersion": 1 }, { "id": "929b525a-912b-4f7b-a6e7-dfeb88a446c8", "name": "Sticky Note7", "type": "n8n-nodes-base.stickyNote", "position": [ -100, -260 ], "parameters": { "width": 360, "height": 240, "content": "Based on the suggestion received, the text classifier can understand whether the feedback received approves the generated email or not." }, "typeVersion": 1 }, { "id": "2468e643-013f-4925-ab35-c8ef4ee6eed2", "name": "Email Reviewer", "type": "@n8n/n8n-nodes-langchain.agent", "position": [ 380, -40 ], "parameters": { "text": "=Review at the following email:\n{{ $('Edit Fields').item.json.email }}\n\nFeedback from human:\n{{ $json.data.text }}", "options": { "systemMessage": "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
, , ,

where necessary. Be concise and never exceed 100 words. Only the body of the email" }, "promptType": "define", "hasOutputParser": true }, "typeVersion": 1.7 }, { "id": "ecd9d3f8-2e79-4e5f-a73d-48de60441376", "name": "Sticky Note8", "type": "n8n-nodes-base.stickyNote", "position": [ 340, -120 ], "parameters": { "width": 340, "height": 220, "content": "The Email Reviewer agent, taking inspiration from human feedback, rewrites the email" }, "typeVersion": 1 } ], "active": false, "pinData": {}, "settings": { "executionOrder": "v1" }, "versionId": "de11da52-1513-4797-8070-b64e84b84158", "connections": { "Gmail": { "main": [ [ { "node": "Text Classifier", "type": "main", "index": 0 } ] ] }, "OpenAI": { "ai_languageModel": [ [ { "node": "Write email", "type": "ai_languageModel", "index": 0 }, { "node": "Email Reviewer", "type": "ai_languageModel", "index": 0 }, { "node": "Text Classifier", "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 } ] ] }, "Edit Fields": { "main": [ [ { "node": "Gmail", "type": "main", "index": 0 } ] ] }, "Write email": { "main": [ [ { "node": "Edit Fields", "type": "main", "index": 0 } ] ] }, "Download Files": { "main": [ [ { "node": "Qdrant Vector Store1", "type": "main", "index": 0 } ] ] }, "Email Reviewer": { "main": [ [ { "node": "Edit Fields", "type": "main", "index": 0 } ] ] }, "Token Splitter": { "ai_textSplitter": [ [ { "node": "Default Data Loader", "type": "ai_textSplitter", "index": 0 } ] ] }, "Text Classifier": { "main": [ [ { "node": "Send Email", "type": "main", "index": 0 } ], [ { "node": "Email Reviewer", "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 } ] ] }, "DeepSeek Chat Model": { "ai_languageModel": [ [ { "node": "Email Summarization Chain", "type": "ai_languageModel", "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 }, { "node": "Email Reviewer", "type": "ai_tool", "index": 0 } ] ] }, "Email Trigger (IMAP)": { "main": [ [ { "node": "Markdown", "type": "main", "index": 0 } ] ] }, "Email Summarization Chain": { "main": [ [ { "node": "Write email", "type": "main", "index": 0 } ] ] }, "When clicking ‘Test workflow’": { "main": [ [ { "node": "Create collection", "type": "main", "index": 0 }, { "node": "Refresh collection", "type": "main", "index": 0 } ] ] } } }