{
  "workflow": {
    "id": 9295,
    "name": "WhatsApp productivity assistant with OpenAI, Gmail, Calendar, Tasks & Expense tracking",
    "views": 1378,
    "recentViews": 1,
    "totalViews": 1378,
    "createdAt": "2025-10-06T06:20:01.267Z",
    "description": "## Who's it for\nThis template is designed for anyone who wants to use **WhatsApp as a personal AI assistant hub**. If you often juggle tasks, emails, calendars, and expenses across multiple tools, this workflow consolidates everything into one seamless AI-powered agent accessible right from your most-used messaging app.\n\n## What it does\nJarvis listens to your WhatsApp messages (text or audio) and processes them with OpenAI. Based 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* 🎤 **Process voice notes** and respond intelligently\n\nAll responses are returned directly to WhatsApp, giving you a unified command center that works on any device.\n\n## How to set up\n1. Clone this template into your n8n workspace.\n2. Set up a **WhatsApp Business API** account (via Meta Business Suite or providers like Twilio, 360dialog, or MessageBird).\n3. Configure the WhatsApp webhook to connect to your n8n instance.\n4. Connect your Google accounts (Gmail, Calendar, Contacts, etc.).\n5. Add your **OpenAI API key** in the Credentials section.\n6. Test by sending a WhatsApp message like:\n   * \"Create a meeting tomorrow at 3pm\"\n   * \"Add expense $50 for lunch\"\n   * \"Draft a reply to that email from Steve\"\n   * \"What's on my calendar this week?\"\n\n## Requirements\n* **n8n instance** (cloud or self-hosted with public webhook URL)\n* **WhatsApp Business API** credentials (not regular WhatsApp)\n* **Gmail, Google Calendar, and Google Contacts** credentials (optional based on features)\n* **OpenAI API key**\n* **ElevenLabs API Key** (optional, for advanced audio note processing)\n\n## How to customize\n* **Swap email providers** by replacing the Gmail MCP node with Outlook, Exchange, or IMAP/SMTP.\n* **Add more integrations** like Notion, Slack, Todoist, or your CRM.\n* **Adjust AI personality** by modifying the system prompt in the OpenAI node.\n* **Control context memory** to determine how much conversation history Jarvis remembers.\n* **Add automation rules** like auto-categorizing expenses or auto-scheduling recurring meetings.\n* **Multi-language support** by configuring OpenAI to respond in different languages.\n\n## Key advantages of WhatsApp version\n* 🌍 **Universal access** - WhatsApp works everywhere, including international numbers\n* 📱 **Cross-platform** - Seamlessly works on mobile, web, and desktop\n* 🔒 **End-to-end encryption** for sensitive task and email data\n* 👥 **Familiar interface** - No need to learn a new app\n* ✅ **Read receipts** - Know when Jarvis has processed your request\n\nWith this template, you can transform WhatsApp into your **all-in-one AI productivity assistant**, simplifying workflows and saving hours every week—all from the app you're already using daily.",
    "workflow": {
      "id": "5BpYCZtwsFK9Ic7O",
      "meta": {
        "instanceId": "e56288a9b12ad2dc7c19cc4170f20f7abcacaad5fb3972dd882c9ce4f34e7668",
        "templateCredsSetupCompleted": true
      },
      "name": "Jarvis on WhatsApp",
      "tags": [],
      "nodes": [
        {
          "id": "797f2391-12cd-4133-86a9-c081215220da",
          "name": "OpenAI Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            -768,
            352
          ],
          "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": "0c132bdf-fbb0-47a6-baa1-32c13b3319c0",
          "name": "Simple Memory",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            -688,
            464
          ],
          "parameters": {
            "sessionKey": "=1",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "22ddaffe-21e1-47cd-adf6-531b55f3dc46",
          "name": "Gmail MCP",
          "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
          "position": [
            -560,
            512
          ],
          "parameters": {
            "options": {},
            "endpointUrl": "https://n8n.exildraw.com/mcp/906a5e01-3f46-444e-a3b7-51d2105eac16/sse"
          },
          "typeVersion": 1.1
        },
        {
          "id": "9c7c001f-9b49-467f-9fea-749a5ec8fd0c",
          "name": "Google Tasks MCP",
          "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
          "position": [
            -272,
            448
          ],
          "parameters": {
            "options": {},
            "endpointUrl": "https://n8n.exildraw.com/mcp/7bf1c961-4feb-4c31-919e-ff300c40406d"
          },
          "typeVersion": 1.1
        },
        {
          "id": "2216f1cd-5534-43cd-8a3f-3bb8ae7ca271",
          "name": "Gmail MCP Server",
          "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
          "position": [
            -992,
            880
          ],
          "webhookId": "906a5e01-3f46-444e-a3b7-51d2105eac16",
          "parameters": {
            "path": "906a5e01-3f46-444e-a3b7-51d2105eac16"
          },
          "typeVersion": 1
        },
        {
          "id": "c5d6ce71-bfaf-481d-ad76-512c6c9ba16e",
          "name": "Send Email",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            -1120,
            1040
          ],
          "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": "dd52cb0f-4a58-4f02-8fff-700cc66b6efc",
          "name": "Reply to an Email",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            -1024,
            1104
          ],
          "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": "f228cfa4-e8d0-4b2b-91bd-948835adb37a",
          "name": "Get Emails",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            -912,
            1168
          ],
          "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": "152951b9-22ef-4110-b75c-280d5a754f7b",
          "name": "Add Label to Email",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            -816,
            1232
          ],
          "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": "0187edc1-373c-4cc4-aa7f-3ba6e8a700ec",
          "name": "Get Labels",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            -720,
            1184
          ],
          "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": "b511f985-b323-4dc3-9a45-8fed3a7b0e6c",
          "name": "Draft Email",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            -640,
            1088
          ],
          "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": "d16c07c0-1ade-4fb6-9e97-fb6cd7076c18",
          "name": "Draft Email Reply",
          "type": "n8n-nodes-base.gmailTool",
          "position": [
            -544,
            1008
          ],
          "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": "ec555bb6-8710-4d72-b4a9-7d72840f7fb5",
          "name": "Check Availability",
          "type": "n8n-nodes-base.googleCalendarTool",
          "position": [
            -1856,
            928
          ],
          "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": "562a5c02-1eb4-4e73-85b2-02be6f8d1c50",
          "name": "Get all Events",
          "type": "n8n-nodes-base.googleCalendarTool",
          "position": [
            -1760,
            1008
          ],
          "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": "94f5184c-fb74-4142-ad37-8e8924322c3d",
          "name": "Delete Calendar Event",
          "type": "n8n-nodes-base.googleCalendarTool",
          "position": [
            -1680,
            1120
          ],
          "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": "ec8f47d9-876f-4887-a345-b94391d68167",
          "name": "Reschedule Event",
          "type": "n8n-nodes-base.googleCalendarTool",
          "position": [
            -1552,
            1136
          ],
          "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": "0b7fb455-1686-49b9-9f70-c16c37e99893",
          "name": "Get Event",
          "type": "n8n-nodes-base.googleCalendarTool",
          "position": [
            -1472,
            1024
          ],
          "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": "11983f80-70f6-4405-b546-af98ed243243",
          "name": "Create an event",
          "type": "n8n-nodes-base.googleCalendarTool",
          "position": [
            -1376,
            912
          ],
          "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": "5561dcfd-c9ad-4647-95fb-63929284a0b2",
          "name": "Calendar MCP Server",
          "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
          "position": [
            -1744,
            752
          ],
          "webhookId": "64e72cc1-3df0-4090-9522-d534c3f245aa",
          "parameters": {
            "path": "64e72cc1-3df0-4090-9522-d534c3f245aa"
          },
          "typeVersion": 1
        },
        {
          "id": "a23f3900-a2f8-44ed-a492-97ea87287f9f",
          "name": "Calendar MCP",
          "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
          "position": [
            -224,
            336
          ],
          "parameters": {
            "options": {},
            "endpointUrl": "https://n8n.exildraw.com/mcp/64e72cc1-3df0-4090-9522-d534c3f245aa/sse"
          },
          "typeVersion": 1.1
        },
        {
          "id": "118c89ef-6d7f-41f5-85ee-ccb2318e6c8c",
          "name": "Complete a Task",
          "type": "n8n-nodes-base.googleTasksTool",
          "position": [
            -2064,
            752
          ],
          "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": "e8349f65-94f3-43d5-8f80-134901786b49",
          "name": "Task Manager MCP",
          "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
          "position": [
            -2416,
            608
          ],
          "webhookId": "7bf1c961-4feb-4c31-919e-ff300c40406d",
          "parameters": {
            "path": "7bf1c961-4feb-4c31-919e-ff300c40406d"
          },
          "typeVersion": 2
        },
        {
          "id": "49b6eb9a-346c-4554-9f8f-bc730a9cded8",
          "name": "Switch",
          "type": "n8n-nodes-base.switch",
          "position": [
            -1920,
            288
          ],
          "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": "equals"
                        },
                        "leftValue": "={{ $json.messages[0].type }}",
                        "rightValue": "text"
                      }
                    ]
                  },
                  "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": "equals"
                        },
                        "leftValue": "={{ $json.messages[0].type }}",
                        "rightValue": "audio"
                      }
                    ]
                  },
                  "renameOutput": true
                }
              ]
            },
            "options": {}
          },
          "typeVersion": 3.2
        },
        {
          "id": "d2991d7d-9dc4-4910-9738-e633dd4a4f1c",
          "name": "Transcribe audio or video",
          "type": "@elevenlabs/n8n-nodes-elevenlabs.elevenLabs",
          "position": [
            -1184,
            384
          ],
          "parameters": {
            "resource": "speech",
            "operation": "speechToText",
            "requestOptions": {},
            "additionalOptions": {}
          },
          "credentials": {
            "elevenLabsApi": {
              "id": "credential-id",
              "name": "elevenLabsApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "dbf8e88f-52e2-4db8-a23e-22ca7702073f",
          "name": "Finance Tracker",
          "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
          "position": [
            -464,
            576
          ],
          "parameters": {
            "options": {},
            "endpointUrl": "https://n8n.exildraw.com/mcp/f226741c-0f79-4f23-96bf-d8eb47206bcf/sse"
          },
          "typeVersion": 1.1
        },
        {
          "id": "f2a36cc9-3972-4c1c-817d-603454e6b2a2",
          "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": [
            256,
            560
          ],
          "webhookId": "f226741c-0f79-4f23-96bf-d8eb47206bcf",
          "parameters": {
            "path": "f226741c-0f79-4f23-96bf-d8eb47206bcf"
          },
          "typeVersion": 1.1
        },
        {
          "id": "622aeab4-ae81-4715-8a40-e362194b96e5",
          "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": [
            256,
            720
          ],
          "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": "16d927a9-372e-4dff-a069-5f6cb6a1e70d",
          "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": [
            384,
            784
          ],
          "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": "3aef6fd6-c076-4935-ada4-7d175634ebb2",
          "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": [
            512,
            736
          ],
          "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": "124c7cdc-2bdd-4d97-acc3-f5cc0b386fac",
          "name": "Get many Tasks",
          "type": "n8n-nodes-base.googleTasksTool",
          "position": [
            -2128,
            896
          ],
          "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": "904017a7-cfd9-4043-800b-3f29bdcb6bdc",
          "name": "Delete a Task",
          "type": "n8n-nodes-base.googleTasksTool",
          "position": [
            -2240,
            944
          ],
          "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": "9182e719-5639-435b-b9d8-4f1c839cf99d",
          "name": "Get a Task",
          "type": "n8n-nodes-base.googleTasksTool",
          "position": [
            -2368,
            880
          ],
          "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": "2d6f032e-9141-49a2-9a61-55af392bd474",
          "name": "Create a Task",
          "type": "n8n-nodes-base.googleTasksTool",
          "position": [
            -2464,
            768
          ],
          "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": "e8d219de-13e4-4bdc-a353-06616d053b2d",
          "name": "Get Contacts",
          "type": "n8n-nodes-base.googleContactsTool",
          "position": [
            -160,
            1248
          ],
          "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": "480cdf73-d41a-4e2a-aa26-8458a3309f38",
          "name": "Google Contacts MCP",
          "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
          "position": [
            -176,
            1088
          ],
          "webhookId": "01e90a0b-6f53-40d0-a8d3-a05c34a46fbb",
          "parameters": {
            "path": "01e90a0b-6f53-40d0-a8d3-a05c34a46fbb"
          },
          "typeVersion": 2
        },
        {
          "id": "b51c2b55-bdd7-4d53-adc5-873979e9ef9d",
          "name": "Google Contacts",
          "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
          "position": [
            -352,
            544
          ],
          "parameters": {
            "options": {},
            "endpointUrl": "https://n8n.exildraw.com/mcp/01e90a0b-6f53-40d0-a8d3-a05c34a46fbb"
          },
          "typeVersion": 1.1
        },
        {
          "id": "13b49fc6-3797-46e7-92d9-dba4bde58341",
          "name": "Jarvis",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "onError": "continueRegularOutput",
          "position": [
            -608,
            192
          ],
          "parameters": {
            "text": "={{ $json.messages[0].text.body }}\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": "91ce4cbe-421b-46f7-a791-6d4127ac7351",
          "name": "Only allow me",
          "type": "n8n-nodes-base.filter",
          "position": [
            -2144,
            288
          ],
          "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.messages[0].from }}",
                  "rightValue": "919920842422"
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "6a586a28-8869-4848-9d66-485e5fbdf939",
          "name": "Set Reply Message",
          "type": "n8n-nodes-base.set",
          "position": [
            0,
            192
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "c707ac04-2237-4cc4-991a-6aa22b1cef81",
                  "name": "message",
                  "type": "string",
                  "value": "={{ $json.output || $json.error }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "2069b78d-cdc9-4c8f-8bed-49597bab9c77",
          "name": "Check Text or Audio",
          "type": "n8n-nodes-base.switch",
          "position": [
            192,
            192
          ],
          "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": "equals"
                        },
                        "leftValue": "={{ $('WhatsApp Trigger').item.json.messages[0].type }}",
                        "rightValue": "text"
                      }
                    ]
                  },
                  "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": "equals"
                        },
                        "leftValue": "={{ $('WhatsApp Trigger').item.json.messages[0].type }}",
                        "rightValue": "audio"
                      }
                    ]
                  },
                  "renameOutput": true
                }
              ]
            },
            "options": {}
          },
          "typeVersion": 3.2
        },
        {
          "id": "72f0325e-ea0f-4d5c-b427-5c6304c6aa9d",
          "name": "Convert text to speech",
          "type": "@elevenlabs/n8n-nodes-elevenlabs.elevenLabs",
          "position": [
            416,
            240
          ],
          "parameters": {
            "text": "={{ $('Set Reply Message').item.json.message }}",
            "voice": {
              "__rl": true,
              "mode": "list",
              "value": "MF4J4IDTRo0AxOO4dpFR",
              "cachedResultName": "Devi - Clear Hindi pronunciation"
            },
            "resource": "speech",
            "requestOptions": {},
            "additionalOptions": {
              "outputFormat": "opus_48000_192"
            }
          },
          "credentials": {
            "elevenLabsApi": {
              "id": "credential-id",
              "name": "elevenLabsApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "f84af53d-c8b9-4d01-8808-61b6fbc3a3f2",
          "name": "Think",
          "type": "@n8n/n8n-nodes-langchain.toolThink",
          "position": [
            -656,
            592
          ],
          "parameters": {},
          "typeVersion": 1.1
        },
        {
          "id": "ff370b17-3c64-49bc-b81c-f58189ee80a3",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -816,
            16
          ],
          "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": "d1085087-53d5-4f8b-a026-d97106ee7fb1",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1168,
            752
          ],
          "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": "3ae2462f-0afc-4fd8-bb4d-0dbca47e08e1",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            160,
            400
          ],
          "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": "6b97a9fa-1362-4758-8c2f-9d5169039143",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -336,
            960
          ],
          "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": "e37505c8-29d5-4e78-8b27-7eb48ff6f670",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1904,
            592
          ],
          "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": "978a9bcc-17a4-4195-98d0-05c0640fbfb9",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -2496,
            464
          ],
          "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
        },
        {
          "id": "c1b4609f-c432-4eef-987f-acb47200e6d8",
          "name": "WhatsApp Trigger",
          "type": "n8n-nodes-base.whatsAppTrigger",
          "position": [
            -2400,
            288
          ],
          "webhookId": "1c4d0dd4-3820-4fc9-8926-b692c22509f1",
          "parameters": {
            "options": {},
            "updates": [
              "messages"
            ]
          },
          "credentials": {
            "whatsAppTriggerApi": {
              "id": "credential-id",
              "name": "whatsAppTriggerApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "089efa89-ecc2-485f-bf1c-036cf9eab365",
          "name": "Send message",
          "type": "n8n-nodes-base.whatsApp",
          "position": [
            432,
            32
          ],
          "webhookId": "beaf47d1-d039-4f68-8c7d-109560322092",
          "parameters": {
            "textBody": "={{ $('Set Reply Message').item.json.message }}",
            "operation": "send",
            "phoneNumberId": "806311772561831",
            "additionalFields": {},
            "recipientPhoneNumber": "={{ $('WhatsApp Trigger').item.json.contacts[0].wa_id }}"
          },
          "credentials": {
            "whatsAppApi": {
              "id": "credential-id",
              "name": "whatsAppApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "d31161eb-e90b-459e-8e78-646485382ad9",
          "name": "Send Audio",
          "type": "n8n-nodes-base.whatsApp",
          "position": [
            832,
            240
          ],
          "webhookId": "2c36b31b-e8c6-4baa-8fd3-5df65300b26e",
          "parameters": {
            "mediaPath": "useMedian8n",
            "operation": "send",
            "messageType": "audio",
            "phoneNumberId": "806311772561831",
            "additionalFields": {},
            "recipientPhoneNumber": "={{ $('WhatsApp Trigger').item.json.messages[0].from }}"
          },
          "credentials": {
            "whatsAppApi": {
              "id": "credential-id",
              "name": "whatsAppApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "3c564f0f-5ef8-4837-b8aa-1ef011230399",
          "name": "Get Media URL",
          "type": "n8n-nodes-base.whatsApp",
          "position": [
            -1712,
            384
          ],
          "webhookId": "b11cbc84-f293-41a2-8db3-f7dfebe9f263",
          "parameters": {
            "resource": "media",
            "operation": "mediaUrlGet",
            "mediaGetId": "={{ $json.messages[0].audio.id }}"
          },
          "credentials": {
            "whatsAppApi": {
              "id": "credential-id",
              "name": "whatsAppApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "4e20baa2-9d9d-403c-8d2a-416572d98cf5",
          "name": "Download Audio",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            -1440,
            384
          ],
          "parameters": {
            "url": "https://lookaside.fbsbx.com/whatsapp_business/attachments/?mid=1198095598810445&source=getMedia&ext=1759730456&hash=ARnbUL6GwAZe33CMZ9GeAMRHysh_AMmNe_PhOgjJnesf5Q",
            "options": {},
            "authentication": "predefinedCredentialType",
            "nodeCredentialType": "whatsAppApi"
          },
          "credentials": {
            "whatsAppApi": {
              "id": "credential-id",
              "name": "whatsAppApi Credential"
            }
          },
          "typeVersion": 4.2
        }
      ],
      "active": true,
      "pinData": {
        "WhatsApp Trigger": [
          {
            "json": {
              "field": "messages",
              "contacts": [
                {
                  "wa_id": "919920842422",
                  "profile": {
                    "name": "Jitesh"
                  }
                }
              ],
              "messages": [
                {
                  "id": "wamid.HBgMOTE5OTIwODQyNDIyFQIAEhgUM0JDOEVBMDRCQTQzNEVEMkYzODQA",
                  "from": "919920842422",
                  "type": "audio",
                  "audio": {
                    "id": "1198095598810445",
                    "voice": true,
                    "sha256": "6lTI2wpm1KILxGAUdaY3yHLtpqFZ6C8f6z9K3AK8ptI=",
                    "mime_type": "audio/ogg; codecs=opus"
                  },
                  "timestamp": "1759730133"
                }
              ],
              "metadata": {
                "phone_number_id": "806311772561831",
                "display_phone_number": "918310875097"
              },
              "messaging_product": "whatsapp"
            }
          }
        ]
      },
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "25f7bec9-cf2c-4881-9155-88089cdccb70",
      "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 Media URL",
                "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
              }
            ]
          ]
        },
        "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
              }
            ]
          ]
        },
        "Get Media URL": {
          "main": [
            [
              {
                "node": "Download Audio",
                "type": "main",
                "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
              }
            ]
          ]
        },
        "Download Audio": {
          "main": [
            [
              {
                "node": "Transcribe audio or video",
                "type": "main",
                "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
              }
            ]
          ]
        },
        "WhatsApp 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 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 Audio",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Transcribe audio or video": {
          "main": [
            [
              {
                "node": "Jarvis",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 53,
      "nodeTypes": {
        "n8n-nodes-base.set": {
          "count": 1
        },
        "n8n-nodes-base.filter": {
          "count": 1
        },
        "n8n-nodes-base.switch": {
          "count": 2
        },
        "n8n-nodes-base.whatsApp": {
          "count": 3
        },
        "n8n-nodes-base.gmailTool": {
          "count": 7
        },
        "n8n-nodes-base.stickyNote": {
          "count": 6
        },
        "n8n-nodes-base.httpRequest": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 1
        },
        "n8n-nodes-base.googleTasksTool": {
          "count": 5
        },
        "n8n-nodes-base.whatsAppTrigger": {
          "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": 19,
        "icon": "file:httprequest.svg",
        "name": "n8n-nodes-base.httpRequest",
        "codex": {
          "data": {
            "alias": [
              "API",
              "Request",
              "URL",
              "Build",
              "cURL"
            ],
            "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/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/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/",
                  "icon": "✍️",
                  "label": "Learn how to automatically cross-post your content 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/running-n8n-on-ships-an-interview-with-maranics/",
                  "icon": "🛳",
                  "label": "Running n8n on ships: An interview with Maranics"
                },
                {
                  "url": "https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/",
                  "icon": " 🪢",
                  "label": "What are APIs and how to use them with no code"
                },
                {
                  "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/world-poetry-day-workflow/",
                  "icon": "📜",
                  "label": "Celebrating World Poetry Day with a daily poem in Telegram"
                },
                {
                  "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/automate-designs-with-bannerbear-and-n8n/",
                  "icon": "🎨",
                  "label": "Automate Designs with Bannerbear and n8n"
                },
                {
                  "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/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/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/",
                  "icon": "🧰",
                  "label": "How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/",
                  "icon": "🦄",
                  "label": "Learn how to use webhooks with Mattermost slash commands"
                },
                {
                  "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/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                },
                {
                  "url": "https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/",
                  "icon": "🤟",
                  "label": "Creating scheduled text affirmations with n8n"
                },
                {
                  "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.httprequest/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "HTTP Request",
          "color": "#0004F5"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "HTTP Request",
        "typeVersion": 4,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core 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": 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": 827,
        "icon": "file:whatsapp.svg",
        "name": "n8n-nodes-base.whatsApp",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.whatsapp/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/whatsapp/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "WhatsApp Business Cloud"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTQuODY4IDQzLjMwMyAyLjY5NC05LjgzNWExOC45NCAxOC45NCAwIDAgMS0yLjUzNS05LjQ4OUM1LjAzMiAxMy41MTQgMTMuNTQ4IDUgMjQuMDE0IDVhMTguODcgMTguODcgMCAwIDEgMTMuNDMgNS41NjZBMTguODcgMTguODcgMCAwIDEgNDMgMjMuOTk0Yy0uMDA0IDEwLjQ2NS04LjUyMiAxOC45OC0xOC45ODYgMTguOThoLS4wMDhhMTkgMTkgMCAwIDEtOS4wNzMtMi4zMTF6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQuODY4IDQzLjgwM2EuNS41IDAgMCAxLS40ODItLjYzMWwyLjYzOS05LjYzNmExOS41IDE5LjUgMCAwIDEtMi40OTctOS41NTZDNC41MzIgMTMuMjM4IDEzLjI3MyA0LjUgMjQuMDE0IDQuNWExOS4zNyAxOS4zNyAwIDAgMSAxMy43ODQgNS43MTNBMTkuMzYgMTkuMzYgMCAwIDEgNDMuNSAyMy45OTRjLS4wMDQgMTAuNzQxLTguNzQ2IDE5LjQ4LTE5LjQ4NiAxOS40OGExOS41NCAxOS41NCAwIDAgMS05LjE0NC0yLjI3N2wtOS44NzUgMi41ODlhLjUuNSAwIDAgMS0uMTI3LjAxNyIvPjxwYXRoIGZpbGw9IiNjZmQ4ZGMiIGQ9Ik0yNC4wMTQgNWExOC44NyAxOC44NyAwIDAgMSAxMy40MyA1LjU2NkExOC44NyAxOC44NyAwIDAgMSA0MyAyMy45OTRjLS4wMDQgMTAuNDY1LTguNTIyIDE4Ljk4LTE4Ljk4NiAxOC45OGgtLjAwOGExOSAxOSAwIDAgMS05LjA3My0yLjMxMWwtMTAuMDY1IDIuNjQgMi42OTQtOS44MzVhMTguOTQgMTguOTQgMCAwIDEtMi41MzUtOS40ODlDNS4wMzIgMTMuNTE0IDEzLjU0OCA1IDI0LjAxNCA1bTAtMUMxMi45OTggNCA0LjAzMiAxMi45NjIgNC4wMjcgMjMuOTc5YTIwIDIwIDAgMCAwIDIuNDYxIDkuNjIyTDMuOTAzIDQzLjA0YS45OTguOTk4IDAgMCAwIDEuMjE5IDEuMjMxbDkuNjg3LTIuNTRhMjAgMjAgMCAwIDAgOS4xOTcgMi4yNDRjMTEuMDI0IDAgMTkuOTktOC45NjMgMTkuOTk1LTE5Ljk4QTE5Ljg2IDE5Ljg2IDAgMCAwIDM4LjE1MyA5Ljg2IDE5Ljg3IDE5Ljg3IDAgMCAwIDI0LjAxNCA0Ii8+PHBhdGggZmlsbD0iIzQwYzM1MSIgZD0iTTM1LjE3NiAxMi44MzJhMTUuNjcgMTUuNjcgMCAwIDAtMTEuMTU3LTQuNjI2Yy04LjcwNCAwLTE1Ljc4MyA3LjA3Ni0xNS43ODcgMTUuNzc0YTE1Ljc0IDE1Ljc0IDAgMCAwIDIuNDEzIDguMzk2bC4zNzYuNTk3LTEuNTk1IDUuODIxIDUuOTczLTEuNTY2LjU3Ny4zNDJhMTUuNzUgMTUuNzUgMCAwIDAgOC4wMzIgMi4xOTloLjAwNmM4LjY5OCAwIDE1Ljc3Ny03LjA3NyAxNS43OC0xNS43NzZhMTUuNjggMTUuNjggMCAwIDAtNC42MTgtMTEuMTYxIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE5LjI2OCAxNi4wNDVjLS4zNTUtLjc5LS43MjktLjgwNi0xLjA2OC0uODItLjI3Ny0uMDEyLS41OTMtLjAxMS0uOTA5LS4wMTFzLS44My4xMTktMS4yNjUuNTk0LTEuNjYxIDEuNjIyLTEuNjYxIDMuOTU2IDEuNyA0LjU5IDEuOTM3IDQuOTA2IDMuMjgyIDUuMjU5IDguMTA0IDcuMTYxYzQuMDA3IDEuNTggNC44MjMgMS4yNjYgNS42OTMgMS4xODdzMi44MDctMS4xNDcgMy4yMDItMi4yNTUuMzk1LTIuMDU3LjI3Ny0yLjI1NWMtLjExOS0uMTk4LS40MzUtLjMxNi0uOTA5LS41NTRzLTIuODA3LTEuMzg1LTMuMjQyLTEuNTQzLS43NTEtLjIzNy0xLjA2OC4yMzhjLS4zMTYuNDc0LTEuMjI1IDEuNTQzLTEuNTAyIDEuODU5cy0uNTU0LjM1Ny0xLjAyOC4xMTktMi4wMDItLjczOC0zLjgxNS0yLjM1NGMtMS40MS0xLjI1Ny0yLjM2Mi0yLjgxLTIuNjM5LTMuMjg1LS4yNzctLjQ3NC0uMDMtLjczMS4yMDgtLjk2OC4yMTMtLjIxMy40NzQtLjU1NC43MTItLjgzMS4yMzctLjI3Ny4zMTYtLjQ3NS40NzQtLjc5MXMuMDc5LS41OTQtLjA0LS44MzFjLS4xMTctLjIzOC0xLjAzOS0yLjU4NC0xLjQ2MS0zLjUyMiIvPjwvc3ZnPg=="
        },
        "displayName": "WhatsApp Business Cloud",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "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": 1260,
        "icon": "file:whatsapp.svg",
        "name": "n8n-nodes-base.whatsAppTrigger",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.whatsapptrigger/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/whatsapp/"
                }
              ]
            },
            "categories": [
              "Communication"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "WhatsApp Trigger"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTQuODY4IDQzLjMwMyAyLjY5NC05LjgzNWExOC45NCAxOC45NCAwIDAgMS0yLjUzNS05LjQ4OUM1LjAzMiAxMy41MTQgMTMuNTQ4IDUgMjQuMDE0IDVhMTguODcgMTguODcgMCAwIDEgMTMuNDMgNS41NjZBMTguODcgMTguODcgMCAwIDEgNDMgMjMuOTk0Yy0uMDA0IDEwLjQ2NS04LjUyMiAxOC45OC0xOC45ODYgMTguOThoLS4wMDhhMTkgMTkgMCAwIDEtOS4wNzMtMi4zMTF6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQuODY4IDQzLjgwM2EuNS41IDAgMCAxLS40ODItLjYzMWwyLjYzOS05LjYzNmExOS41IDE5LjUgMCAwIDEtMi40OTctOS41NTZDNC41MzIgMTMuMjM4IDEzLjI3MyA0LjUgMjQuMDE0IDQuNWExOS4zNyAxOS4zNyAwIDAgMSAxMy43ODQgNS43MTNBMTkuMzYgMTkuMzYgMCAwIDEgNDMuNSAyMy45OTRjLS4wMDQgMTAuNzQxLTguNzQ2IDE5LjQ4LTE5LjQ4NiAxOS40OGExOS41NCAxOS41NCAwIDAgMS05LjE0NC0yLjI3N2wtOS44NzUgMi41ODlhLjUuNSAwIDAgMS0uMTI3LjAxNyIvPjxwYXRoIGZpbGw9IiNjZmQ4ZGMiIGQ9Ik0yNC4wMTQgNWExOC44NyAxOC44NyAwIDAgMSAxMy40MyA1LjU2NkExOC44NyAxOC44NyAwIDAgMSA0MyAyMy45OTRjLS4wMDQgMTAuNDY1LTguNTIyIDE4Ljk4LTE4Ljk4NiAxOC45OGgtLjAwOGExOSAxOSAwIDAgMS05LjA3My0yLjMxMWwtMTAuMDY1IDIuNjQgMi42OTQtOS44MzVhMTguOTQgMTguOTQgMCAwIDEtMi41MzUtOS40ODlDNS4wMzIgMTMuNTE0IDEzLjU0OCA1IDI0LjAxNCA1bTAtMUMxMi45OTggNCA0LjAzMiAxMi45NjIgNC4wMjcgMjMuOTc5YTIwIDIwIDAgMCAwIDIuNDYxIDkuNjIyTDMuOTAzIDQzLjA0YS45OTguOTk4IDAgMCAwIDEuMjE5IDEuMjMxbDkuNjg3LTIuNTRhMjAgMjAgMCAwIDAgOS4xOTcgMi4yNDRjMTEuMDI0IDAgMTkuOTktOC45NjMgMTkuOTk1LTE5Ljk4QTE5Ljg2IDE5Ljg2IDAgMCAwIDM4LjE1MyA5Ljg2IDE5Ljg3IDE5Ljg3IDAgMCAwIDI0LjAxNCA0Ii8+PHBhdGggZmlsbD0iIzQwYzM1MSIgZD0iTTM1LjE3NiAxMi44MzJhMTUuNjcgMTUuNjcgMCAwIDAtMTEuMTU3LTQuNjI2Yy04LjcwNCAwLTE1Ljc4MyA3LjA3Ni0xNS43ODcgMTUuNzc0YTE1Ljc0IDE1Ljc0IDAgMCAwIDIuNDEzIDguMzk2bC4zNzYuNTk3LTEuNTk1IDUuODIxIDUuOTczLTEuNTY2LjU3Ny4zNDJhMTUuNzUgMTUuNzUgMCAwIDAgOC4wMzIgMi4xOTloLjAwNmM4LjY5OCAwIDE1Ljc3Ny03LjA3NyAxNS43OC0xNS43NzZhMTUuNjggMTUuNjggMCAwIDAtNC42MTgtMTEuMTYxIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE5LjI2OCAxNi4wNDVjLS4zNTUtLjc5LS43MjktLjgwNi0xLjA2OC0uODItLjI3Ny0uMDEyLS41OTMtLjAxMS0uOTA5LS4wMTFzLS44My4xMTktMS4yNjUuNTk0LTEuNjYxIDEuNjIyLTEuNjYxIDMuOTU2IDEuNyA0LjU5IDEuOTM3IDQuOTA2IDMuMjgyIDUuMjU5IDguMTA0IDcuMTYxYzQuMDA3IDEuNTggNC44MjMgMS4yNjYgNS42OTMgMS4xODdzMi44MDctMS4xNDcgMy4yMDItMi4yNTUuMzk1LTIuMDU3LjI3Ny0yLjI1NWMtLjExOS0uMTk4LS40MzUtLjMxNi0uOTA5LS41NTRzLTIuODA3LTEuMzg1LTMuMjQyLTEuNTQzLS43NTEtLjIzNy0xLjA2OC4yMzhjLS4zMTYuNDc0LTEuMjI1IDEuNTQzLTEuNTAyIDEuODU5cy0uNTU0LjM1Ny0xLjAyOC4xMTktMi4wMDItLjczOC0zLjgxNS0yLjM1NGMtMS40MS0xLjI1Ny0yLjM2Mi0yLjgxLTIuNjM5LTMuMjg1LS4yNzctLjQ3NC0uMDMtLjczMS4yMDgtLjk2OC4yMTMtLjIxMy40NzQtLjU1NC43MTItLjgzMS4yMzctLjI3Ny4zMTYtLjQ3NS40NzQtLjc5MXMuMDc5LS41OTQtLjA0LS44MzFjLS4xMTctLjIzOC0xLjAzOS0yLjU4NC0xLjQ2MS0zLjUyMiIvPjwvc3ZnPg=="
        },
        "displayName": "WhatsApp Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          }
        ]
      },
      {
        "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": []
  }
}