{
  "workflow": {
    "id": 8500,
    "name": "Jarvis: productivity AI agent for tasks, calendar, email & expense using MCPs",
    "views": 27333,
    "recentViews": 18,
    "totalViews": 27333,
    "createdAt": "2025-09-12T06:41:03.347Z",
    "description": "## Who’s it for\nThis template is designed for anyone who wants to use **Telegram as a personal AI assistant hub**.  \nIf you often juggle tasks, emails, calendars, and expenses across multiple tools, this workflow consolidates everything into one seamless AI-powered agent.\n\n## What it does\nJarvis listens to your Telegram messages (text or audio) and processes them with OpenAI.  \nBased on your request, it can:\n- ✅ Manage tasks (create, complete, or delete)  \n- 📅 Handle calendar events (schedule, reschedule, or check availability)  \n- 📧 Send, draft, or fetch emails with Gmail  \n- 👥 Retrieve Google Contacts  \n- 💵 Log and track expenses  \n\nAll responses are returned directly to Telegram, giving you a unified command center.\n\n## How to set up\n1. Clone this template into your n8n workspace.  \n2. Connect your accounts (Telegram, Gmail, Google Calendar, Contacts, etc.).  \n3. Add your OpenAI API key in the **Credentials** section.  \n4. Test by sending a Telegram message like “Create a meeting tomorrow at 3pm” or “Add expense $50 for lunch.”  or \"Draft a reply with a project proposal to that email from Steve\"\n\n## Requirements\n- n8n instance (cloud or self-hosted)  \n- Telegram Bot API credentials  \n- Gmail, Google Calendar, and Google Contacts credentials (optional, if using those features)  \n- OpenAI API key  \n- ElevenLabs API Key (optional, if you need audio note support)\n\n## How to customize\n- Swap Gmail with another email provider by replacing the Gmail MCP node.  \n- Add additional MCP integrations (e.g., Notion, Slack, CRM tools).  \n- Adjust memory length to control how much context Jarvis remembers.  \n\nWith this template, you can transform Telegram into your **all-in-one AI assistant**, simplifying workflows and saving hours every week.\n",
    "workflow": {
      "id": "zcYVtmH3JmlnFoOB",
      "meta": {
        "instanceId": "e56288a9b12ad2dc7c19cc4170f20f7abcacaad5fb3972dd882c9ce4f34e7668",
        "templateCredsSetupCompleted": true
      },
      "name": "Jarvis template",
      "tags": [],
      "nodes": [
        {
          "id": "a8eaf694-1adf-4c46-8066-415162b2b769",
          "name": "OpenAI Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            208,
            480
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4.1-mini",
              "cachedResultName": "gpt-4.1-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "d7fe0bed-44ec-4c0a-b66f-12e36bf9483d",
          "name": "Simple Memory",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            288,
            592
          ],
          "parameters": {
            "sessionKey": "={{ $('Telegram Trigger').item.json.message.chat.username }}",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "2a47f5d3-747c-4b0d-b2d4-1880d012979c",
          "name": "Gmail MCP",
          "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
          "position": [
            416,
            640
          ],
          "parameters": {
            "endpointUrl": "https://n8n.exildraw.com/mcp/gmail-mcp/sse"
          },
          "typeVersion": 1.1
        },
        {
          "id": "a37dbd39-222f-45ad-be42-d8a0098cc76c",
          "name": "Google Tasks MCP",
          "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
          "position": [
            704,
            576
          ],
          "parameters": {
            "endpointUrl": "https://n8n.exildraw.com/mcp/task-YOUR_OPENAI_KEY_HERE"
          },
          "typeVersion": 1.1
        },
        {
          "id": "d98f70a1-c8da-4387-a575-c9809674947a",
          "name": "Gmail MCP Server",
          "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
          "position": [
            400,
            1008
          ],
          "webhookId": "906a5e01-3f46-444e-a3b7-51d2105eac16",
          "parameters": {
            "path": "906a5e01-3f46-444e-a3b7-51d2105eac16"
          },
          "typeVersion": 1
        },
        {
          "id": "33df9b0d-7bc9-48ed-8664-eece9c875739",
          "name": "Send Email",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            272,
            1168
          ],
          "webhookId": "b5692bdd-471a-4141-8710-b0909a433939",
          "parameters": {
            "sendTo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('To', ``, 'string') }}",
            "message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
            "options": {
              "appendAttribution": false
            },
            "subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "55889898-08c6-4357-a448-fd9e7b0a3d29",
          "name": "Reply to an Email",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            368,
            1232
          ],
          "webhookId": "3fda5336-8c0d-426c-abf4-e614cadbcc12",
          "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": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "6bbe7356-33c4-452b-b6d8-726f7af3a2d2",
          "name": "Get Emails",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            480,
            1296
          ],
          "webhookId": "35b2c37f-1e18-4fec-a442-3f672e8d839c",
          "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') }}"
            },
            "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": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "97f26bc6-f2cd-40fd-9617-c26af6368ad4",
          "name": "Add Label to Email",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            576,
            1360
          ],
          "webhookId": "e985e162-2fb5-480a-9c72-5bd5b62876df",
          "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": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "26dad8fd-c349-433e-a471-71dbfd97c56b",
          "name": "Get Labels",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            672,
            1312
          ],
          "webhookId": "4bffaaac-3a2e-4cdb-8809-69a2ea942d7b",
          "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": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "a47d9f12-5973-4a93-81f8-7a7f03a4214b",
          "name": "Draft Email",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            752,
            1216
          ],
          "webhookId": "89cfafeb-e670-46e1-a5c2-f0a0e3ad0332",
          "parameters": {
            "message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
            "options": {
              "ccList": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('CC', ``, 'string') }}",
              "sendTo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('To_Email', ``, 'string') }}",
              "bccList": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('BCC', ``, 'string') }}"
            },
            "subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}",
            "resource": "draft",
            "emailType": "html",
            "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": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "957ea20b-4d3f-4ad4-bbcd-42fdf1a5af82",
          "name": "Draft Email Reply",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            848,
            1136
          ],
          "webhookId": "95797251-5c38-45f1-8203-377716c743bd",
          "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') }}",
              "threadId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Thread_ID', ``, 'string') }}"
            },
            "subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}",
            "resource": "draft",
            "emailType": "html",
            "descriptionType": "manual",
            "toolDescription": "Draft a reply to an email. Use the thread_id parameter to pass the thread for which the email must be drafted"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "47e41e13-e6e7-4959-bb08-1f1f4da01b34",
          "name": "Check Availability",
          "type": "n8n-nodes-base.googleCalendarTool",
          "position": [
            -464,
            1056
          ],
          "parameters": {
            "options": {
              "timezone": {
                "__rl": true,
                "mode": "list",
                "value": "Asia/Kolkata",
                "cachedResultName": "Asia/Kolkata"
              }
            },
            "timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End_Time', ``, 'string') }}",
            "timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start_Time', ``, 'string') }}",
            "calendar": {
              "__rl": true,
              "mode": "list",
              "value": "user@example.com",
              "cachedResultName": "user@example.com"
            },
            "resource": "calendar",
            "descriptionType": "manual",
            "toolDescription": "Check if a slot is available on my calendar"
          },
          "credentials": {
            "googleCalendarOAuth2Api": {
              "id": "credential-id",
              "name": "googleCalendarOAuth2Api Credential"
            }
          },
          "typeVersion": 1.3
        },
        {
          "id": "bd20eb61-ade0-4b4b-ba89-943dfa11ac05",
          "name": "Get all Events",
          "type": "n8n-nodes-base.googleCalendarTool",
          "position": [
            -368,
            1136
          ],
          "parameters": {
            "options": {
              "orderBy": "startTime",
              "timeZone": {
                "__rl": true,
                "mode": "list",
                "value": "Asia/Kolkata",
                "cachedResultName": "Asia/Kolkata"
              },
              "recurringEventHandling": "expand"
            },
            "timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Before', ``, 'string') }}",
            "timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('After', `Should be a future date and time`, 'string') }}",
            "calendar": {
              "__rl": true,
              "mode": "list",
              "value": "user@example.com",
              "cachedResultName": "user@example.com"
            },
            "operation": "getAll",
            "returnAll": true,
            "descriptionType": "manual",
            "toolDescription": "Get future events on Google Calendar"
          },
          "credentials": {
            "googleCalendarOAuth2Api": {
              "id": "credential-id",
              "name": "googleCalendarOAuth2Api Credential"
            }
          },
          "typeVersion": 1.3
        },
        {
          "id": "ace1f669-dd08-48df-81bc-30c852e1424d",
          "name": "Delete Calendar Event",
          "type": "n8n-nodes-base.googleCalendarTool",
          "position": [
            -288,
            1248
          ],
          "parameters": {
            "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', `Pass the event id of the event to delete`, 'string') }}",
            "options": {},
            "calendar": {
              "__rl": true,
              "mode": "list",
              "value": "user@example.com",
              "cachedResultName": "user@example.com"
            },
            "operation": "delete",
            "descriptionType": "manual",
            "toolDescription": "Delete Calendar Event"
          },
          "credentials": {
            "googleCalendarOAuth2Api": {
              "id": "credential-id",
              "name": "googleCalendarOAuth2Api Credential"
            }
          },
          "typeVersion": 1.3
        },
        {
          "id": "e24ed479-8a75-4c21-9f25-51d603b35574",
          "name": "Reschedule Event",
          "type": "n8n-nodes-base.googleCalendarTool",
          "position": [
            -160,
            1264
          ],
          "parameters": {
            "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', `Pass the id of the event to reschedule or update`, 'string') }}",
            "calendar": {
              "__rl": true,
              "mode": "list",
              "value": "user@example.com",
              "cachedResultName": "user@example.com"
            },
            "operation": "update",
            "updateFields": {
              "end": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End', ``, 'string') }}",
              "start": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start', ``, 'string') }}",
              "attendeesUi": {
                "values": {
                  "mode": "replace",
                  "attendees": [
                    "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('attendees0_Attendees', ``, 'string') }}"
                  ]
                }
              },
              "sendUpdates": "all"
            },
            "descriptionType": "manual",
            "toolDescription": "Update an event on Google Calendar",
            "useDefaultReminders": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Use_Default_Reminders', ``, 'boolean') }}"
          },
          "credentials": {
            "googleCalendarOAuth2Api": {
              "id": "credential-id",
              "name": "googleCalendarOAuth2Api Credential"
            }
          },
          "typeVersion": 1.3
        },
        {
          "id": "8e9a40fd-9f34-44e0-b256-f15eb0a73ba2",
          "name": "Get Event",
          "type": "n8n-nodes-base.googleCalendarTool",
          "position": [
            -80,
            1152
          ],
          "parameters": {
            "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', `Pass the event id`, 'string') }}",
            "options": {},
            "calendar": {
              "__rl": true,
              "mode": "list",
              "value": "user@example.com",
              "cachedResultName": "user@example.com"
            },
            "operation": "get",
            "descriptionType": "manual",
            "toolDescription": "Get an event in Google Calendar"
          },
          "credentials": {
            "googleCalendarOAuth2Api": {
              "id": "credential-id",
              "name": "googleCalendarOAuth2Api Credential"
            }
          },
          "typeVersion": 1.3
        },
        {
          "id": "991c7d7f-3bcf-4006-8a56-8e606ff49307",
          "name": "Create an event",
          "type": "n8n-nodes-base.googleCalendarTool",
          "position": [
            16,
            1040
          ],
          "parameters": {
            "end": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End', ``, 'string') }}",
            "start": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start', ``, 'string') }}",
            "calendar": {
              "__rl": true,
              "mode": "list",
              "value": "user@example.com",
              "cachedResultName": "user@example.com"
            },
            "descriptionType": "manual",
            "toolDescription": "Create an event on Google Calendar",
            "additionalFields": {
              "summary": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Summary', ``, 'string') }}",
              "visibility": "default",
              "description": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Description', ``, 'string') }}"
            },
            "useDefaultReminders": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Use_Default_Reminders', ``, 'boolean') }}"
          },
          "credentials": {
            "googleCalendarOAuth2Api": {
              "id": "credential-id",
              "name": "googleCalendarOAuth2Api Credential"
            }
          },
          "typeVersion": 1.3
        },
        {
          "id": "f4245e85-acc0-4529-9524-3484a237da24",
          "name": "Calendar MCP Server",
          "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
          "position": [
            -352,
            880
          ],
          "webhookId": "64e72cc1-3df0-4090-9522-d534c3f245aa",
          "parameters": {
            "path": "64e72cc1-3df0-4090-9522-d534c3f245aa"
          },
          "typeVersion": 1
        },
        {
          "id": "7ca06309-610f-4372-84b4-ce6c45161ebb",
          "name": "Calendar MCP",
          "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
          "position": [
            752,
            464
          ],
          "parameters": {
            "endpointUrl": "https://n8n.exildraw.com/mcp/google-calendar/sse"
          },
          "typeVersion": 1.1
        },
        {
          "id": "c6df9650-e936-4ddb-8c5c-e11a286fb4a0",
          "name": "Complete a Task",
          "type": "n8n-nodes-base.googleTasksTool",
          "position": [
            -672,
            880
          ],
          "parameters": {
            "task": "MDM1NDg1NzcxMjIyNzg5NzQ1ODI6MDow",
            "taskId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Task_ID', `Pass the task_id of the task to be completed`, 'string') }}",
            "operation": "update",
            "updateFields": {
              "status": "completed",
              "completed": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Completion_Date', `Pass the date when the task is completed`, 'string') }}"
            }
          },
          "credentials": {
            "googleTasksOAuth2Api": {
              "id": "credential-id",
              "name": "googleTasksOAuth2Api Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "d4e2bb15-dee8-4f0c-af43-bb31f49891f0",
          "name": "Task Manager MCP",
          "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
          "position": [
            -1024,
            736
          ],
          "webhookId": "7bf1c961-4feb-4c31-919e-ff300c40406d",
          "parameters": {
            "path": "7bf1c961-4feb-4c31-919e-ff300c40406d"
          },
          "typeVersion": 2
        },
        {
          "id": "af55b978-143b-424a-9039-887506a91b30",
          "name": "Telegram Trigger",
          "type": "n8n-nodes-base.telegramTrigger",
          "position": [
            -960,
            416
          ],
          "webhookId": "6d90bff2-32dd-44fc-b11b-4217a615dfed",
          "parameters": {
            "updates": [
              "message"
            ],
            "additionalFields": {}
          },
          "credentials": {
            "telegramApi": {
              "id": "credential-id",
              "name": "telegramApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "aa3d2cf3-650c-4666-a64e-769b9f8cb0a7",
          "name": "Switch",
          "type": "n8n-nodes-base.switch",
          "position": [
            -528,
            416
          ],
          "parameters": {
            "rules": {
              "values": [
                {
                  "outputKey": "Text",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "3421ce54-2c7c-4c87-ab7f-a4598eaa7f6b",
                        "operator": {
                          "type": "string",
                          "operation": "exists",
                          "singleValue": true
                        },
                        "leftValue": "={{ $json.message.text }}",
                        "rightValue": ""
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "Audio",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "85c06561-3e1d-4871-af64-f08e5f657b24",
                        "operator": {
                          "type": "string",
                          "operation": "notExists",
                          "singleValue": true
                        },
                        "leftValue": "={{ $json.message.text }}",
                        "rightValue": ""
                      }
                    ]
                  },
                  "renameOutput": true
                }
              ]
            },
            "options": {}
          },
          "typeVersion": 3.2
        },
        {
          "id": "92c02fd5-d0fc-4275-8df2-a0df28e3e334",
          "name": "Transcribe audio or video",
          "type": "@elevenlabs/n8n-nodes-elevenlabs.elevenLabs",
          "position": [
            -80,
            512
          ],
          "parameters": {
            "resource": "speech",
            "operation": "speechToText",
            "requestOptions": {},
            "additionalOptions": {}
          },
          "credentials": {
            "elevenLabsApi": {
              "id": "credential-id",
              "name": "elevenLabsApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "3b91e7aa-2023-4d19-9fee-5505525a351b",
          "name": "Finance Tracker",
          "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
          "position": [
            512,
            704
          ],
          "parameters": {
            "endpointUrl": "https://n8n.exildraw.com/mcp/finance-manager/sse"
          },
          "typeVersion": 1.1
        },
        {
          "id": "560ba8cf-1eaa-4d24-bce3-5714a2a3e6c7",
          "name": "Finance Manager MCP Server",
          "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
          "notes": "🚀 MCP TRIGGER\n\nThis is the entry point for AI interactions with Google Sheets. The MCP (Model Context Protocol) trigger allows AI models to call any of the connected Google Sheets tools based on user requests.\n\nKey Features:\n• Enables natural language spreadsheet commands\n• Routes AI requests to appropriate Sheets operations\n• Provides context-aware data management\n• Supports complex multi-step data workflows\n• Handles dynamic sheet and document selection",
          "position": [
            1104,
            688
          ],
          "webhookId": "f226741c-0f79-4f23-96bf-d8eb47206bcf",
          "parameters": {
            "path": "f226741c-0f79-4f23-96bf-d8eb47206bcf"
          },
          "typeVersion": 1.1
        },
        {
          "id": "5cc589b4-55b0-4a41-9a4b-b3dce0d4fd68",
          "name": "Get all Expenses",
          "type": "n8n-nodes-base.googleSheetsTool",
          "notes": "📊 READ SPREADSHEET DATA\n\nRetrieve and analyze data from Google Sheets. Perfect for AI to read, process, and extract insights from spreadsheet content.\n\nUse Cases:\n• \"Read data from the Sales sheet\"\n• \"Get all entries from A1:E100\"\n• \"Show me the data in the Budget spreadsheet\"\n• \"Extract customer information from the CRM sheet\"\n\nAI Parameters:\n• Document_ID: Target spreadsheet ID\n• Sheet_Name: Specific sheet tab name\n• Range: Cell range to read (optional)",
          "position": [
            1104,
            848
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QCS8_RA5neEDAmgotpzgbBbeEjdYi-LAmCSJVeNWVxs/edit#gid=0",
              "cachedResultName": "Sheet1"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1QCS8_RA5neEDAmgotpzgbBbeEjdYi-LAmCSJVeNWVxs",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QCS8_RA5neEDAmgotpzgbBbeEjdYi-LAmCSJVeNWVxs/edit?usp=drivesdk",
              "cachedResultName": "Expense Tracker"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "4370dc5c-9f3d-4954-8ca3-a4c6cd5b3aec",
          "name": "Create Expense",
          "type": "n8n-nodes-base.googleSheetsTool",
          "notes": "🗑️ CLEAR SPREADSHEET DATA\n\nRemove data from specific ranges or entire sheets. Useful for resetting data, clearing temporary calculations, or preparing sheets for new data.\n\nUse Cases:\n• \"Clear all data from the temp sheet\"\n• \"Remove entries from A1:E100\"\n• \"Clean up the old data in column C\"\n• \"Reset the calculation area\"\n\nAI Parameters:\n• Document_ID: Target spreadsheet ID\n• Sheet_Name: Sheet to clear data from\n• Range: Specific range to clear\n\n⚠️ Use with caution - data will be permanently removed!",
          "position": [
            1232,
            912
          ],
          "parameters": {
            "columns": {
              "value": {
                "Date": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Date', ``, 'string') }}",
                "Amount": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Amount', ``, 'string') }}",
                "Category": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Category', ``, 'string') }}",
                "Description": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Description', ``, 'string') }}"
              },
              "schema": [
                {
                  "id": "Date",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Date",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Description",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Description",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Category",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Category",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Amount",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Amount",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "append",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QCS8_RA5neEDAmgotpzgbBbeEjdYi-LAmCSJVeNWVxs/edit#gid=0",
              "cachedResultName": "Sheet1"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1QCS8_RA5neEDAmgotpzgbBbeEjdYi-LAmCSJVeNWVxs",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QCS8_RA5neEDAmgotpzgbBbeEjdYi-LAmCSJVeNWVxs/edit?usp=drivesdk",
              "cachedResultName": "Expense Tracker"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "57e641c9-341b-4011-9dac-392e90b76946",
          "name": "Delete Expense",
          "type": "n8n-nodes-base.googleSheetsTool",
          "notes": "➕ ADD NEW DATA\n\nAppend new rows of data to existing sheets. Perfect for adding records, logging events, or inserting new entries without affecting existing data.\n\nUse Cases:\n• \"Add a new customer to the CRM sheet\"\n• \"Log today's sales data\"\n• \"Insert a new project entry\"\n• \"Record the meeting notes\"\n\nAI Parameters:\n• Document_ID: Target spreadsheet ID\n• Sheet_Name: Sheet to add data to\n• Data_To_Add: Array/object of new data\n\nFeatures:\n• Automatically finds next empty row\n• Preserves existing data\n• Supports multiple columns",
          "position": [
            1360,
            864
          ],
          "parameters": {
            "clear": "specificRows",
            "operation": "clear",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QCS8_RA5neEDAmgotpzgbBbeEjdYi-LAmCSJVeNWVxs/edit#gid=0",
              "cachedResultName": "Sheet1"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1QCS8_RA5neEDAmgotpzgbBbeEjdYi-LAmCSJVeNWVxs",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QCS8_RA5neEDAmgotpzgbBbeEjdYi-LAmCSJVeNWVxs/edit?usp=drivesdk",
              "cachedResultName": "Expense Tracker"
            },
            "startIndex": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start_Row_Number', ``, 'number') }}",
            "rowsToDelete": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Number_of_Rows_to_Delete', ``, 'number') }}"
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "54299e84-a368-426e-833c-103d75627e42",
          "name": "Get many Tasks",
          "type": "n8n-nodes-base.googleTasksTool",
          "position": [
            -736,
            1024
          ],
          "parameters": {
            "task": "MDM1NDg1NzcxMjIyNzg5NzQ1ODI6MDow",
            "operation": "getAll",
            "returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}",
            "descriptionType": "manual",
            "toolDescription": "Get tasks from Google Tasks",
            "additionalFields": {
              "showCompleted": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Show_Completed', ``, 'boolean') }}"
            }
          },
          "credentials": {
            "googleTasksOAuth2Api": {
              "id": "credential-id",
              "name": "googleTasksOAuth2Api Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "d023f181-74b2-4def-9386-2281725858c9",
          "name": "Delete a Task",
          "type": "n8n-nodes-base.googleTasksTool",
          "position": [
            -848,
            1072
          ],
          "parameters": {
            "task": "MDM1NDg1NzcxMjIyNzg5NzQ1ODI6MDow",
            "taskId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Task_ID', ``, 'string') }}",
            "operation": "delete"
          },
          "credentials": {
            "googleTasksOAuth2Api": {
              "id": "credential-id",
              "name": "googleTasksOAuth2Api Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "c5e06181-c0ab-445c-98ea-6ac6af5af4af",
          "name": "Get a Task",
          "type": "n8n-nodes-base.googleTasksTool",
          "position": [
            -976,
            1008
          ],
          "parameters": {
            "task": "MDM1NDg1NzcxMjIyNzg5NzQ1ODI6MDow",
            "taskId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Task_ID', ``, 'string') }}",
            "operation": "get"
          },
          "credentials": {
            "googleTasksOAuth2Api": {
              "id": "credential-id",
              "name": "googleTasksOAuth2Api Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "1d58be0d-9f6e-44dc-8f2a-fea3dc8476fd",
          "name": "Create a Task",
          "type": "n8n-nodes-base.googleTasksTool",
          "position": [
            -1072,
            896
          ],
          "parameters": {
            "task": "MDM1NDg1NzcxMjIyNzg5NzQ1ODI6MDow",
            "title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
            "additionalFields": {
              "notes": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Notes', ``, 'string') }}",
              "dueDate": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Due_Date', `Always use future dates`, 'string') }}"
            }
          },
          "credentials": {
            "googleTasksOAuth2Api": {
              "id": "credential-id",
              "name": "googleTasksOAuth2Api Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "e326af47-5c2b-4cc6-8ac1-ea9e78cbcf1c",
          "name": "Get a file",
          "type": "n8n-nodes-base.telegram",
          "position": [
            -304,
            512
          ],
          "webhookId": "5d719ec7-55ad-4932-a4ac-de93be5d90c8",
          "parameters": {
            "fileId": "={{ $json.message.voice.file_id }}",
            "resource": "file",
            "additionalFields": {}
          },
          "credentials": {
            "telegramApi": {
              "id": "credential-id",
              "name": "telegramApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "8782f94e-ac80-43d9-9491-ad9c926a3b22",
          "name": "Get Contacts",
          "type": "n8n-nodes-base.googleContactsTool",
          "position": [
            1232,
            1376
          ],
          "parameters": {
            "query": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Query', ``, 'string') }}",
            "fields": [
              "names",
              "emailAddresses"
            ],
            "options": {},
            "rawData": true,
            "useQuery": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Use_Query', ``, 'boolean') }}",
            "operation": "getAll"
          },
          "credentials": {
            "googleContactsOAuth2Api": {
              "id": "credential-id",
              "name": "googleContactsOAuth2Api Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "aa6a2a74-000d-4eaf-87ff-fe6171f4bc56",
          "name": "Google Contacts MCP",
          "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
          "position": [
            1216,
            1216
          ],
          "webhookId": "01e90a0b-6f53-40d0-a8d3-a05c34a46fbb",
          "parameters": {
            "path": "01e90a0b-6f53-40d0-a8d3-a05c34a46fbb"
          },
          "typeVersion": 2
        },
        {
          "id": "93aae457-a126-4928-ae8d-c66a96950272",
          "name": "Google Contacts",
          "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
          "position": [
            624,
            672
          ],
          "parameters": {
            "endpointUrl": "https://n8n.exildraw.com/mcp/google-contacts"
          },
          "typeVersion": 1.1
        },
        {
          "id": "c55bbfc0-fab5-47e9-a98a-6cd35cdde48a",
          "name": "Send a text message",
          "type": "n8n-nodes-base.telegram",
          "position": [
            1392,
            128
          ],
          "webhookId": "84ca051b-0e3c-4311-8117-eca08c4a86fa",
          "parameters": {
            "text": "={{ $('Set Reply Message').item.json.message.replace(/[_*\\[\\]()~`>#+=\\-|{}.!\\\\]/g, '\\\\$&') }}",
            "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
            "additionalFields": {
              "parse_mode": "MarkdownV2",
              "appendAttribution": false
            }
          },
          "credentials": {
            "telegramApi": {
              "id": "credential-id",
              "name": "telegramApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "1e4372bb-7380-4484-a498-8a5948b662d7",
          "name": "Jarvis",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "onError": "continueRegularOutput",
          "position": [
            368,
            320
          ],
          "parameters": {
            "text": "={{ $json.message.text }}\n\n{{ $json.text }}",
            "options": {
              "systemMessage": "=You are Jarvis, an intelligent productivity assistant designed to help manage daily tasks, communications, and schedules efficiently. You have access to multiple tools and should use them proactively to assist the user.\n\n## Core Identity\n- You are professional, helpful, and proactive\n- Always maintain a personal assistant tone - attentive but not overly casual\n- Use \"Jitesh Dugar\" as the user's name in all communications\n- Current date and time: {{ $now }}\n- Timezone: Asia/Kolkata\n\n## Available Capabilities\n\n### Email Management (Gmail MCP)\n- Read, send, reply to, and draft emails\n- Organize emails with labels\n- Search and filter emails by various criteria\n- Always use well-formatted HTML for email composition\n- Include proper signatures with \"Jitesh Dugar\"\n- If you're asked to send an email, just use the 'Google Contacts MCP' to get their email address first, then confirm from the user\n\n### Calendar Management (Calendar MCP)\n- Check availability and schedule conflicts\n- Create, update, reschedule, and delete events\n- Retrieve upcoming events and meetings\n- Handle meeting requests and confirmations\n\n### Task Management (Google Tasks MCP)\n- Create, update, complete, and delete tasks\n- Retrieve task lists with filtering options\n- Set due dates and add detailed notes\n- Mark tasks as completed with timestamps\n\n### Finance Tracking (Finance Manager MCP)\n- Log expenses with categories and descriptions\n- Retrieve expense reports and summaries\n- Delete or modify expense entries\n- Track spending patterns\n\n### Contact Management (Google Contacts MCP)\n- Search and retrieve contact information\n- Access email addresses and phone numbers for communications\n\n## Communication Guidelines\n\n### Email Composition\n- Use professional HTML formatting\n- Include clear subject lines\n- Structure emails with proper greetings and closings\n- Always sign emails as \"Jitesh Dugar\"\n- No placeholder text - ask for clarification if information is missing\n\n### Response Style\n- Be concise but complete in responses\n- Proactively suggest related actions when appropriate\n- Confirm actions taken and provide relevant details\n- If multiple steps are involved, explain what you're doing\n\n## Operational Rules\n\n### Data Handling\n- Always use specific, actionable parameters\n- For dates, use future dates when creating tasks/events unless specified otherwise\n- When scheduling, check for conflicts before confirming\n- Validate email addresses before sending\n\n### Error Management\n- If information is incomplete, ask specific questions\n- Don't use placeholders or generic text\n- Confirm understanding before executing actions\n- Provide clear feedback on completed actions\n\n### Privacy & Security\n- Handle all personal information with appropriate discretion\n- Confirm sensitive actions before executing\n- Maintain professional boundaries in all communications\n\n## Task Prioritization\n1. **Urgent**: Time-sensitive items (meetings, deadlines)\n2. **Important**: High-impact tasks and communications\n3. **Routine**: Regular maintenance and organization\n4. **Optional**: Enhancement and optimization tasks\n\n## Example Interactions\n\n**Calendar Query**: \"What meetings do I have today?\"\n→ Check calendar for today's events, provide detailed schedule with times and attendees\n\n**Email Task**: \"Send a follow-up email to the marketing team about the quarterly review\"\n→ Ask for specific details if needed, compose professional HTML email, confirm before sending\n\n**Task Creation**: \"Add a reminder to prepare the presentation for next week\"\n→ Create task with appropriate due date, ask for specific deadline if unclear\n\n**Expense Logging**: \"I spent $45 on lunch at the restaurant\"\n→ Log expense with date, amount, category (Food/Dining), and description\n\n## Always Remember\n- You represent Jitesh professionally in all communications\n- Double-check important details before executing actions\n- Provide clear confirmations of completed tasks\n- Be proactive in suggesting helpful follow-up actions\n- Maintain context across conversations using the memory system"
            },
            "promptType": "define"
          },
          "typeVersion": 2.2
        },
        {
          "id": "179ee564-930e-441c-83c1-186059367bf6",
          "name": "Only allow me",
          "type": "n8n-nodes-base.filter",
          "position": [
            -752,
            416
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "74570957-ff95-4df8-bbc2-043c4973a733",
                  "operator": {
                    "name": "filter.operator.equals",
                    "type": "string",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $json.message.chat.username }}",
                  "rightValue": "jackman8"
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "08fa5cc0-27a1-4a26-b6b1-518536f4e456",
          "name": "Set Reply Message",
          "type": "n8n-nodes-base.set",
          "position": [
            976,
            320
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "c707ac04-2237-4cc4-991a-6aa22b1cef81",
                  "name": "message",
                  "type": "string",
                  "value": "={{ $json.output || $json.error }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "293a8570-61ee-4570-a153-2f06fcbe29ef",
          "name": "Check Text or Audio",
          "type": "n8n-nodes-base.switch",
          "position": [
            1168,
            320
          ],
          "parameters": {
            "rules": {
              "values": [
                {
                  "outputKey": "Text",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "9f763ec1-25e5-4a4d-88fa-70156851ff2a",
                        "operator": {
                          "type": "string",
                          "operation": "exists",
                          "singleValue": true
                        },
                        "leftValue": "={{ $('Telegram Trigger').item.json.message.text }}",
                        "rightValue": ""
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "Audio",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "12be0a10-540d-423c-82de-00d0e9e9e501",
                        "operator": {
                          "type": "string",
                          "operation": "notExists",
                          "singleValue": true
                        },
                        "leftValue": "={{ $('Telegram Trigger').item.json.message.text }}",
                        "rightValue": ""
                      }
                    ]
                  },
                  "renameOutput": true
                }
              ]
            },
            "options": {}
          },
          "typeVersion": 3.2
        },
        {
          "id": "c571092d-4c91-4b0c-b1a7-e0098f336fc0",
          "name": "Send an audio file",
          "type": "n8n-nodes-base.telegram",
          "position": [
            1584,
            320
          ],
          "webhookId": "0e0fd537-aacc-494b-82bb-81a9bac31087",
          "parameters": {
            "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
            "operation": "sendAudio",
            "binaryData": true,
            "additionalFields": {
              "caption": "={{ $('Set Reply Message').item.json.message.replace(/[_*\\[\\]()~`>#+=\\-|{}.!\\\\]/g, '\\\\$&') }}",
              "fileName": "Jarvis's Reply"
            }
          },
          "credentials": {
            "telegramApi": {
              "id": "credential-id",
              "name": "telegramApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "f9dbe402-bf2f-4ee0-802d-1f8dea1b46d6",
          "name": "Convert text to speech",
          "type": "@elevenlabs/n8n-nodes-elevenlabs.elevenLabs",
          "position": [
            1392,
            368
          ],
          "parameters": {
            "text": "={{ $('Set Reply Message').item.json.message }}",
            "voice": {
              "__rl": true,
              "mode": "list",
              "value": "MF4J4IDTRo0AxOO4dpFR",
              "cachedResultName": "Devi - Clear Hindi pronunciation"
            },
            "resource": "speech",
            "requestOptions": {},
            "additionalOptions": {}
          },
          "credentials": {
            "elevenLabsApi": {
              "id": "credential-id",
              "name": "elevenLabsApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "6354b7fd-c734-414f-b75c-d1aea74bd648",
          "name": "Think",
          "type": "@n8n/n8n-nodes-langchain.toolThink",
          "position": [
            320,
            720
          ],
          "parameters": {},
          "typeVersion": 1.1
        },
        {
          "id": "e343c81a-8bc3-4378-b43a-d5518108cf21",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            144,
            144
          ],
          "parameters": {
            "width": 720,
            "height": 704,
            "content": "## Jarvis 🤖\nYour AI-powered personal assistant.  \n- Orchestrates tasks, calendar, emails, contacts & expenses  \n- Uses memory + OpenAI model for smart decisions  \n- Sends results back to Telegram  "
          },
          "typeVersion": 1
        },
        {
          "id": "05be19b3-cfdc-43b7-88ab-7b7b4167e0fd",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            224,
            880
          ],
          "parameters": {
            "color": 3,
            "width": 768,
            "height": 640,
            "content": "## Gmail MCP 📧\nFull email management.  \n- Send & draft messages  \n- Reply, label, and fetch emails  "
          },
          "typeVersion": 1
        },
        {
          "id": "052413b1-42e2-4ada-95d1-08cbaa1f88b8",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1024,
            528
          ],
          "parameters": {
            "color": 4,
            "width": 496,
            "height": 544,
            "content": "## Finance Manager MCP 💵\nTrack personal or business expenses.  \n- Create new expenses  \n- Get expense reports  \n- Delete outdated entries  "
          },
          "typeVersion": 1
        },
        {
          "id": "afd43947-b4a8-412f-82da-62885e2406d5",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1056,
            1088
          ],
          "parameters": {
            "color": 6,
            "width": 448,
            "height": 416,
            "content": "## Google Contacts MCP 👥\nAccess and manage your contact list.  \n- Fetch contacts for quick communication  "
          },
          "typeVersion": 1
        },
        {
          "id": "efda731e-8751-4a67-b76c-a8bacac92064",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -512,
            720
          ],
          "parameters": {
            "color": 5,
            "width": 624,
            "height": 704,
            "content": "## Calendar MCP 📅\nYour scheduling hub.  \n- Check availability  \n- Create, reschedule, or delete events "
          },
          "typeVersion": 1
        },
        {
          "id": "3558db0a-ebe7-4942-9dfb-ad610d59a94b",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1104,
            592
          ],
          "parameters": {
            "color": 6,
            "width": 560,
            "height": 624,
            "content": "## Task Manager MCP ✅\nManages to-dos with ease:  \n- Create / Complete / Delete tasks  \n- Retrieve individual or bulk tasks "
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {
        "Telegram Trigger": [
          {
            "json": {
              "message": {
                "chat": {
                  "id": 866308086,
                  "type": "private",
                  "username": "jackman8",
                  "first_name": "Jack"
                },
                "date": 1757728469,
                "from": {
                  "id": 866308086,
                  "is_bot": false,
                  "username": "jackman8",
                  "first_name": "Jack",
                  "language_code": "en"
                },
                "text": "Check from my contacts",
                "message_id": 1638
              },
              "update_id": 501517144
            }
          }
        ],
        "Set Reply Message": [
          {
            "json": {
              "message": "I still cannot access your contacts due to permission or credential restrictions. Please let me know if there is a specific contact detail you want me to assist with or any other request."
            }
          }
        ],
        "Transcribe audio or video": [
          {
            "json": {
              "text": "What meetings do we have today?",
              "words": [
                {
                  "end": 0.699,
                  "text": "What",
                  "type": "word",
                  "start": 0.519,
                  "logprob": 0
                },
                {
                  "end": 0.74,
                  "text": " ",
                  "type": "spacing",
                  "start": 0.699,
                  "logprob": 0
                },
                {
                  "end": 1.059,
                  "text": "meetings",
                  "type": "word",
                  "start": 0.74,
                  "logprob": 0
                },
                {
                  "end": 1.079,
                  "text": " ",
                  "type": "spacing",
                  "start": 1.059,
                  "logprob": 0
                },
                {
                  "end": 1.139,
                  "text": "do",
                  "type": "word",
                  "start": 1.079,
                  "logprob": 0
                },
                {
                  "end": 1.179,
                  "text": " ",
                  "type": "spacing",
                  "start": 1.139,
                  "logprob": 0
                },
                {
                  "end": 1.259,
                  "text": "we",
                  "type": "word",
                  "start": 1.179,
                  "logprob": 0
                },
                {
                  "end": 1.279,
                  "text": " ",
                  "type": "spacing",
                  "start": 1.259,
                  "logprob": 0
                },
                {
                  "end": 1.459,
                  "text": "have",
                  "type": "word",
                  "start": 1.279,
                  "logprob": 0
                },
                {
                  "end": 1.479,
                  "text": " ",
                  "type": "spacing",
                  "start": 1.459,
                  "logprob": 0
                },
                {
                  "end": 2.019,
                  "text": "today?",
                  "type": "word",
                  "start": 1.48,
                  "logprob": 0
                }
              ],
              "language_code": "eng",
              "transcription_id": "sqcPU83tXx6B3wyBGtHP",
              "language_probability": 0.9588561058044434
            }
          }
        ]
      },
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "d710d95f-7ff1-478c-955a-db292f3e384e",
      "connections": {
        "Think": {
          "ai_tool": [
            [
              {
                "node": "Jarvis",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Jarvis": {
          "main": [
            [
              {
                "node": "Set Reply Message",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Switch": {
          "main": [
            [
              {
                "node": "Jarvis",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Get a file",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Get Event": {
          "ai_tool": [
            [
              {
                "node": "Calendar MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Gmail MCP": {
          "ai_tool": [
            [
              {
                "node": "Jarvis",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Get Emails": {
          "ai_tool": [
            [
              {
                "node": "Gmail MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Get Labels": {
          "ai_tool": [
            [
              {
                "node": "Gmail MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Get a Task": {
          "ai_tool": [
            [
              {
                "node": "Task Manager MCP",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Get a file": {
          "main": [
            [
              {
                "node": "Transcribe audio or video",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Send Email": {
          "ai_tool": [
            [
              {
                "node": "Gmail MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Draft Email": {
          "ai_tool": [
            [
              {
                "node": "Gmail MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Calendar MCP": {
          "ai_tool": [
            [
              {
                "node": "Jarvis",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Get Contacts": {
          "ai_tool": [
            [
              {
                "node": "Google Contacts MCP",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Create a Task": {
          "ai_tool": [
            [
              {
                "node": "Task Manager MCP",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Delete a Task": {
          "ai_tool": [
            [
              {
                "node": "Task Manager MCP",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Only allow me": {
          "main": [
            [
              {
                "node": "Switch",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Simple Memory": {
          "ai_memory": [
            [
              {
                "node": "Jarvis",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "Create Expense": {
          "ai_tool": [
            [
              {
                "node": "Finance Manager MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Delete Expense": {
          "ai_tool": [
            [
              {
                "node": "Finance Manager MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Get all Events": {
          "ai_tool": [
            [
              {
                "node": "Calendar MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Get many Tasks": {
          "ai_tool": [
            [
              {
                "node": "Task Manager MCP",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Complete a Task": {
          "ai_tool": [
            [
              {
                "node": "Task Manager MCP",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Create an event": {
          "ai_tool": [
            [
              {
                "node": "Calendar MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Finance Tracker": {
          "ai_tool": [
            [
              {
                "node": "Jarvis",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Google Contacts": {
          "ai_tool": [
            [
              {
                "node": "Jarvis",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Get all Expenses": {
          "ai_tool": [
            [
              {
                "node": "Finance Manager MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Google Tasks MCP": {
          "ai_tool": [
            [
              {
                "node": "Jarvis",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Reschedule Event": {
          "ai_tool": [
            [
              {
                "node": "Calendar MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Telegram Trigger": {
          "main": [
            [
              {
                "node": "Only allow me",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Draft Email Reply": {
          "ai_tool": [
            [
              {
                "node": "Gmail MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model": {
          "ai_languageModel": [
            [
              {
                "node": "Jarvis",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Reply to an Email": {
          "ai_tool": [
            [
              {
                "node": "Gmail MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Set Reply Message": {
          "main": [
            [
              {
                "node": "Check Text or Audio",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Add Label to Email": {
          "ai_tool": [
            [
              {
                "node": "Gmail MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Check Availability": {
          "ai_tool": [
            [
              {
                "node": "Calendar MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Check Text or Audio": {
          "main": [
            [
              {
                "node": "Send a text message",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Convert text to speech",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Delete Calendar Event": {
          "ai_tool": [
            [
              {
                "node": "Calendar MCP Server",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Convert text to speech": {
          "main": [
            [
              {
                "node": "Send an audio file",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Transcribe audio or video": {
          "main": [
            [
              {
                "node": "Jarvis",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 52,
      "nodeTypes": {
        "n8n-nodes-base.set": {
          "count": 1
        },
        "n8n-nodes-base.filter": {
          "count": 1
        },
        "n8n-nodes-base.switch": {
          "count": 2
        },
        "n8n-nodes-base.telegram": {
          "count": 3
        },
        "n8n-nodes-base.gmailTool": {
          "count": 7
        },
        "n8n-nodes-base.stickyNote": {
          "count": 6
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 1
        },
        "n8n-nodes-base.googleTasksTool": {
          "count": 5
        },
        "n8n-nodes-base.telegramTrigger": {
          "count": 1
        },
        "n8n-nodes-base.googleSheetsTool": {
          "count": 3
        },
        "n8n-nodes-base.googleCalendarTool": {
          "count": 6
        },
        "n8n-nodes-base.googleContactsTool": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.toolThink": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.mcpTrigger": {
          "count": 5
        },
        "@n8n/n8n-nodes-langchain.lmChatOpenAi": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.mcpClientTool": {
          "count": 5
        },
        "@elevenlabs/n8n-nodes-elevenlabs.elevenLabs": {
          "count": 2
        },
        "@n8n/n8n-nodes-langchain.memoryBufferWindow": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Jitesh Dugar",
      "username": "jiteshdugar",
      "bio": "AI Automation Specialist - OpenAI, CRM & Automation Expert with a solid understanding of various tools that include Zapier, Make, Zoho CRM, Hubspot, Google Sheets, Airtable, Pipedrive, Google Analytics, and more.",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/jiteshdugar"
      ],
      "avatar": "https://gravatar.com/avatar/edaa3abb99806b0586dced559d0a5417f24a507e7c4464a63960f0638a4b1b90?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 38,
        "icon": "fa:pen",
        "name": "n8n-nodes-base.set",
        "codex": {
          "data": {
            "alias": [
              "Set",
              "JS",
              "JSON",
              "Filter",
              "Transform",
              "Map"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Edit Fields"
        },
        "iconData": {
          "icon": "pen",
          "type": "icon"
        },
        "displayName": "Edit Fields (Set)",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 49,
        "icon": "file:telegram.svg",
        "name": "n8n-nodes-base.telegram",
        "codex": {
          "data": {
            "alias": [
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/world-poetry-day-workflow/",
                  "icon": "📜",
                  "label": "Celebrating World Poetry Day with a daily poem in Telegram"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/",
                  "icon": "🤟",
                  "label": "Creating scheduled text affirmations with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-telegram-bots-with-n8n-a-no-code-platform/",
                  "icon": "💬",
                  "label": "Creating Telegram Bots with n8n, a No-Code Platform"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.telegram/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/telegram/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Telegram"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Telegram",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 50,
        "icon": "file:telegram.svg",
        "name": "n8n-nodes-base.telegramTrigger",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/creating-telegram-bots-with-n8n-a-no-code-platform/",
                  "icon": "💬",
                  "label": "Creating Telegram Bots with n8n, a No-Code Platform"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.telegramtrigger/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/telegram/"
                }
              ]
            },
            "categories": [
              "Communication"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Telegram Trigger"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Telegram Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          }
        ]
      },
      {
        "id": 112,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.switch",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "If",
              "Path",
              "Filter",
              "Condition",
              "Logic",
              "Branch",
              "Case"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Switch",
          "color": "#506000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "Switch",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 844,
        "icon": "fa:filter",
        "name": "n8n-nodes-base.filter",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "Filter",
              "Condition",
              "Logic",
              "Boolean",
              "Branch"
            ],
            "details": "The Filter node can be used to filter items based on a condition. If the condition is met, the item will be passed on to the next node. If the condition is not met, the item will be omitted. Conditions can be combined together by AND(meet all conditions), or OR(meet at least one condition).",
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.filter/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Filter",
          "color": "#229eff"
        },
        "iconData": {
          "icon": "filter",
          "type": "icon"
        },
        "displayName": "Filter",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 1119,
        "icon": "fa:robot",
        "name": "@n8n/n8n-nodes-langchain.agent",
        "codex": {
          "data": {
            "alias": [
              "LangChain",
              "Chat",
              "Conversational",
              "Plan and Execute",
              "ReAct",
              "Tools"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Agents",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "AI Agent",
          "color": "#404040"
        },
        "iconData": {
          "icon": "robot",
          "type": "icon"
        },
        "displayName": "AI Agent",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1153,
        "icon": "file:openAiLight.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "OpenAI Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "OpenAI Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1163,
        "icon": "fa:database",
        "name": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Memory"
              ],
              "Memory": [
                "For beginners"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Simple Memory"
        },
        "iconData": {
          "icon": "database",
          "type": "icon"
        },
        "displayName": "Simple Memory",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1289,
        "icon": "fa:brain",
        "name": "@n8n/n8n-nodes-langchain.toolThink",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolthink/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Tools"
              ],
              "Tools": [
                "Other Tools"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Think"
        },
        "iconData": {
          "icon": "brain",
          "type": "icon"
        },
        "displayName": "Think Tool",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1292,
        "icon": "file:../mcp.svg",
        "name": "@n8n/n8n-nodes-langchain.mcpClientTool",
        "codex": {
          "data": {
            "alias": [
              "Model Context Protocol",
              "MCP Client"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolmcp/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Model Context Protocol",
                "Tools"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "MCP Client"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCIgdmlld0JveD0iMCAwIDE5NSAxOTUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cgk8ZyBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+CgkJPHBhdGggZD0iTTI1IDk3Ljg1MjhMOTIuODgyMyAyOS45NzA2QzEwMi4yNTUgMjAuNTk4IDExNy40NTEgMjAuNTk4IDEyNi44MjMgMjkuOTcwNlYyOS45NzA2QzEzNi4xOTYgMzkuMzQzMSAxMzYuMTk2IDU0LjUzOTEgMTI2LjgyMyA2My45MTE3TDc1LjU1ODEgMTE1LjE3NyIvPgoJCTxwYXRoIGQ9Ik03Ni4yNjUzIDExNC40N0wxMjYuODIzIDYzLjkxMTdDMTM2LjE5NiA1NC41MzkxIDE1MS4zOTIgNTQuNTM5MSAxNjAuNzY1IDYzLjkxMTdMMTYxLjExOCA2NC4yNjUyQzE3MC40OTEgNzMuNjM3OCAxNzAuNDkxIDg4LjgzMzggMTYxLjExOCA5OC4yMDYzTDk5LjcyNDggMTU5LjZDOTYuNjAwNiAxNjIuNzI0IDk2LjYwMDYgMTY3Ljc4OSA5OS43MjQ4IDE3MC45MTNMMTEyLjMzMSAxODMuNTIiLz4KCQk8cGF0aCBkPSJNMTA5Ljg1MyA0Ni45NDExTDU5LjY0ODIgOTcuMTQ1N0M1MC4yNzU3IDEwNi41MTggNTAuMjc1NyAxMjEuNzE0IDU5LjY0ODIgMTMxLjA4N1YxMzEuMDg3QzY5LjAyMDggMTQwLjQ1OSA4NC4yMTY4IDE0MC40NTkgOTMuNTg5NCAxMzEuMDg3TDE0My43OTQgODAuODgyMiIvPgoJPC9nPgo8L3N2Zz4K"
        },
        "displayName": "MCP Client Tool",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1293,
        "icon": "file:../mcp.svg",
        "name": "@n8n/n8n-nodes-langchain.mcpTrigger",
        "codex": {
          "data": {
            "alias": [
              "Model Context Protocol",
              "MCP Server"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger/"
                }
              ]
            },
            "categories": [
              "AI",
              "Core Nodes",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Root Nodes",
                "Model Context Protocol"
              ],
              "Core Nodes": [
                "Other Trigger Nodes"
              ]
            }
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "MCP Server Trigger"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCIgdmlld0JveD0iMCAwIDE5NSAxOTUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cgk8ZyBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+CgkJPHBhdGggZD0iTTI1IDk3Ljg1MjhMOTIuODgyMyAyOS45NzA2QzEwMi4yNTUgMjAuNTk4IDExNy40NTEgMjAuNTk4IDEyNi44MjMgMjkuOTcwNlYyOS45NzA2QzEzNi4xOTYgMzkuMzQzMSAxMzYuMTk2IDU0LjUzOTEgMTI2LjgyMyA2My45MTE3TDc1LjU1ODEgMTE1LjE3NyIvPgoJCTxwYXRoIGQ9Ik03Ni4yNjUzIDExNC40N0wxMjYuODIzIDYzLjkxMTdDMTM2LjE5NiA1NC41MzkxIDE1MS4zOTIgNTQuNTM5MSAxNjAuNzY1IDYzLjkxMTdMMTYxLjExOCA2NC4yNjUyQzE3MC40OTEgNzMuNjM3OCAxNzAuNDkxIDg4LjgzMzggMTYxLjExOCA5OC4yMDYzTDk5LjcyNDggMTU5LjZDOTYuNjAwNiAxNjIuNzI0IDk2LjYwMDYgMTY3Ljc4OSA5OS43MjQ4IDE3MC45MTNMMTEyLjMzMSAxODMuNTIiLz4KCQk8cGF0aCBkPSJNMTA5Ljg1MyA0Ni45NDExTDU5LjY0ODIgOTcuMTQ1N0M1MC4yNzU3IDEwNi41MTggNTAuMjc1NyAxMjEuNzE0IDU5LjY0ODIgMTMxLjA4N1YxMzEuMDg3QzY5LjAyMDggMTQwLjQ1OSA4NC4yMTY4IDE0MC40NTkgOTMuNTg5NCAxMzEuMDg3TDE0My43OTQgODAuODgyMiIvPgoJPC9nPgo8L3N2Zz4K"
        },
        "displayName": "MCP Server Trigger",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          },
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 43,
        "name": "Personal Productivity"
      },
      {
        "id": 47,
        "name": "AI Chatbot"
      }
    ],
    "image": []
  }
}