8
n8n 中文网amn8n.com

代理

高级

这是一个Support, AI, IT Ops领域的自动化工作流,包含 38 个节点。主要使用 Set, Switch, Webhook, Telegram, TelegramTool 等节点,结合人工智能技术实现智能自动化。 使用WhatsApp、Telegram和Google Calendar的多代理AI诊所管理

前置要求
  • HTTP Webhook 端点(n8n 会自动生成)
  • Telegram Bot Token
  • OpenAI API Key
  • PostgreSQL 数据库连接信息
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "6LeAm5UyENgTdwkv",
  "meta": {
    "instanceId": "6d46e25379ef430a7067964d1096b885c773564549240cb3ad4c087f6cf94bd3",
    "templateCredsSetupCompleted": true
  },
  "name": "代理",
  "tags": [],
  "nodes": [
    {
      "id": "84ce6905-4416-4721-8627-f8c303730a4f",
      "name": "OpenAI 聊天模型1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        8260,
        2260
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-nano-2025-04-14",
          "cachedResultName": "gpt-4.1-nano-2025-04-14"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "zUnIUrOWA279vAoC",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a6e9358a-a873-49f3-af38-21ca545b2bfc",
      "name": "内部临床助理",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        8380,
        2020
      ],
      "parameters": {
        "text": "={{ $json.message.text }}",
        "options": {
          "systemMessage": "=Hoje é {{$now}}\nPAPEL:  \nVocê é um assistente interno de reagendamento na clínica, acionado diretamente por um profissional via Telegram para gerenciar situações de remarcação de consultas ou incluir lembretes na lista de compras.\n\nOBJETIVO GERAL:  \n1. Reagendar consultas a pedido do profissional.  \n2. Adicionar lembretes na lista de compras quando solicitado.  \n\nRESUMO DE RESPONSABILIDADES:  \n1. Reagendamento de pacientes  \n   - Acesse o Google Calendar por meio da ferramenta \"MCP Google Calendar\" para identificar as consultas afetadas.  \n   - Extraia o número de telefone na descrição do evento.  \n   - Use a ferramenta \"Reagendar no WhatsApp\" para enviar mensagens de reagendamento aos pacientes.  \n   - Lembre-se de que você apenas envia a mensagem; a resposta do paciente é tratada por outro agente.  \n\n2. Lista de compras da clínica  \n   - Se o profissional solicitar pelo Telegram a inclusão de um item na lista de compras, utilize a ferramenta \"Google Tasks\" para adicionar o lembrete.  \n\nORIENTAÇÕES DE LINGUAGEM E PROCEDIMENTO:  \n- Use uma abordagem empática, profissional e acolhedora.  \n- Nunca envie mensagens para pacientes sem autorização explícita do profissional.  \n- Quando listar eventos ou tarefas, seja objetivo e organizado.  \n- Mantenha clareza e concisão em todas as interações.  \n\nFERRAMENTAS DISPONÍVEIS:  \n- Reagendar no WhatsApp  \n- Google Tasks  \n- MCP Google Calendar  \n\nINSTRUÇÕES FINAIS:  \n- Atenda exclusivamente às solicitações de reagendamento e inclusão de lembretes.  \n- A remarcação de consultas ocorre somente quando o profissional pede, utilizando o MCP Google Calendar para identificar os pacientes e o \"Reagendar no WhatsApp\" para enviar a mensagem.  \n- Para a lista de compras, sempre registre no \"Google Tasks\".  \n"
        },
        "promptType": "define"
      },
      "typeVersion": 1.8
    },
    {
      "id": "d674fb31-cf45-47ac-b33b-4abe1920e352",
      "name": "Google Tasks",
      "type": "n8n-nodes-base.googleTasksTool",
      "position": [
        8720,
        2320
      ],
      "parameters": {
        "task": "bDQ5ZlNVV2lPQ3pYT3NsNA",
        "title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
        "additionalFields": {
          "notes": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Notes', ``, 'string') }}",
          "status": "needsAction"
        }
      },
      "credentials": {
        "googleTasksOAuth2Api": {
          "id": "3SQEwHb0AR81JO8y",
          "name": "Google Tasks account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "dff00a3c-6496-4104-afc4-a0556f3cabfa",
      "name": "MCP Google Calendar",
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "position": [
        8560,
        2320
      ],
      "parameters": {
        "sseEndpoint": "https://engaging-seahorse-19.rshare.io/mcp/ceb17fa5-1937-405f-8000-ea3be7d2b032/mcp/:tool/calendar/sse"
      },
      "typeVersion": 1
    },
    {
      "id": "10a0bda3-94b3-487a-98a1-1e7badcc8775",
      "name": "接收 Telegram 消息",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        8100,
        2020
      ],
      "webhookId": "f2b29356-d5d3-4f5d-9ef1-273001c0a820",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "TAVUHrFXuDIMInWe",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "46cfa6be-f896-4e33-be3d-b4ef676c043b",
      "name": "Postgres Chat Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
      "position": [
        8420,
        2300
      ],
      "parameters": {
        "sessionKey": "100",
        "sessionIdType": "customKey",
        "contextWindowLength": 10
      },
      "credentials": {
        "postgres": {
          "id": "t8gw5Kie6Oxy5TcK",
          "name": "Postgres account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "c79c44f6-94fa-4e56-9d94-49185f83bfb4",
      "name": "OpenAI 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        5860,
        3980
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini-2025-04-14",
          "cachedResultName": "gpt-4.1-mini-2025-04-14"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "zUnIUrOWA279vAoC",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5e7ac239-6ba1-414c-b11d-d637361e8f77",
      "name": "临床助理",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        5960,
        3760
      ],
      "parameters": {
        "text": "={{ $json.text }}{{ $json.output}}",
        "options": {
          "systemMessage": "=HOJE É: {{ $now }}\nCONTATO DA CLÍNICA: \n{ coloque o seu contato aqui }\n\nINSTRUÇÃO IMPORTANTE:\n\nAo criar ou editar qualquer evento via MCP_CALENDAR, inclua na descrição do agendamento:\n\nTelefone do paciente\n\nNome completo\n\nData de nascimento\n\nInformações adicionais (convênio, condição de saúde etc.)\n\nPAPEL:\nVocê é uma atendente do WhatsApp da Clínica Moreira, especializada em atendimento humanizado. Sua missão:\n\nAtender pacientes de forma ágil e eficiente\n\nResponder dúvidas sobre clínica e serviços\n\nAgendar, remarcar e cancelar consultas pelo MCP_CALENDAR\n\nPERSONALIDADE E TOM DE VOZ:\n\nSimpática, acolhedora e respeitosa\n\nFormal, sem emojis ou gírias\n\nFERRAMENTAS DISPONÍVEIS:\n\nMCP_CALENDAR (trigger /mcp/:tool/calendar)\n\nAVALIABILITY_CALENDAR: verifica horários livres entre Start_Time e End_Time\n\nGET_ALL_CALENDAR: lista todos os eventos entre After e Before\n\nCREATE_CALENDAR: cria novo evento com start, end e Description (inclua sempre telefone, nome e data de nascimento)\n\nUPDATE_CALENDAR: atualiza campos de um evento existente (Event_ID)\n\nDELETE_CALENDAR: remove evento (Event_ID)\n\nGET_CALENDAR: obtém detalhes de um evento específico (Event_ID)\n\nCallToHuman (workflow id A95kslcW4H82nJuR)\n\nEncaminha atendimento humano via EvolutionAPI em n8n\n\nDisparar IMEDIATAMENTE quando:\n\nUrgência ou mal-estar grave\n\nPedido de diagnóstico/opinião médica\n\nInsatisfação expressa do paciente\n\nAssuntos fora do escopo da clínica\n\nExemplo de chamada:\n\n{\n  \"tool\": \"CallToHuman\",\n  \"telefone\": \"<telefone>\",\n  \"nome\": \"<nome completo>\",\n  \"ultima_mensagem\": \"<texto da última mensagem>\"\n}\n\nEnviar telegram cancelamento\n\nApós DELETE_CALENDAR, envie ao gestor via Telegram: nome, data, hora\n\nSOP (Fluxo de Atendimento):\n\nInício e coleta de dados\n\nCumprimente e informe o link da agenda: https://calendar.google.com/calendar/embed?src=a57a3781407f42b1ad7fe24ce76f558dc6c86fea5f349b7fd39747a2294c1654%40group.calendar.google.com&ctz=America%2FArgentina%2FBuenos_Aires\n\nPeça: nome completo, data de nascimento e confirme o telefone\n number: {{ $('Webhook1').item.json.body.data.key.remoteJid.replaceAll(\"@s.whatsapp.net\",\"\") }}\n\nVerificação de disponibilidade\n\nPergunte data e turno preferidos\n\nChame AVALIABILITY_CALENDAR com Start_Time 08:00 e End_Time 19:00 (ou turno)\n\nInforme horários livres\n\nAgendamento\n\nApós escolha do paciente, use CREATE_CALENDAR com start, end e Description\n\nAguarde retorno para confirmar criação antes de responder\n\nRemarcação\n\nSolicite dados e nova preferência de data/turno\n\nLocalize evento antigo via GET_ALL_CALENDAR\n\nUse DELETE_CALENDAR no Event_ID antigo\n\nCrie novo com CREATE_CALENDAR\n\nConfirme após sucesso\n\nCancelamento\n\nSolicite dados do paciente\n\nIdentifique Event_ID via GET_ALL_CALENDAR ou GET_CALENDAR\n\nExecute DELETE_CALENDAR\n\nUse Enviar telegram cancelamento\n\nConfirme cancelamento ao paciente\n\nConfirmação de consulta (follow-up)\n\nSe paciente responder “Confirmar, ID”: use UPDATE_CALENDAR para prefixar título com [Confirmado]\n\nSe “Reagendar, ID”: DELETE_CALENDAR e oriente para usar link da agenda\n\nREGRAS DE ESCALONAMENTO:\n\nUse CallToHuman IMEDIATAMENTE em situações de:\n\nUrgência/mal-estar\n\nPedidos de diagnóstico/opinião médica\n\nInsatisfação ou reclamações\n\nAssuntos fora do escopo\n\nMANTENHA SEMPRE:\n\nTom profissional e respeitoso\n\nLinguagem clara e objetiva\n\nAgendamentos apenas em datas futuras\n\nNunca confirmar sem retorno do MCP_CALENDAR\n\nHORÁRIOS DE FUNCIONAMENTO:\n\nSeg–Sáb: 08h–19h | Dom e feriados: fechado\n\nLOCALIZAÇÃO:\nRua Rio Casca, 417 – Belo Horizonte, MG\n\nLINK DA AGENDA:\nhttps://calendar.google.com/calendar/embed?src=a57a3781407f42b1ad7fe24ce76f558dc6c86fea5f349b7fd39747a2294c1654%40group.calendar.google.com&ctz=America%2FArgentina%2FBuenos_Aires\n\n"
        },
        "promptType": "define"
      },
      "retryOnFail": true,
      "typeVersion": 1.8,
      "waitBetweenTries": 1000
    },
    {
      "id": "2f0a6ea1-7654-4ae7-884e-d5b8ff47d4f9",
      "name": "发送取消提醒",
      "type": "n8n-nodes-base.telegramTool",
      "position": [
        6400,
        3980
      ],
      "webhookId": "d045a8c1-ec1b-4d20-8226-457aa18934af",
      "parameters": {
        "text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Text', ``, 'string') }}",
        "chatId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Chat_ID', ``, 'string') }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "TAVUHrFXuDIMInWe",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8ddaa14f-7d2f-4364-8ff7-f87e0a428e37",
      "name": "每日触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        8060,
        2780
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 8 * * 1-5"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "0784753d-123d-4259-abcc-8abf39e7fc07",
      "name": "确认助理",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        8280,
        2680
      ],
      "parameters": {
        "text": "=Hoje é {{ $now }}. Você é um agente especializado em **confirmação de consultas** para a clínica. Sua função principal é:\n\n1. **Listar os eventos** agendados para o próximo dia no MCP Calendar.\n2. **Obter o numero** na descrição de cada evento.\n3. **Enviar uma mensagem de confirmação** usando a ferramenta “relembraAGENDAMENTO”, perguntando se o paciente confirma a consulta ou prefere reagendar.\n\nImportante:\n- Você **não recebe respostas** diretamente; o retorno do paciente é tratado por outro agente.\n\n",
        "options": {
          "systemMessage": ""
        },
        "promptType": "define"
      },
      "typeVersion": 1.8
    },
    {
      "id": "afa90e86-0f44-4069-976b-ca302b0d828a",
      "name": "AI 代理",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        5840,
        4460
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "options": {
          "systemMessage": "=Você é especialista em formatação de mensagem para whataspp, trabalhando somente na formatação e não alterando o conteúdo da menssagem.\n\n- Substitua ** por *\n- Remova #"
        },
        "promptType": "define"
      },
      "typeVersion": 1.8
    },
    {
      "id": "13179a70-85b6-4e18-8736-eb2cdd252591",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        6960,
        2580
      ],
      "parameters": {
        "color": 5,
        "width": 1940,
        "height": 600,
        "content": "# \"预约确认助理\""
      },
      "typeVersion": 1
    },
    {
      "id": "4111432b-2ddc-4e96-ba6d-d25e003e2688",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4760,
        3620
      ],
      "parameters": {
        "color": 3,
        "width": 1780,
        "height": 640,
        "content": "# \"代理核心组件(工具、MCP、内存、LLM 模型)\""
      },
      "typeVersion": 1
    },
    {
      "id": "4b59f903-07c2-4e66-9ea1-0727beb0d85c",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4640,
        4300
      ],
      "parameters": {
        "color": 4,
        "width": 1800,
        "height": 640,
        "content": "# \"处理和发送 WhatsApp 回复\""
      },
      "typeVersion": 1
    },
    {
      "id": "274f7f66-7613-4e9e-868d-a5705156dde6",
      "name": "Postgres Chat Memory1",
      "type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
      "position": [
        6000,
        3980
      ],
      "parameters": {
        "sessionKey": "= {{ $('Webhook1').item.json.body.data.key.id }}",
        "sessionIdType": "customKey",
        "contextWindowLength": 50
      },
      "credentials": {
        "postgres": {
          "id": "t8gw5Kie6Oxy5TcK",
          "name": "Postgres account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "654ed617-df1a-48db-b9bc-833b2c1ecb80",
      "name": "MCP Google Calendar2",
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "position": [
        6120,
        3980
      ],
      "parameters": {
        "sseEndpoint": "https://engaging-seahorse-19.rshare.io/mcp/ceb17fa5-1937-405f-8000-ea3be7d2b032/mcp/:tool/calendar/sse"
      },
      "typeVersion": 1
    },
    {
      "id": "b11aeec6-b446-4c02-a0b0-7f9239628df3",
      "name": "MCP GMAIL",
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "position": [
        8540,
        3000
      ],
      "parameters": {
        "sseEndpoint": "https://engaging-seahorse-19.rshare.io/mcp/82a7a338-618c-44f5-a1c3-f2e32b6b4833/mcp/:tool/gmail/sse"
      },
      "typeVersion": 1
    },
    {
      "id": "f5a38b34-499e-4bbc-9282-ce5f4a3b85a3",
      "name": "MCP CALENDAR",
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "position": [
        8380,
        3000
      ],
      "parameters": {
        "sseEndpoint": "https://engaging-seahorse-19.rshare.io/mcp/ceb17fa5-1937-405f-8000-ea3be7d2b032/mcp/:tool/calendar/sse"
      },
      "typeVersion": 1
    },
    {
      "id": "cd6a6147-fd18-4cd4-8aab-fcb454ab76b7",
      "name": "Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        8740,
        2020
      ],
      "webhookId": "5bba05fc-2859-4225-aa85-7c4bc5ff532d",
      "parameters": {
        "text": "={{ $json.output }}",
        "chatId": "={{ $('Receber Mensagem Telegram').item.json.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "TAVUHrFXuDIMInWe",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "900b8c1a-f987-4898-9fc1-bfc673773e06",
      "name": "OpenRouter Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        5760,
        4680
      ],
      "parameters": {
        "model": "google/gemini-2.0-flash-exp:free",
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "id": "eGPA8rbskZCfFPBn",
          "name": "OpenRouter account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1584b448-d8f5-4bab-ad9a-9b07edb8e102",
      "name": "Webhook1",
      "type": "n8n-nodes-base.webhook",
      "position": [
        5760,
        2100
      ],
      "webhookId": "405dab7c-a0ea-4f5b-a6cc-ede9d5ba78a0",
      "parameters": {
        "path": "evolutionAPIKORE",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2
    },
    {
      "id": "74b5179f-502c-45d6-88e9-2c2d492603cd",
      "name": "编辑字段1",
      "type": "n8n-nodes-base.set",
      "position": [
        6000,
        2100
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "3e6335ae-74c3-4655-b68f-cdf0c68b864f",
              "name": "number",
              "type": "string",
              "value": "={{ $json.body.data.key.remoteJid }}"
            },
            {
              "id": "15f399cf-a98e-45e7-91ce-61b4fad340fd",
              "name": "name",
              "type": "string",
              "value": "={{ $json.body.data.pushName }}"
            },
            {
              "id": "b1943003-1f47-40e1-b418-6a52557ec44e",
              "name": "key_id",
              "type": "string",
              "value": "={{ $json.body.data.key.id }}"
            },
            {
              "id": "ed23194b-22ca-455b-a085-7dae706d0569",
              "name": "text",
              "type": "string",
              "value": "={{ $json.body.data.message.conversation }}"
            },
            {
              "id": "b35f8b61-da15-42e3-a078-4cd901e1f273",
              "name": "type",
              "type": "string",
              "value": "={{ $json.body.data.message.imageMessage.mimetype }}"
            },
            {
              "id": "a62bf96a-51aa-44c3-9e5d-f592e32a31d6",
              "name": "image.url",
              "type": "string",
              "value": "={{ $json.body.data.message.imageMessage.url }}"
            },
            {
              "id": "b004987d-3527-4040-a5e6-5fe06b25c9b9",
              "name": "audio.url",
              "type": "string",
              "value": "={{ $json.body.data.message.audioMessage.url }}"
            },
            {
              "id": "4c2cc03a-c104-4a87-9d31-6a7c256890ad",
              "name": "document.url",
              "type": "string",
              "value": "={{ $json.body.data.message.documentMessage.url }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ce22f5bc-f0e1-463d-9b9a-5112f8d91f00",
      "name": "切换",
      "type": "n8n-nodes-base.switch",
      "position": [
        6240,
        2080
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "text",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "2f9854ac-26b3-446c-9d0d-ae25157c61bb",
                    "operator": {
                      "type": "string",
                      "operation": "notEmpty",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.text }}",
                    "rightValue": "="
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "image",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "73b7d93a-928e-42ec-9c8e-ae8e9b97a867",
                    "operator": {
                      "type": "string",
                      "operation": "notEmpty",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.image.url }}",
                    "rightValue": "="
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "audio",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "2f9915b9-e2b4-4528-ad36-515a848ab1be",
                    "operator": {
                      "type": "string",
                      "operation": "notEmpty",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.audio.url }}",
                    "rightValue": "[null]"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "document",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "9fcbe89a-c9d7-4dc6-bb6f-27c1cacbfddc",
                    "operator": {
                      "type": "string",
                      "operation": "notEmpty",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.document.url }}",
                    "rightValue": "[null]"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "c78ee758-fb71-4a4f-9450-0ffcd67a2af2",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4960,
        1840
      ],
      "parameters": {
        "color": 6,
        "width": 1580,
        "height": 640,
        "content": "# \"传入 WhatsApp Webhook 和消息类型处理\""
      },
      "typeVersion": 1
    },
    {
      "id": "83abbf61-91e2-4d1c-a42a-4f05b18583e7",
      "name": "OpenAI",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        6380,
        3260
      ],
      "parameters": {
        "options": {},
        "resource": "audio",
        "operation": "transcribe",
        "binaryPropertyName": "=data"
      },
      "credentials": {
        "openAiApi": {
          "id": "zUnIUrOWA279vAoC",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "4c2dcefc-fb65-42ca-8c63-8636f2906654",
      "name": "Evolution API",
      "type": "n8n-nodes-evolution-api.evolutionApi",
      "position": [
        5860,
        3260
      ],
      "parameters": {
        "resource": "chat-api",
        "messageId": "={{ $json.key_id }}",
        "operation": "get-media-base64",
        "convertToMp4": true,
        "instanceName": "={{ $('Webhook1').item.json.body.instance }}"
      },
      "credentials": {
        "evolutionApi": {
          "id": "fPKdX0EITLV8HI89",
          "name": "Evolution account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "85909834-7564-478b-bce8-0c3fe7bf4159",
      "name": "转换为文件",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        6100,
        3260
      ],
      "parameters": {
        "options": {},
        "operation": "toBinary",
        "sourceProperty": "data.base64"
      },
      "typeVersion": 1.1
    },
    {
      "id": "3e200157-fbcc-4225-b982-2dfaea54cc23",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4980,
        3100
      ],
      "parameters": {
        "width": 1760,
        "height": 480,
        "content": "## \"下载音频并转换为 MP4\""
      },
      "typeVersion": 1
    },
    {
      "id": "5862d5f1-2df4-40ee-881f-a6d6e302602f",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4920,
        2540
      ],
      "parameters": {
        "width": 1820,
        "height": 480,
        "content": "# \"从图片中提取文本\""
      },
      "typeVersion": 1
    },
    {
      "id": "8dbd4e6d-8b38-44d8-ba45-5cac2713f6ca",
      "name": "OpenAI1",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        5980,
        2620
      ],
      "parameters": {
        "text": "TRANSCRIBE OS TEXTOS e describe a imagem",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "chatgpt-4o-latest",
          "cachedResultName": "CHATGPT-4O-LATEST"
        },
        "options": {},
        "resource": "image",
        "imageUrls": "={{ $json.image }}",
        "operation": "analyze"
      },
      "credentials": {
        "openAiApi": {
          "id": "zUnIUrOWA279vAoC",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "19e8d50d-4f87-408e-96f0-236932c1d120",
      "name": "AI代理2",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        6200,
        2620
      ],
      "parameters": {
        "text": "={{$json.output}}",
        "options": {
          "systemMessage": "voce e encarregado de analizar o texto proveniente do analisis de uma iamgem ela pode conter texto, a ideia e que voce explique ao proximo agente como debe responder as mensagens"
        },
        "promptType": "define"
      },
      "typeVersion": 1.9
    },
    {
      "id": "0d2f9842-b011-49f5-9594-24a917dee60e",
      "name": "OpenRouter Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        6100,
        2860
      ],
      "parameters": {
        "model": "google/gemini-2.5-pro-exp-03-25:free",
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "id": "eGPA8rbskZCfFPBn",
          "name": "OpenRouter account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "58f7f9c7-6f86-40ff-bfad-5467e5b3a9e4",
      "name": "Evolution API2",
      "type": "n8n-nodes-evolution-api.evolutionApi",
      "position": [
        6200,
        4460
      ],
      "parameters": {
        "resource": "messages-api",
        "remoteJid": "={{ $('Webhook1').item.json.body.data.key.remoteJid }}",
        "messageText": "={{$json.output}}",
        "instanceName": "={{ $('Webhook1').item.json.body.instance }}",
        "options_message": {}
      },
      "credentials": {
        "evolutionApi": {
          "id": "fPKdX0EITLV8HI89",
          "name": "Evolution account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2b529ab1-2a7e-44e0-b7c8-ed05e07c6def",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        6960,
        1840
      ],
      "parameters": {
        "width": 1960,
        "height": 680,
        "content": "## \"内部临床助理\""
      },
      "typeVersion": 1
    },
    {
      "id": "a4a51bd1-48a6-4e32-b696-0ae77a0e05fe",
      "name": "呼叫人工",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        6240,
        4000
      ],
      "parameters": {
        "name": "escalar_humano",
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "A95kslcW4H82nJuR",
          "cachedResultName": "callToHuman"
        },
        "description": "=当感知到患者谈论以下内容时使用此工具:",
        "workflowInputs": {
          "value": {
            "nome": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('nome', ``, 'string') }}",
            "telefone": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('telefone', ``, 'string') }}",
            "ultima_mensagem": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('ultima_mensagem', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "telefone",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "telefone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "nome",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "nome",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ultima_mensagem",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "ultima_mensagem",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "674c5c75-a954-4306-8a02-71bdda89293c",
      "name": "OpenAI 聊天模型2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        8260,
        2840
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "zUnIUrOWA279vAoC",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b398627e-2fbe-44e4-ac2f-523b03871eda",
      "name": "提醒",
      "type": "n8n-nodes-evolution-api.evolutionApi",
      "position": [
        8640,
        2700
      ],
      "parameters": {
        "resource": "messages-api",
        "remoteJid": "5511111111111@s.whatsapp.net",
        "messageText": "={{$fromAI(\"reminder\")}}",
        "instanceName": "instance name",
        "options_message": {}
      },
      "credentials": {
        "evolutionApi": {
          "id": "fPKdX0EITLV8HI89",
          "name": "Evolution account"
        }
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {
    "Webhook1": [
      {
        "json": {
          "body": {
            "data": {
              "key": {
                "id": "05D218BDE5BFC8378B5AA50BA87FDAFE",
                "fromMe": false,
                "remoteJid": "5491169701682@s.whatsapp.net"
              },
              "source": "android",
              "status": "DELIVERY_ACK",
              "message": {
                "conversation": "Sim",
                "messageContextInfo": {
                  "messageSecret": "RdahuRio1gbaHLsCeV24k8yFFyJWGpAJ5zHYRc2QysU=",
                  "deviceListMetadata": {
                    "recipientKeyHash": "KgcEIs2I9kXQgQ==",
                    "recipientTimestamp": "1745501413"
                  },
                  "deviceListMetadataVersion": 2
                }
              },
              "pushName": "Luciano",
              "instanceId": "317a031e-567d-4c2e-9bc4-146616fe4db7",
              "messageType": "conversation",
              "messageTimestamp": 1745501855
            },
            "event": "messages.upsert",
            "apikey": "59BA76B6BD78-403B-A0CC-8735B6A7ED3A",
            "sender": "553191282843@s.whatsapp.net",
            "instance": "kore",
            "date_time": "2025-04-24T10:37:35.514Z",
            "server_url": "http://localhost:8080",
            "destination": "https://engaging-seahorse-19.rshare.io/webhook/evolutionAPIKORE"
          },
          "query": {},
          "params": {},
          "headers": {
            "host": "host.docker.internal:5678",
            "x-scheme": "https",
            "forwarded": "by=_exposr;for=179.0.72.34;host=engaging-seahorse-19.rshare.io;proto=https",
            "x-real-ip": "179.0.72.34",
            "connection": "keep-alive",
            "exposr-via": "b9e7ef031eb8fe005896193e59b1d6f6d8743b1e",
            "user-agent": "axios/1.7.9",
            "content-type": "application/json",
            "x-request-id": "91360975101096aa10d12cb5b8925b55",
            "content-length": "821",
            "accept-encoding": "gzip, compress, deflate, br",
            "x-forwarded-for": "179.0.72.34",
            "x-forwarded-host": "engaging-seahorse-19.rshare.io",
            "x-forwarded-port": "443",
            "x-forwarded-proto": "https",
            "x-forwarded-scheme": "https"
          },
          "webhookUrl": "https://engaging-seahorse-19.rshare.io/webhook/evolutionAPIKORE",
          "executionMode": "production"
        }
      }
    ],
    "Gatilho diário": [
      {
        "json": {
          "Hour": "10",
          "Year": "2025",
          "Month": "April",
          "Minute": "13",
          "Second": "11",
          "Timezone": "America/New_York (UTC-04:00)",
          "timestamp": "2025-04-24T10:13:11.035-04:00",
          "Day of week": "Thursday",
          "Day of month": "24",
          "Readable date": "April 24th 2025, 10:13:11 am",
          "Readable time": "10:13:11 am"
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "3044ad5c-d14e-4562-a454-0ad87f26dc68",
  "connections": {
    "OpenAI": {
      "main": [
        [
          {
            "node": "Assistente Clínica",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Assistente Clínica",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "OpenAI1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Evolution API",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "OpenAI1": {
      "main": [
        [
          {
            "node": "AI Agent2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Evolution API2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook1": {
      "main": [
        [
          {
            "node": "Edit Fields1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent2": {
      "main": [
        [
          {
            "node": "Assistente Clínica",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "MCP GMAIL": {
      "ai_tool": [
        [
          {
            "node": "Assistente de confirmação",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "CallToHuman": {
      "ai_tool": [
        [
          {
            "node": "Assistente Clínica",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields1": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Tasks": {
      "ai_tool": [
        [
          {
            "node": "Assistente clinica interno",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "MCP CALENDAR": {
      "ai_tool": [
        [
          {
            "node": "Assistente de confirmação",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Evolution API": {
      "main": [
        [
          {
            "node": "Convert to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gatilho diário": {
      "main": [
        [
          {
            "node": "Assistente de confirmação",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Assistente Clínica",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Assistente clinica interno",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Assistente de confirmação",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Assistente Clínica": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "MCP Google Calendar": {
      "ai_tool": [
        [
          {
            "node": "Assistente clinica interno",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "MCP Google Calendar2": {
      "ai_tool": [
        [
          {
            "node": "Assistente Clínica",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Postgres Chat Memory": {
      "ai_memory": [
        [
          {
            "node": "Assistente clinica interno",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Postgres Chat Memory1": {
      "ai_memory": [
        [
          {
            "node": "Assistente Clínica",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Receber Mensagem Telegram": {
      "main": [
        [
          {
            "node": "Assistente clinica interno",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Assistente clinica interno": {
      "main": [
        [
          {
            "node": "Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Assistente de confirmação": {
      "main": [
        [
          {
            "node": "REMINDER",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Enviar alerta de cancelamento": {
      "ai_tool": [
        [
          {
            "node": "Assistente Clínica",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - 客户支持, 人工智能, IT 运维

需要付费吗?

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

工作流信息
难度等级
高级
节点数量38
分类3
节点类型18
难度说明

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

作者
Luciano Gutierrez

Luciano Gutierrez

@koresoluciones

🇧🇷 Argentino de 30 anos e fundador da KORE Soluções em Belo Horizonte (MG). Há 1 ano, fornecemos automações, cursos, configurações e manutenção de workflows, ajudando empresas a aumentar eficiência e escalar processos com tecnologia. 🇺🇸 I’m a 30‑year‑old Argentine founder of KORE Soluções in Belo Horizonte (MG). For 1 year, we’ve delivered automations, courses, configuration, and workflow maintenance, helping businesses boost efficiency and scale processes with technology.

外部链接
在 n8n.io 查看

分享此工作流