Workflow: Gmail MCP Server
Integrations: gmailTool, manualTrigger, noOp, stickyNote, stopAndError

{"id": "QaMO9ji6T6vTZHQ4", "meta": {"instanceId": "workflow-311e492c", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:45.199859", "updatedAt": "2025-09-29T07:07:45.199923", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production"}, "name": "Gmail MCP Server", "tags": ["automation", "n8n", "production-ready", "excellent", "optimized"], "nodes": [{"id": "trigger-8306d9c3", "name": "Manual Trigger", "type": "n8n-nodes-base.manualTrigger", "typeVersion": 1, "position": [100, 100], "parameters": {}}, {"id": "b7c0a52d-cd86-43a6-9b53-acf7d24bfccc", "name": "addLabels", "type": "n8n-nodes-base.gmailTool", "position": [560, 800], "webhookId": "81d61988-8213-4175-b75d-76cb67ce4a3b", "parameters": {"labelIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Label_Names_or_IDs', ``, 'string') }}", "messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message_ID', ``, 'string') }}", "operation": "addLabels", "descriptionType": "manual", "toolDescription": "Add one or more labels to an email message. AI-configurable parameters: Message_ID (string) - the ID of the message to label; Label_Names_or_IDs (string) - comma-separated label names or IDs to apply."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "21f26146-97e4-4643-9bf2-0d704ec589e8", "name": "delete", "type": "n8n-nodes-base.gmailTool", "position": [280, 600], "webhookId": "03319c28-ef88-40f4-897c-f44c21dbdf1f", "parameters": {"messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message_ID', ``, 'string') }}", "operation": "delete", "descriptionType": "manual", "toolDescription": "Delete an email message. AI-configurable parameters: Message_ID (string) - the ID of the message to delete."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "fd868497-787c-460b-87dc-e99572465c89", "name": "get", "type": "n8n-nodes-base.gmailTool", "position": [400, 600], "webhookId": "cf5acbf3-a08f-4da6-9f14-9751eed6e5b8", "parameters": {"messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message_ID', ``, 'string') }}", "operation": "get", "descriptionType": "manual", "toolDescription": "Retrieve details of an email message. AI-configurable parameters: Message_ID (string) - the ID of the message to retrieve."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "43f6229f-c294-41ce-8f4b-ebcab0026730", "name": "search", "type": "n8n-nodes-base.gmailTool", "position": [520, 600], "webhookId": "cb3d028a-6cab-4946-b368-aa56bf271af9", "parameters": {"filters": {"q": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Search', ``, 'string') }}", "sender": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Sender', ``, 'string') }}", "receivedAfter": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Received_After', ``, 'string') }}", "receivedBefore": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Received_Before', ``, 'string') }}"}, "operation": "getAll", "returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}", "descriptionType": "manual", "toolDescription": "Retrieve multiple email messages based on filters. AI-configurable parameters: Return_All (boolean) - whether to return all matching messages; Search (string) - Gmail query string to filter messages; Received_After (string) - datetime (RFC3339) after which messages are received; Received_Before (string) - datetime before which messages are received; Sender (string) - email address of the sender."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "f01ba35c-a67f-4603-afb2-9990bd73a026", "name": "markAsRead", "type": "n8n-nodes-base.gmailTool", "position": [120, 800], "webhookId": "e769b7cf-9622-434d-b98d-4bde7653238d", "parameters": {"messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message_ID', ``, 'string') }}", "operation": "markAsRead", "descriptionType": "manual", "toolDescription": "Mark an email message as read. AI-configurable parameters: Message_ID (string) - the ID of the message to mark as read."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "c8e77334-a50a-4117-beec-f8101d879e9e", "name": "markAsUnread", "type": "n8n-nodes-base.gmailTool", "position": [280, 800], "webhookId": "c26a8635-4329-498e-b293-4350baed493d", "parameters": {"messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message_ID', ``, 'string') }}", "operation": "markAsUnread", "descriptionType": "manual", "toolDescription": "Mark an email message as unread. AI-configurable parameters: Message_ID (string) - the ID of the message to mark as unread."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "ac7339b7-e246-4ad8-a82c-f3abc6b87942", "name": "reply", "type": "n8n-nodes-base.gmailTool", "position": [140, 600], "webhookId": "fbd30b84-25ac-4bab-8a66-5366b9b7a0be", "parameters": {"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}", "options": {"ccList": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('CC', ``, 'string') }}", "bccList": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('BCC', ``, 'string') }}", "attachmentsUi": {"attachmentsBinary": [{"property": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Attachment_Field_Name', ``, 'string') }}"}]}, "appendAttribution": false}, "emailType": "text", "messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message_ID', ``, 'string') }}", "operation": "reply", "descriptionType": "manual", "toolDescription": "Reply to an email message. AI-configurable parameters: Message_ID (string) - the ID of the message; Message (string) - the reply content; Attachment_Field_Name (string) - input field name containing attachments; BCC (string) - comma-separated BCC recipients; CC (string) - comma-separated CC recipients."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "fd87d9a3-5823-402a-9d9e-0c114a556f8a", "name": "removeLabels", "type": "n8n-nodes-base.gmailTool", "position": [420, 800], "webhookId": "e83fb7ee-2716-444b-9a4e-208eea215728", "parameters": {"labelIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Label_Names_or_IDs', ``, 'string') }}", "messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message_ID', ``, 'string') }}", "operation": "removeLabels", "descriptionType": "manual", "toolDescription": "Remove one or more labels from an email message. AI-configurable parameters: Message_ID (string) - the ID of the message; Label_Names_or_IDs (string) - comma-separated label names or IDs to remove."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "a36630c8-3b6a-4703-94fa-80747eb4931c", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [40, 520], "parameters": {"width": 660, "height": 460, "content": "## Message Tools\n"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "b5c7fdd7-9842-4720-b13e-1fa3611fc320", "name": "getLabels", "type": "n8n-nodes-base.gmailTool", "position": [840, 620], "webhookId": "1f107973-fe4a-440c-aaef-f35e1e8a555a", "parameters": {"resource": "label", "returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}", "descriptionType": "manual", "toolDescription": "Retrieve a list of labels. AI-configurable parameters: Return_All (boolean) - whether to return all labels."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "18daa9a3-9e1a-4b4b-ad8d-bf35402baaa6", "name": "getLabel", "type": "n8n-nodes-base.gmailTool", "position": [980, 620], "webhookId": "e9d3b2c0-50ea-4b3b-8509-f89dc4f20fb5", "parameters": {"labelId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Label_ID', ``, 'string') }}", "resource": "label", "operation": "get", "descriptionType": "manual", "toolDescription": "Retrieve details of a specific label. AI-configurable parameters: Label_ID (string) - the ID of the label to retrieve."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "cc7ba925-83c9-4870-9647-11042666fd5b", "name": "deleteLabel", "type": "n8n-nodes-base.gmailTool", "position": [840, 820], "webhookId": "80a61a7c-f7a0-4fc9-a0a8-edd5846b4e11", "parameters": {"labelId": "={{ $fromAI('Label_ID', ``, 'string') }}", "resource": "label", "operation": "delete", "descriptionType": "manual", "toolDescription": "Delete a label. AI-configurable parameters: Label_ID (string) - the ID of the label to delete."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "23b28b37-cc69-4bc9-b0e4-88b09b355f3e", "name": "createLabel", "type": "n8n-nodes-base.gmailTool", "position": [1000, 820], "webhookId": "d24d1672-4f76-4f58-912b-9345d23ba922", "parameters": {"name": "={{ $fromAI('Label_ID', ``, 'string') }}", "options": {}, "resource": "label", "operation": "create", "descriptionType": "manual", "toolDescription": "Create a new label. AI-configurable parameters: Label_ID (string) - the name of the label to create."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "db6f3147-e672-497b-922e-cb8c74dd3006", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [760, 520], "parameters": {"color": 4, "width": 380, "height": 440, "content": "## Label Tools\n\n"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "16d28e54-ac27-462e-9316-efe2959dd48c", "name": "deleteDraft", "type": "n8n-nodes-base.gmailTool", "position": [1300, 280], "webhookId": "8eb35ae4-6517-421b-b54f-ba0610cf58f4", "parameters": {"resource": "draft", "messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Draft_ID', ``, 'string') }}", "operation": "delete", "descriptionType": "manual", "toolDescription": "Delete an email draft. AI-configurable parameters: Draft_ID (string) - the ID of the draft to delete."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "cca355a2-2a90-4084-a65f-5a67b7732192", "name": "createDraft", "type": "n8n-nodes-base.gmailTool", "position": [1300, 100], "webhookId": "1cca6c42-ccd9-4144-a2b1-6266d848f6ab", "parameters": {"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}", "options": {"ccList": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('CC', ``, 'string') }}", "bccList": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('BCC', ``, 'string') }}", "attachmentsUi": {"attachmentsBinary": [{"property": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Attachment_Field_Name__in_Input_', ``, 'string') }}"}]}}, "subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}", "resource": "draft", "descriptionType": "manual", "toolDescription": "Create an email draft. AI-configurable parameters: Subject (string) - the subject of the draft; Message (string) - the body of the draft; Attachment_Field_Name__in_Input_ (string) - input field name containing attachments; BCC (string) - comma-separated BCC recipients; CC (string) - comma-separated CC recipients."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "5c22063a-2480-4a57-9184-7cf26ff07caa", "name": "getDraft", "type": "n8n-nodes-base.gmailTool", "position": [1480, 100], "webhookId": "80eadc8e-9d6b-42e7-9ac4-5b26d21fb3c5", "parameters": {"options": {}, "resource": "draft", "messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Draft_ID', ``, 'string') }}", "operation": "get", "descriptionType": "manual", "toolDescription": "Retrieve an email draft. AI-configurable parameters: Draft_ID (string) - the ID of the draft to retrieve."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "fba8022d-9b11-4bb6-b8c2-826e1fa9a8e6", "name": "getManyDrafts", "type": "n8n-nodes-base.gmailTool", "position": [1480, 280], "webhookId": "6aaf2777-d1c1-490b-a82f-eaab6caefe85", "parameters": {"options": {"includeSpamTrash": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Include_Spam_and_Trash', ``, 'boolean') }}"}, "resource": "draft", "operation": "getAll", "returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}", "descriptionType": "manual", "toolDescription": "Retrieve multiple email drafts. AI-configurable parameters: Return_All (boolean) - whether to return all drafts; Include_Spam_and_Trash (boolean) - whether to include drafts in spam or trash."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "af313dbf-f1d3-44b8-86b0-a8d8deb44359", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [1220, 0], "parameters": {"color": 5, "width": 380, "height": 440, "content": "## Draft Tools\n\n\n"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "34fc23f5-8b5e-4dfb-b7bf-5eca839a1799", "name": "getManyThreads", "type": "n8n-nodes-base.gmailTool", "position": [1260, 620], "webhookId": "233fb55f-2575-4cbd-a327-e27858e98cd9", "parameters": {"filters": {"q": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Search', ``, 'string') }}", "receivedAfter": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Received_After', ``, 'string') }}", "receivedBefore": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Received_Before', ``, 'string') }}"}, "resource": "thread", "returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}", "descriptionType": "manual", "toolDescription": "Retrieve multiple email threads based on filters. AI-configurable parameters: Return_All (boolean) - whether to return all threads; Search (string) - Gmail query string to filter threads; Received_After (string) - datetime after which threads are received; Received_Before (string) - datetime before which threads are received."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "5803ff85-b894-4d9d-bcca-4877d3255dbd", "name": "getThread", "type": "n8n-nodes-base.gmailTool", "position": [1420, 620], "webhookId": "9ecfaf0c-8d43-4b46-86bb-de5117b657c1", "parameters": {"options": {"returnOnlyMessages": true}, "resource": "thread", "threadId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Thread_ID', ``, 'string') }}", "operation": "get", "descriptionType": "manual", "toolDescription": "Retrieve details of an email thread. AI-configurable parameters: Thread_ID (string) - the ID of the thread to retrieve."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "07547fdc-3524-45cf-89c1-d871008e5897", "name": "addLabelThread", "type": "n8n-nodes-base.gmailTool", "position": [1580, 620], "webhookId": "c7a99e26-cb22-4675-b5a8-fb7acd302983", "parameters": {"labelIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Label_Names_or_IDs', ``, 'string') }}", "resource": "thread", "threadId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Thread_ID', ``, 'string') }}", "operation": "addLabels", "descriptionType": "manual", "toolDescription": "Add one or more labels to an email thread. AI-configurable parameters: Thread_ID (string) - the ID of the thread; Label_Names_or_IDs (string) - comma-separated label names or IDs to apply."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "2214607d-2ac2-4885-98b7-0c424f3c4af7", "name": "removeLabelThread", "type": "n8n-nodes-base.gmailTool", "position": [1260, 800], "webhookId": "cb63a038-73ba-4488-b70e-e3b8c48ee1b6", "parameters": {"labelIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Label_Names_or_IDs', ``, 'string') }}", "resource": "thread", "threadId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Thread_ID', ``, 'string') }}", "operation": "removeLabels", "descriptionType": "manual", "toolDescription": "Remove one or more labels from an email thread. AI-configurable parameters: Thread_ID (string) - the ID of the thread; Label_Names_or_IDs (string) - comma-separated label names or IDs to remove."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "ed15784b-58e1-40c0-8c87-1d0667802188", "name": "replyThread", "type": "n8n-nodes-base.gmailTool", "position": [1420, 800], "webhookId": "b10a9bfd-eca1-40fd-817e-3ab1caf94d97", "parameters": {"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}", "options": {"ccList": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('CC', ``, 'string') }}", "bccList": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('BCC', ``, 'string') }}"}, "resource": "thread", "threadId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Thread_ID', ``, 'string') }}", "operation": "reply", "descriptionType": "manual", "toolDescription": "Reply to an email thread. AI-configurable parameters: Thread_ID (string) - the ID of the thread; Message (string) - the reply content; BCC (string) - comma-separated BCC recipients; CC (string) - comma-separated CC recipients."}, "credentials": {"gmailOAuth2": {"id": "67JzzUiB1dTa4vYU", "name": "iSJC Gmail"}}, "typeVersion": 2.1, "notes": "This gmailTool node performs automated tasks as part of the workflow."}, {"id": "2f8ea31e-3582-4370-8756-3673a60fbe53", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [1220, 520], "parameters": {"color": 7, "width": 520, "height": 440, "content": "## Thread Tools\n\n\n"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "5beba186-3cf1-4d96-aa1a-69c3e0b729e5", "name": "Gmail MCP Server", "type": "n8n-nodes-base.noOp", "position": [500, 40], "webhookId": "a794310b-bca0-4272-99be-a2872c1cadb0", "parameters": {"path": "gmail-enhanced"}, "typeVersion": 1, "notes": "This mcpTrigger node performs automated tasks as part of the workflow."}, {"id": "25736cc4-06ac-4084-9aec-543ba3d2934b", "name": "Sticky Note4", "type": "n8n-nodes-base.stickyNote", "position": [0, 0], "parameters": {"color": 6, "width": 280, "height": 240, "content": "## USAGE\n\nOpen the Gmail MCP Server node to obtain the SSE server URL.\n\nUse that to configure an N8N AI Agent flow or other AI tool."}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "error-c00073e7", "name": "Error Handler", "type": "n8n-nodes-base.stopAndError", "typeVersion": 1, "position": [1000, 400], "parameters": {"message": "Workflow execution error", "options": {}}}], "active": true, "pinData": {}, "settings": {"executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000}, "versionId": "29e40df2-6863-4f37-8068-5dba71c5bac8", "connections": {}, "description": "Automated workflow: Gmail MCP Server. This workflow integrates 3 different services: gmailTool, stickyNote, mcpTrigger. It contains 27 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Gmail MCP Server. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}