8
n8n 中文网amn8n.com

WhatsApp上的Jarvis

高级

这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 53 个节点。主要使用 Set, Filter, Switch, WhatsApp, GmailTool 等节点。 集成OpenAI、Gmail、日历、任务和费用追踪的WhatsApp生产力助手

前置要求
  • Google 账号和 Gmail API 凭证
  • 可能需要目标 API 的认证凭证
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "5BpYCZtwsFK9Ic7O",
  "meta": {
    "instanceId": "e56288a9b12ad2dc7c19cc4170f20f7abcacaad5fb3972dd882c9ce4f34e7668",
    "templateCredsSetupCompleted": true
  },
  "name": "WhatsApp 上的 Jarvis",
  "tags": [],
  "nodes": [
    {
      "id": "797f2391-12cd-4133-86a9-c081215220da",
      "name": "OpenAI 聊天模型",
      "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": "5n856jvI80lSEErZ",
          "name": "Klinsman OpenAI"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "0c132bdf-fbb0-47a6-baa1-32c13b3319c0",
      "name": "简单记忆",
      "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 服务器",
      "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": "发送邮件",
      "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": "G3I034gH4LNlUt6T",
          "name": "jitesh0dugar@gmail.com"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "dd52cb0f-4a58-4f02-8fff-700cc66b6efc",
      "name": "回复邮件",
      "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": "G3I034gH4LNlUt6T",
          "name": "jitesh0dugar@gmail.com"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "f228cfa4-e8d0-4b2b-91bd-948835adb37a",
      "name": "获取邮件",
      "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": "G3I034gH4LNlUt6T",
          "name": "jitesh0dugar@gmail.com"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "152951b9-22ef-4110-b75c-280d5a754f7b",
      "name": "为邮件添加标签",
      "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": "G3I034gH4LNlUt6T",
          "name": "jitesh0dugar@gmail.com"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "0187edc1-373c-4cc4-aa7f-3ba6e8a700ec",
      "name": "获取标签",
      "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": "G3I034gH4LNlUt6T",
          "name": "jitesh0dugar@gmail.com"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "b511f985-b323-4dc3-9a45-8fed3a7b0e6c",
      "name": "起草邮件",
      "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": "G3I034gH4LNlUt6T",
          "name": "jitesh0dugar@gmail.com"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "d16c07c0-1ade-4fb6-9e97-fb6cd7076c18",
      "name": "起草邮件回复",
      "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": "G3I034gH4LNlUt6T",
          "name": "jitesh0dugar@gmail.com"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "ec555bb6-8710-4d72-b4a9-7d72840f7fb5",
      "name": "检查可用性",
      "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": "jitesh.com@gmail.com",
          "cachedResultName": "jitesh.com@gmail.com"
        },
        "resource": "calendar",
        "descriptionType": "manual",
        "toolDescription": "Check if a slot is available on my calendar"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "4tovWKQg16ZAJg26",
          "name": "jitesh.com@gmail.com"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "562a5c02-1eb4-4e73-85b2-02be6f8d1c50",
      "name": "获取所有事件",
      "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": "jitesh.com@gmail.com",
          "cachedResultName": "jitesh.com@gmail.com"
        },
        "operation": "getAll",
        "returnAll": true,
        "descriptionType": "manual",
        "toolDescription": "Get future events on Google Calendar"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "4tovWKQg16ZAJg26",
          "name": "jitesh.com@gmail.com"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "94f5184c-fb74-4142-ad37-8e8924322c3d",
      "name": "删除日历事件",
      "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": "jitesh.com@gmail.com",
          "cachedResultName": "jitesh.com@gmail.com"
        },
        "operation": "delete",
        "descriptionType": "manual",
        "toolDescription": "Delete Calendar Event"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "4tovWKQg16ZAJg26",
          "name": "jitesh.com@gmail.com"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "ec8f47d9-876f-4887-a345-b94391d68167",
      "name": "重新安排事件",
      "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": "jitesh.com@gmail.com",
          "cachedResultName": "jitesh.com@gmail.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": "4tovWKQg16ZAJg26",
          "name": "jitesh.com@gmail.com"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "0b7fb455-1686-49b9-9f70-c16c37e99893",
      "name": "获取事件",
      "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": "jitesh.com@gmail.com",
          "cachedResultName": "jitesh.com@gmail.com"
        },
        "operation": "get",
        "descriptionType": "manual",
        "toolDescription": "Get an event in Google Calendar"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "4tovWKQg16ZAJg26",
          "name": "jitesh.com@gmail.com"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "11983f80-70f6-4405-b546-af98ed243243",
      "name": "创建事件",
      "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": "jitesh.com@gmail.com",
          "cachedResultName": "jitesh.com@gmail.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": "4tovWKQg16ZAJg26",
          "name": "jitesh.com@gmail.com"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "5561dcfd-c9ad-4647-95fb-63929284a0b2",
      "name": "日历 MCP 服务器",
      "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": "日历 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": "完成任务",
      "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": "w66NRU7eE1oAWYpS",
          "name": "Google Tasks account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e8349f65-94f3-43d5-8f80-134901786b49",
      "name": "任务管理器 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": "切换",
      "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": "转录音频或视频",
      "type": "@elevenlabs/n8n-nodes-elevenlabs.elevenLabs",
      "position": [
        -1184,
        384
      ],
      "parameters": {
        "resource": "speech",
        "operation": "speechToText",
        "requestOptions": {},
        "additionalOptions": {}
      },
      "credentials": {
        "elevenLabsApi": {
          "id": "judah6VcfikE7I8a",
          "name": "ElevenLabs account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "dbf8e88f-52e2-4db8-a23e-22ca7702073f",
      "name": "财务追踪器",
      "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": "财务经理 MCP 服务器",
      "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": "获取所有支出",
      "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": "SJPiL0OOLJ3ecx1o",
          "name": "Google Sheets - jitesh.com"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "16d927a9-372e-4dff-a069-5f6cb6a1e70d",
      "name": "创建支出",
      "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": "SJPiL0OOLJ3ecx1o",
          "name": "Google Sheets - jitesh.com"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "3aef6fd6-c076-4935-ada4-7d175634ebb2",
      "name": "删除支出",
      "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": "SJPiL0OOLJ3ecx1o",
          "name": "Google Sheets - jitesh.com"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "124c7cdc-2bdd-4d97-acc3-f5cc0b386fac",
      "name": "获取多个任务",
      "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": "w66NRU7eE1oAWYpS",
          "name": "Google Tasks account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "904017a7-cfd9-4043-800b-3f29bdcb6bdc",
      "name": "删除任务",
      "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": "w66NRU7eE1oAWYpS",
          "name": "Google Tasks account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9182e719-5639-435b-b9d8-4f1c839cf99d",
      "name": "获取任务",
      "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": "w66NRU7eE1oAWYpS",
          "name": "Google Tasks account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2d6f032e-9141-49a2-9a61-55af392bd474",
      "name": "创建任务",
      "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": "w66NRU7eE1oAWYpS",
          "name": "Google Tasks account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e8d219de-13e4-4bdc-a353-06616d053b2d",
      "name": "获取联系人",
      "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": "tBJw9Ky8IQTMqYYc",
          "name": "Google Contacts jitesh.com@gmail.com"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "480cdf73-d41a-4e2a-aa26-8458a3309f38",
      "name": "Google 联系人 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 联系人",
      "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": "仅允许我",
      "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": "设置回复消息",
      "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": "检查文本或音频",
      "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": "文本转语音",
      "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": "judah6VcfikE7I8a",
          "name": "ElevenLabs account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f84af53d-c8b9-4d01-8808-61b6fbc3a3f2",
      "name": "思考",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        -656,
        592
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "ff370b17-3c64-49bc-b81c-f58189ee80a3",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -816,
        16
      ],
      "parameters": {
        "width": 720,
        "height": 704,
        "content": "## Jarvis 🤖"
      },
      "typeVersion": 1
    },
    {
      "id": "d1085087-53d5-4f8b-a026-d97106ee7fb1",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1168,
        752
      ],
      "parameters": {
        "color": 3,
        "width": 768,
        "height": 640,
        "content": "## Gmail MCP 📧"
      },
      "typeVersion": 1
    },
    {
      "id": "3ae2462f-0afc-4fd8-bb4d-0dbca47e08e1",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        400
      ],
      "parameters": {
        "color": 4,
        "width": 496,
        "height": 544,
        "content": "## 财务经理 MCP 💵"
      },
      "typeVersion": 1
    },
    {
      "id": "6b97a9fa-1362-4758-8c2f-9d5169039143",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -336,
        960
      ],
      "parameters": {
        "color": 6,
        "width": 448,
        "height": 416,
        "content": "## Google 联系人 MCP 👥"
      },
      "typeVersion": 1
    },
    {
      "id": "e37505c8-29d5-4e78-8b27-7eb48ff6f670",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1904,
        592
      ],
      "parameters": {
        "color": 5,
        "width": 624,
        "height": 704,
        "content": "## 日历 MCP 📅"
      },
      "typeVersion": 1
    },
    {
      "id": "978a9bcc-17a4-4195-98d0-05c0640fbfb9",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2496,
        464
      ],
      "parameters": {
        "color": 6,
        "width": 560,
        "height": 624,
        "content": "## 任务管理器 MCP ✅"
      },
      "typeVersion": 1
    },
    {
      "id": "c1b4609f-c432-4eef-987f-acb47200e6d8",
      "name": "WhatsApp 触发器",
      "type": "n8n-nodes-base.whatsAppTrigger",
      "position": [
        -2400,
        288
      ],
      "webhookId": "1c4d0dd4-3820-4fc9-8926-b692c22509f1",
      "parameters": {
        "options": {},
        "updates": [
          "messages"
        ]
      },
      "credentials": {
        "whatsAppTriggerApi": {
          "id": "1HNhDn6p2e3zPjQU",
          "name": "8310875097"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "089efa89-ecc2-485f-bf1c-036cf9eab365",
      "name": "发送消息",
      "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": "PsdvF9BGmAgsWDFl",
          "name": "8310875097"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d31161eb-e90b-459e-8e78-646485382ad9",
      "name": "发送音频",
      "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": "PsdvF9BGmAgsWDFl",
          "name": "8310875097"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3c564f0f-5ef8-4837-b8aa-1ef011230399",
      "name": "获取媒体 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": "PsdvF9BGmAgsWDFl",
          "name": "8310875097"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4e20baa2-9d9d-403c-8d2a-416572d98cf5",
      "name": "下载音频",
      "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": "PsdvF9BGmAgsWDFl",
          "name": "8310875097"
        }
      },
      "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
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 内容创作, 多模态 AI

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量53
分类2
节点类型19
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Jitesh Dugar

Jitesh Dugar

@jiteshdugar

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.

外部链接
在 n8n.io 查看

分享此工作流