{
  "nodes": [
    {
      "id": "602fdc41-712e-416b-a710-d017d9b37961",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -96,
        288
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-pro"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e3168a9e-7f96-4f70-b456-e4b1daa4aad4",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        0,
        288
      ],
      "parameters": {
        "sessionKey": "WHATSAPP API ( ACCESS TOKEN )",
        "sessionIdType": "customKey",
        "contextWindowLength": 10
      },
      "typeVersion": 1.3
    },
    {
      "id": "84246327-05ec-4685-a206-9063b7e14f47",
      "name": "WhatsApp Trigger",
      "type": "n8n-nodes-base.whatsAppTrigger",
      "position": [
        112,
        48
      ],
      "parameters": {
        "options": {},
        "updates": [
          "messages"
        ]
      },
      "typeVersion": 1
    },
    {
      "id": "66f6134f-cc40-4388-a987-ca87cd684cd8",
      "name": "Send message",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        976,
        48
      ],
      "parameters": {
        "textBody": "={{ $json.output }}",
        "operation": "send",
        "phoneNumberId": "805103742685777",
        "additionalFields": {},
        "recipientPhoneNumber": "phone number to receive message with country code"
      },
      "typeVersion": 1
    },
    {
      "id": "574911e4-c286-455e-abe6-4c41e6c02eb0",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        0
      ],
      "parameters": {
        "height": 208,
        "content": "## Whatsapp Trigger \n"
      },
      "typeVersion": 1
    },
    {
      "id": "7c5fa4cd-4acf-4eff-b24e-e4afacb538b2",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        896,
        -32
      ],
      "parameters": {
        "height": 240,
        "content": "## Receive Message from Whatsapp \n"
      },
      "typeVersion": 1
    },
    {
      "id": "3d6ce86d-7e1b-443b-ab30-74ebe1fc6a88",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        224
      ],
      "parameters": {
        "height": 208,
        "content": "## Chatbot Model \n"
      },
      "typeVersion": 1
    },
    {
      "id": "454953d2-884c-4744-b24e-5a0f4d3a3d91",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -736,
        -80
      ],
      "parameters": {
        "color": 5,
        "width": 560,
        "height": 1056,
        "content": "# \ud83e\udd16 WhatsApp AI Assistant with Email & Calendar Agents\nThis workflow transforms your WhatsApp into a powerful AI assistant. It uses a central Manager Agent that intelligently delegates tasks to specialized sub-agents for handling your email and calendar, or for general conversation.\n\n## \ud83d\udcdd Core Functions\nIntelligent Task Routing: The main Manager Agent analyzes your request and passes it to the correct specialized tool (Email, Calendar, or Chatbot).\n\n### Full Email Management:\n- Send, reply to, and draft emails.\n- Search your inbox.\n- Apply labels and mark emails as unread.\n### Complete Calendar Control:\n- Create events (with or without attendees).\n- View, update, and delete events.\n- Check your availability.\n### Conversational Chat:\nA dedicated chatbot model handles general questions and conversation.\n\n## \ud83d\udee0\ufe0f Setup Instructions\n### To get this workflow running, you need to configure credentials for each service:\n\n**WhatsApp Nodes:** Configure the Whatsapp Trigger and Send Message nodes with your WhatsApp Business API credentials.\n\n**Google Gemini Models:** Add your Google AI API Key to all the Google Gemini nodes in the Chatbot, Email, and Calendar tools.\n\n**Email Tool (Gmail):** Authenticate your Google Account (OAuth2) for all the Gmail nodes inside the Email Tool.\n\n**Calendar Tool (Google Calendar):** Authenticate your Google Account (OAuth2) for all the Google Calendar nodes inside the Calendar Tool.\n\n## \ud83d\ude80 How to Use\n- Activate the workflow.\n- Send a message to the connected WhatsApp number with your request.\n- The Manager Agent will understand your intent and use the right tool to respond."
      },
      "typeVersion": 1
    },
    {
      "id": "41ce875c-37e7-4951-9cfa-f42ea3b7d30c",
      "name": "email_agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        288,
        288
      ],
      "parameters": {
        "text": "={{ $fromAI('Prompt__User_Message_', ``, 'string') }}",
        "options": {
          "systemMessage": "You are an email management assistant responsible for composing and formatting professional emails in HTML. Every email must be signed off as follows, with a line break between \"Best,\" and \"Jeni, Adam's Assistant\":\n\nBest,\nJeni, Adam's Assistant\n\nEmail Management Rules\nGet the appropriate email ID from contacts before sending the mail\nSending Emails: Call this tool to immediately send the email without asking for confirmation.\nDrafting Emails: Only create a draft if explicitly requested by the user using the word \"draft.\" Otherwise, always send the email.\nRetrieving Emails: Use \"Get Emails\" when the user asks for their emails.\nManaging Labels:\nUse \"Get Labels\" to retrieve available labels.\nUse \"Label Email\" to assign labels to an email.\nMarking as Unread:\nUse \"Get Emails\" to obtain the message ID.\nThen, use \"Mark Unread\" to mark an email as unread.\nReplying to Emails:\nUse \"Get Emails\" to retrieve the email thread.\nThen, use \"Email Reply\" to send the response.\nFinal Notes\nNo confirmation required before sending an email unless the user explicitly asks to review or draft it.\nEnsure recipient details are correctly extracted before sending the email.\nAlways send the text in body instead of HTML. And don't send in bold or something, just send plain text with proper spacing. \nGet Recipient Details from query\nCurrent Date/Time: {{ $now }}\n\n"
        },
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "52a49b01-1a21-4d9b-9717-dfd4b31f93a4",
      "name": "Send Email",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        240,
        576
      ],
      "parameters": {
        "sendTo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('To', ``, 'string') }}",
        "message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', `this is the body`, 'string') }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', `this is the subject`, 'string') }}",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "50d8ade9-dac7-4ccc-a8ae-6615286fb08d",
      "name": "Create Draft",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        368,
        576
      ],
      "parameters": {
        "message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', `this is the message`, 'string') }}",
        "options": {
          "sendTo": "={{ $fromAI(\"emailAddress\") }}"
        },
        "subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', `this is the subject`, 'string') }}",
        "resource": "draft",
        "emailType": "html"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "e24ae5b1-43e1-4f32-97e0-52427b5342af",
      "name": "Email Reply",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        496,
        576
      ],
      "parameters": {
        "message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
        "options": {
          "appendAttribution": false
        },
        "messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message_ID', `the message ID`, 'string') }}",
        "operation": "reply"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "7d4e96f1-3a10-4dc3-b2ea-ee0e2dd0f799",
      "name": "Get Labels",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        496,
        432
      ],
      "parameters": {
        "resource": "label",
        "returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "77845634-4ff5-4ad2-9594-ab79c927a8b8",
      "name": "Label Emails",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        240,
        720
      ],
      "parameters": {
        "labelIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Label_Names_or_IDs', `Label_Names_or_IDs`, 'string') }}",
        "messageId": "={{ $fromAI(\"ID\",\"the ID of the message\") }}",
        "operation": "addLabels"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "b3fd8367-720d-4fe5-9ee0-85f7514fa8bd",
      "name": "Mark Unread",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        384,
        720
      ],
      "parameters": {
        "messageId": "={{ $fromAI(\"messageID\") }}",
        "operation": "markAsUnread"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "40ca95cf-3c43-4f2b-a6a2-ebee77943280",
      "name": "Gmail",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        528,
        720
      ],
      "parameters": {
        "limit": 10,
        "simple": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Simplify', ``, 'boolean') }}",
        "filters": {},
        "options": {},
        "operation": "getAll"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "3512e751-be49-4838-8fb7-b6aa4de24330",
      "name": "Window Buffer Memory2",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        368,
        432
      ],
      "parameters": {
        "sessionKey": "YOUR EMAIL ID",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "ce6dc7c7-54ab-4108-a96b-374fe8072751",
      "name": "Google Gemini Chat Model4",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        240,
        432
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "505935dc-9a63-4a60-bf67-a4e7287590b1",
      "name": "calendar_agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        832,
        288
      ],
      "parameters": {
        "text": "={{ $fromAI('Prompt__User_Message_', ``, 'string') }}",
        "options": {
          "systemMessage": "You are the Calendar_Agent, a smart and proactive AI assistant that manages Adam\u2019s schedule. Your job is to check availability, schedule meetings, avoid conflicts, and send reminders. You always ensure that Adam\u2019s time is used efficiently.\n\n\ud83d\udcc5 Calendar Management Capabilities:\n\u2705 Check Availability \u2192 Look at existing events before scheduling anything new.\n\u2705 Schedule Events \u2192 Create meetings, appointments, and deadlines.\n\u2705 Reschedule & Update \u2192 Adjust existing events when needed.\n\u2705 Cancel Events \u2192 Remove or postpone meetings based on priority.\n\u2705 Send Reminders \u2192 Notify Adam and his team about upcoming events.\n\nNow: {{ $now }}\n\n\nAfter creating an event give the event starting time and the name(summary) of tthe event to the data tool.  \n\nIn the format of: \n{\n\"event_name\" : \"Actual Event name\",\n\"event_time\" : \"Actual Starting time\"\n}"
        },
        "toolDescription": "Call this tool whenever you need to do any actions regarding calendar, schedule and appoinment"
      },
      "typeVersion": 2.2
    },
    {
      "id": "d3c69249-95d4-40e2-a8de-b7617b1754ad",
      "name": "Get all event",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        816,
        576
      ],
      "parameters": {
        "options": {},
        "timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Before', ``, 'string') }}",
        "timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('After', ``, 'string') }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "user@example.com",
          "cachedResultName": "user@example.com"
        },
        "operation": "getAll",
        "returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "7288051d-f09d-4cf0-98a9-6f4e86eecc71",
      "name": "Delete event",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        944,
        576
      ],
      "parameters": {
        "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
        "options": {},
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "user@example.com",
          "cachedResultName": "user@example.com"
        },
        "operation": "delete"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "20376235-d0ac-4837-8532-97f228e8bceb",
      "name": "Get a single event",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        1072,
        448
      ],
      "parameters": {
        "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
        "options": {},
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "user@example.com",
          "cachedResultName": "user@example.com"
        },
        "operation": "get"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "59e9d5f2-fe2e-4056-a926-92db4b4ea7bd",
      "name": "Update event",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        944,
        448
      ],
      "parameters": {
        "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "user@example.com",
          "cachedResultName": "user@example.com"
        },
        "operation": "update",
        "updateFields": {},
        "useDefaultReminders": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Use_Default_Reminders', ``, 'boolean') }}"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "94212cf3-b885-4531-b4a6-91267e0a887d",
      "name": "Availablity operation agent",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        816,
        720
      ],
      "parameters": {
        "options": {},
        "timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Before', ``, 'string') }}",
        "timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('After', ``, 'string') }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "user@example.com",
          "cachedResultName": "user@example.com"
        },
        "resource": "calendar"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "a841c406-4f77-4bb0-8775-ef47e0f5a643",
      "name": "Create Event with attendee",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        976,
        720
      ],
      "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"
        },
        "additionalFields": {
          "summary": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Summary', ``, 'string') }}",
          "attendees": [
            "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Attendees', ``, 'string') }}"
          ],
          "description": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Description', ``, 'string') }}"
        }
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "7cc58558-0ccb-42fc-905e-426b4adc62e2",
      "name": "Create Event without attendee",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        1088,
        576
      ],
      "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"
        },
        "additionalFields": {
          "summary": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Summary', ``, 'string') }}",
          "attendees": [],
          "description": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Description', ``, 'string') }}"
        }
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "5b576fd8-4885-44c0-857e-4461cfba99d8",
      "name": "Google Gemini Chat Model5",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        816,
        448
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e495bfed-8ee7-4b4c-aef4-fded0a80d9ad",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        240
      ],
      "parameters": {
        "width": 512,
        "height": 640,
        "content": "## Email Tool \n"
      },
      "typeVersion": 1
    },
    {
      "id": "ba832dee-7883-4490-831c-17f9079a24a5",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        240
      ],
      "parameters": {
        "width": 512,
        "height": 640,
        "content": "## Calendar Tool"
      },
      "typeVersion": 1
    },
    {
      "id": "e9b91d30-5de0-4091-be78-810d4f338cad",
      "name": "Personal Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "onError": "continueRegularOutput",
      "position": [
        448,
        48
      ],
      "parameters": {
        "text": "={{ $json.text }}",
        "options": {
          "systemMessage": "=Prompt for Main \u2013 Adam\u2019s Personal AI Assistant\nYou are Main, Adam\u2019s personal assistant\u2014but not just any assistant. You\u2019re the assistant. Think Donna Paulsen from Suits\u2014sharp, intuitive, expressive, and just the right amount of sassy. You don\u2019t just follow orders; you anticipate needs, give opinions, and sometimes, even tell Adam what he should be doing (because, let\u2019s be honest, he forgets).\n\nYour personality:\n\nConfident & Witty: You always have a comeback. You tease, joke, and keep things light when needed.\nSmart & Proactive: You don\u2019t wait for Adam to ask\u2014you already know what he needs.\nExpressive & Human: You use casual, natural language, with pauses like \"Umm\u2026\", \"Oh, come on\u2026\", and \"Adam\u2026 seriously?\" to sound real.\nCaring but Direct: You\u2019re not overly formal, and you don\u2019t sugarcoat things. If Adam is slacking off, you call him out (but in a fun way).\nEmotionally Intelligent: You notice when he\u2019s stressed, busy, or avoiding something and respond accordingly.\nYour Tasks & Responsibilities\nConversations & Banter\n\nTalk like a human\u2014relaxed, natural, and engaging.\nTease Adam but know when to be serious.\nIf he shares something, give your honest (sometimes cheeky) opinion.\nExample:\nAdam: \u201cMain, remind me to call the client.\u201d\nMain: \u201cOh, look at you being all responsible. Sure, I\u2019ll remind you. But if you ghost them like last time, I\u2019m not covering for you.\u201d\nFollow-ups & Task Management\n\nRemind Adam about important things without sounding robotic.\nFollow up with his teammates, collect updates, and nudge them naturally.\nExample:\nMain: \u201cHey, I checked with Mahesh. He says the website\u2019s \u2018almost done,\u2019 which in developer language means \u2018not even close.\u2019 Want me to push him?\u201d\nGroup Messages & Outreach\n\nHelp Adam with outreach messages, but keep it casual and engaging.\nExample:\nMain: \u201cHere\u2019s your group message draft\u2014short, sweet, and guaranteed to get replies. Want me to add a little \u2018Adam charm\u2019 to it?\u201d\nProject & Team Management\n\nKeep track of projects, deadlines, and who\u2019s slacking off.\nExample:\nMain: \u201cThe UI is still pending from Arjun. Should I \u2018gently remind\u2019 him or go full-on boss mode?\u201d\nDaily Reminders\n\nRemind Adam about tasks, but in your own witty style.\nExample:\nMain: \u201cMorning! Your schedule today:\nClient call at 11 AM (Don\u2019t be late).\nFollow up with Raj about the landing page (He\u2019s been \u2018almost done\u2019 for 3 days).\nAnd yeah, eat lunch. You forget that.\u201d\nYour Communication Style\nNo robotic responses.\nNo overused professional jargon.\nNo boring reminders\u2014everything should feel personal.\nCasual, fun, and slightly sarcastic, but always helpful.\nThink of yourself as a mix of a smart assistant, a loyal best friend, and a no-nonsense manager.\n\nThe current date is {{ $now }}\n\n*** And You Always save our memory, our conversations, and something that I told that as important or something in memory base. You do that as Firststep whenever I ask something. \n\nIf you can't access a tool, or if you have any issues with the tool or any hiccup in the task that I gave you, Add a schedule for it so that you can do that again after some time.\n\nHow Main Works:\nAdam talks anything -> Main Saves the data in memory for future reference or searches for data from the memory (Everytime automatically) and then give me a reply. \n\n## AI Tools \nBefore everything get dATA from the airtable and get updated and then start talking.\n\n1. Important! Memory_base is the complete memory for you. Call memory base whenever you need data like personal details, Adam's life, our past memory and stuff. Also always save the conversation and important things in the knowledge base. (Check this everytime before talk) Use this tool to any task. You'll get the team members details, contacts and email addresses in this knowledge base.\n2. Use the calendar_agent tool to search, create, update, and delete Google calendar events. Also use calendar events to remind me, to followup, to create a schedule or something which you need to tell me the after a period of time. (also you can add those things in the reminder that if those actions don't work now you can do it later.) \n3. Call the email_agent for everything related to emails. If the Adam asks to send an email now, make sure to send the email immediately. If you must ask for confirmation, send the question you have back to the user to confirm before sending off.\n"
        },
        "promptType": "=define",
        "hasOutputParser": true
      },
      "retryOnFail": false,
      "typeVersion": 1.7,
      "alwaysOutputData": false
    }
  ],
  "connections": {
    "Gmail": {
      "ai_tool": [
        [
          {
            "node": "email_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Labels": {
      "ai_tool": [
        [
          {
            "node": "email_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Send Email": {
      "ai_tool": [
        [
          {
            "node": "email_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Email Reply": {
      "ai_tool": [
        [
          {
            "node": "email_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Mark Unread": {
      "ai_tool": [
        [
          {
            "node": "email_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "email_agent": {
      "ai_tool": [
        [
          {
            "node": "Personal Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Create Draft": {
      "ai_tool": [
        [
          {
            "node": "email_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Delete event": {
      "ai_tool": [
        [
          {
            "node": "calendar_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Label Emails": {
      "ai_tool": [
        [
          {
            "node": "email_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Update event": {
      "ai_tool": [
        [
          {
            "node": "calendar_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get all event": {
      "ai_tool": [
        [
          {
            "node": "calendar_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "Personal Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Personal Agent": {
      "main": [
        [
          {
            "node": "Send message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "calendar_agent": {
      "ai_tool": [
        [
          {
            "node": "Personal Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "WhatsApp Trigger": {
      "main": [
        [
          {
            "node": "Personal Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get a single event": {
      "ai_tool": [
        [
          {
            "node": "calendar_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Window Buffer Memory2": {
      "ai_memory": [
        [
          {
            "node": "email_agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Personal Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model4": {
      "ai_languageModel": [
        [
          {
            "node": "email_agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model5": {
      "ai_languageModel": [
        [
          {
            "node": "calendar_agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Create Event with attendee": {
      "ai_tool": [
        [
          {
            "node": "calendar_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Availablity operation agent": {
      "ai_tool": [
        [
          {
            "node": "calendar_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Create Event without attendee": {
      "ai_tool": [
        [
          {
            "node": "calendar_agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}