Workflow: Effortless Email Management with AI
Integrations: emailReadImap, emailSend, gmail, googleDrive, httpRequest, manualTrigger, markdown, noOp, set, stickyNote

{"id": "nkPjDxMrrkKbgHaV", "meta": {"instanceId": "workflow-bbce64d4", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:44.378597", "updatedAt": "2025-09-29T07:07:44.378614", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production"}, "name": "Effortless Email Management with AI", "tags": ["automation", "n8n", "production-ready", "excellent", "optimized"], "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, "notes": "This emailReadImap node performs automated tasks as part of the workflow."}, {"id": "cf2d020b-b125-4a20-8694-8ed0f7acf755", "name": "Markdown", "type": "n8n-nodes-base.markdown", "position": [-1740, -180], "parameters": {"html": "={{ $json.textHtml }}", "options": {}}, "typeVersion": 1, "notes": "This markdown node performs automated tasks as part of the workflow."}, {"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, "notes": "This emailSend node performs automated tasks as part of the workflow."}, {"id": "2aff581a-8b64-405c-b62f-74bf189fd7b1", "name": "Qdrant Vector Store", "type": "n8n-nodes-base.noOp", "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, "notes": "This vectorStoreQdrant node performs automated tasks as part of the workflow."}, {"id": "6e3f6df0-8924-47d9-855c-51205d19e86d", "name": "Embeddings OpenAI", "type": "n8n-nodes-base.noOp", "position": [-440, 800], "parameters": {"options": {}}, "credentials": {"openAiApi": {"id": "CDX6QM4gLYanh0P4", "name": "OpenAi account"}}, "typeVersion": 1.2, "notes": "This embeddingsOpenAi node performs automated tasks as part of the workflow."}, {"id": "37ac411b-4a74-44d1-917e-b07d1c9ca221", "name": "Email Summarization Chain", "type": "n8n-nodes-base.noOp", "position": [-1480, -180], "parameters": {"options": {"binaryDataKey": "YOUR_CREDENTIAL_HERE", "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, "notes": "This chainSummarization node performs automated tasks as part of the workflow."}, {"id": "91edbac9-847b-4f31-a8dd-09418bd93642", "name": "Write email", "type": "n8n-nodes-base.noOp", "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, "notes": "This agent node performs automated tasks as part of the workflow."}, {"id": "1da0e72a-db97-4216-a1a5-038cebaf7e10", "name": "OpenAI", "type": "n8n-nodes-base.noOp", "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, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow."}, {"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": "=<h3>MESSAGE</h3>\n{{ $('Email Trigger (IMAP)').item.json.textHtml }}\n\n<h3>AI RESPONSE</h3>\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, "notes": "This gmail node performs automated tasks as part of the workflow."}, {"id": "aaccc4a6-ce53-4813-8247-65bd1a9d5639", "name": "Text Classifier", "type": "n8n-nodes-base.noOp", "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, "notes": "This textClassifier node performs automated tasks as part of the workflow."}, {"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, "notes": "This set node performs automated tasks as part of the workflow."}, {"id": "36ce51c6-8ee1-4230-84c0-40e259eafb1a", "name": "When clicking \u2018Test workflow\u2019", "type": "n8n-nodes-base.manualTrigger", "position": [-1340, -1300], "parameters": {}, "typeVersion": 1, "notes": "This manualTrigger node performs automated tasks as part of the workflow."}, {"id": "21a0c991-65dc-483e-9b98-5cedaba7ae13", "name": "Create collection", "type": "n8n-nodes-base.httpRequest", "position": [-1040, -1440], "parameters": {"url": "{{ $env.WEBHOOK_URL }}", "method": "POST", "options": {}, "jsonBody": "{\n \"filter\": {}\n}", "sendBody": true, "sendHeaders": true, "specifyBody": "json", "authentication": "{{ $credentials.genericCredentialType }}", "genericAuthType": "httpHeaderAuth", "headerParameters": {"parameters": [{"name": "Content-Type", "value": "application/json"}]}}, "credentials": {"httpHeaderAuth": {"id": "qhny6r5ql9wwotpn", "name": "Qdrant API (Hetzner)"}}, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow."}, {"id": "9a048d7d-bcdf-40b7-b33a-94b811083eac", "name": "Refresh collection", "type": "n8n-nodes-base.httpRequest", "position": [-1040, -1180], "parameters": {"url": "{{ $env.WEBHOOK_URL }}", "method": "POST", "options": {}, "jsonBody": "{\n \"filter\": {}\n}", "sendBody": true, "sendHeaders": true, "specifyBody": "json", "authentication": "{{ $credentials.genericCredentialType }}", "genericAuthType": "httpHeaderAuth", "headerParameters": {"parameters": [{"name": "Content-Type", "value": "application/json"}]}}, "credentials": {"httpHeaderAuth": {"id": "qhny6r5ql9wwotpn", "name": "Qdrant API (Hetzner)"}}, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow."}, {"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": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "My Drive"}, "folderId": {"__rl": true, "mode": "id", "value": "=test-whatsapp"}}, "options": {}, "resource": "fileFolder"}, "credentials": {"googleDriveOAuth2Api": {"id": "HEy5EuZkgPZVEa9w", "name": "Google Drive account"}}, "typeVersion": 3, "notes": "This googleDrive node performs automated tasks as part of the workflow."}, {"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, "notes": "This googleDrive node performs automated tasks as part of the workflow."}, {"id": "492d48d8-4997-4f04-902b-041da3210417", "name": "Default Data Loader", "type": "n8n-nodes-base.noOp", "position": [-200, -980], "parameters": {"options": {}, "dataType": "binary"}, "typeVersion": 1, "notes": "This documentDefaultDataLoader node performs automated tasks as part of the workflow."}, {"id": "0cf45d10-3cbf-4eb6-ab30-11f264b3aa8d", "name": "Token Splitter", "type": "n8n-nodes-base.noOp", "position": [-240, -820], "parameters": {"chunkSize": 300, "chunkOverlap": 30}, "typeVersion": 1, "notes": "This textSplitterTokenSplitter node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "05f65120-ef31-4c67-ac18-e68a8353909c", "name": "Qdrant Vector Store1", "type": "n8n-nodes-base.noOp", "position": [-360, -1180], "parameters": {"mode": "insert", "options": {}, "qdrantCollection": {"__rl": true, "mode": "id", "value": "=COLLECTION"}}, "credentials": {"qdrantApi": {"id": "iyQ6MQiVaF3VMBmt", "name": "QdrantApi account"}}, "typeVersion": 1, "notes": "This vectorStoreQdrant node performs automated tasks as part of the workflow."}, {"id": "c15fd52f-b142-408e-af06-aeed10a1cf85", "name": "Embeddings OpenAI1", "type": "n8n-nodes-base.noOp", "position": [-380, -980], "parameters": {"options": {}}, "credentials": {"openAiApi": {"id": "CDX6QM4gLYanh0P4", "name": "OpenAi account"}}, "typeVersion": 1.1, "notes": "This embeddingsOpenAi node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "63097039-58cb-4e0f-9fb6-6bf868275519", "name": "DeepSeek Chat Model", "type": "n8n-nodes-base.noOp", "position": [-1560, 40], "parameters": {"options": {}}, "credentials": {"deepSeekApi": {"id": "sxh1rfZxonXV83hS", "name": "DeepSeek account"}}, "typeVersion": 1, "notes": "This lmChatDeepSeek node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "2468e643-013f-4925-ab35-c8ef4ee6eed2", "name": "Email Reviewer", "type": "n8n-nodes-base.noOp", "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 <br>, <b>, <i>, <p> where necessary. Be concise and never exceed 100 words. Only the body of the email"}, "promptType": "define", "hasOutputParser": true}, "typeVersion": 1.7, "notes": "This agent node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}], "active": false, "pinData": {}, "settings": {"executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000}, "versionId": "de11da52-1513-4797-8070-b64e84b84158", "connections": {"21a0c991-65dc-483e-9b98-5cedaba7ae13": {"main": [[{"node": "error-handler-21a0c991-65dc-483e-9b98-5cedaba7ae13", "type": "main", "index": 0}], [{"node": "error-handler-21a0c991-65dc-483e-9b98-5cedaba7ae13-d50be998", "type": "main", "index": 0}], [{"node": "error-handler-21a0c991-65dc-483e-9b98-5cedaba7ae13-615772e1", "type": "main", "index": 0}], [{"node": "error-handler-21a0c991-65dc-483e-9b98-5cedaba7ae13-8730d3e6", "type": "main", "index": 0}], [{"node": "error-handler-21a0c991-65dc-483e-9b98-5cedaba7ae13-78dc6f7d", "type": "main", "index": 0}], [{"node": "error-handler-21a0c991-65dc-483e-9b98-5cedaba7ae13-4eba06a7", "type": "main", "index": 0}], [{"node": "error-handler-21a0c991-65dc-483e-9b98-5cedaba7ae13-b1a8e136", "type": "main", "index": 0}], [{"node": "error-handler-21a0c991-65dc-483e-9b98-5cedaba7ae13-86d4888a", "type": "main", "index": 0}], [{"node": "error-handler-21a0c991-65dc-483e-9b98-5cedaba7ae13-2cd8bef6", "type": "main", "index": 0}]]}, "9a048d7d-bcdf-40b7-b33a-94b811083eac": {"main": [[{"node": "error-handler-9a048d7d-bcdf-40b7-b33a-94b811083eac", "type": "main", "index": 0}], [{"node": "error-handler-9a048d7d-bcdf-40b7-b33a-94b811083eac-0290bec5", "type": "main", "index": 0}], [{"node": "error-handler-9a048d7d-bcdf-40b7-b33a-94b811083eac-fdcda3be", "type": "main", "index": 0}], [{"node": "error-handler-9a048d7d-bcdf-40b7-b33a-94b811083eac-26f72ea5", "type": "main", "index": 0}], [{"node": "error-handler-9a048d7d-bcdf-40b7-b33a-94b811083eac-13513f94", "type": "main", "index": 0}], [{"node": "error-handler-9a048d7d-bcdf-40b7-b33a-94b811083eac-213aee45", "type": "main", "index": 0}], [{"node": "error-handler-9a048d7d-bcdf-40b7-b33a-94b811083eac-82591720", "type": "main", "index": 0}], [{"node": "error-handler-9a048d7d-bcdf-40b7-b33a-94b811083eac-e6a3af5d", "type": "main", "index": 0}], [{"node": "error-handler-9a048d7d-bcdf-40b7-b33a-94b811083eac-48f1ce12", "type": "main", "index": 0}]]}, "9d77e26f-de2b-4bd4-b0f0-9924a8f459a6": {"main": [[{"node": "error-handler-9d77e26f-de2b-4bd4-b0f0-9924a8f459a6-853a2cd0", "type": "main", "index": 0}], [{"node": "error-handler-9d77e26f-de2b-4bd4-b0f0-9924a8f459a6-b1747b85", "type": "main", "index": 0}], [{"node": "error-handler-9d77e26f-de2b-4bd4-b0f0-9924a8f459a6-b04eb41b", "type": "main", "index": 0}], [{"node": "error-handler-9d77e26f-de2b-4bd4-b0f0-9924a8f459a6-95f3e3f3", "type": "main", "index": 0}], [{"node": "error-handler-9d77e26f-de2b-4bd4-b0f0-9924a8f459a6-4918264d", "type": "main", "index": 0}], [{"node": "error-handler-9d77e26f-de2b-4bd4-b0f0-9924a8f459a6-8793ae70", "type": "main", "index": 0}], [{"node": "error-handler-9d77e26f-de2b-4bd4-b0f0-9924a8f459a6-0a4cfdf3", "type": "main", "index": 0}], [{"node": "error-handler-9d77e26f-de2b-4bd4-b0f0-9924a8f459a6-7f955e08", "type": "main", "index": 0}]]}, "41bfceff-0155-4643-be60-ee301e2d69e1": {"main": [[{"node": "error-handler-41bfceff-0155-4643-be60-ee301e2d69e1-a3a4e451", "type": "main", "index": 0}], [{"node": "error-handler-41bfceff-0155-4643-be60-ee301e2d69e1-1061b248", "type": "main", "index": 0}], [{"node": "error-handler-41bfceff-0155-4643-be60-ee301e2d69e1-8093520f", "type": "main", "index": 0}], [{"node": "error-handler-41bfceff-0155-4643-be60-ee301e2d69e1-7a93b0bf", "type": "main", "index": 0}], [{"node": "error-handler-41bfceff-0155-4643-be60-ee301e2d69e1-e8653af2", "type": "main", "index": 0}], [{"node": "error-handler-41bfceff-0155-4643-be60-ee301e2d69e1-baf561c0", "type": "main", "index": 0}], [{"node": "error-handler-41bfceff-0155-4643-be60-ee301e2d69e1-e2a6c1d2", "type": "main", "index": 0}], [{"node": "error-handler-41bfceff-0155-4643-be60-ee301e2d69e1-5bd00622", "type": "main", "index": 0}]]}, "6e3f6df0-8924-47d9-855c-51205d19e86d": {"main": [[{"node": "error-handler-6e3f6df0-8924-47d9-855c-51205d19e86d-99aba248", "type": "main", "index": 0}]]}, "1da0e72a-db97-4216-a1a5-038cebaf7e10": {"main": [[{"node": "error-handler-1da0e72a-db97-4216-a1a5-038cebaf7e10-53a707c0", "type": "main", "index": 0}]]}, "db494d2d-5390-4f83-9b87-3409fef31a7d": {"main": [[{"node": "error-handler-db494d2d-5390-4f83-9b87-3409fef31a7d-21551276", "type": "main", "index": 0}]]}, "e30dbe6f-482e-47f9-b5b8-62c1113e6c8b": {"main": [[{"node": "error-handler-e30dbe6f-482e-47f9-b5b8-62c1113e6c8b-feb7c4cf", "type": "main", "index": 0}]]}, "c15fd52f-b142-408e-af06-aeed10a1cf85": {"main": [[{"node": "error-handler-c15fd52f-b142-408e-af06-aeed10a1cf85-489790d1", "type": "main", "index": 0}]]}}, "description": "Automated workflow: Effortless Email Management with AI. This workflow integrates 19 different services: stickyNote, vectorStoreQdrant, lmChatOpenAi, emailSend, textClassifier. It contains 42 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Effortless Email Management with AI. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}