{
  "createdAt": "2025-05-18T02:13:07.100Z",
  "updatedAt": "2025-05-28T13:09:54.774Z",
  "id": "0xS9pQNLkt5nHvEo",
  "name": "Agente_Aline(carlos)",
  "active": false,
  "isArchived": false,
  "nodes": [
    {
      "parameters": {
        "model": "gpt-4.1-nano",
        "options": {
          "frequencyPenalty": 0.2,
          "presencePenalty": 0.2,
          "temperature": 0.8
        }
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1,
      "position": [
        240,
        220
      ],
      "id": "7156f031-24b3-406b-bbbe-84fa2b0105ab",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {},
      "type": "@n8n/n8n-nodes-langchain.toolCalculator",
      "typeVersion": 1,
      "position": [
        420,
        240
      ],
      "id": "65c745b2-a5e6-48e7-bacc-c5e80a3b18f0",
      "name": "Calculator"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $('Webhook1').item.json.body.payload.body || $('Webhook1').item.json.body.payload._data.Message.conversation || $json.body.payload._data.Message.extendedTextMessage.text}}",
        "options": {
          "systemMessage": "=Hor\u00e1rio atual: {{ $now }}\n### IDENTIDADE\nVoc\u00ea \u00e9 Sofia, uma consultora especialista em tratamentos est\u00e9ticos personalizados para clientes que desejam cuidar da sua apar\u00eancia e bem-estar. Sua abordagem \u00e9 amig\u00e1vel, objetiva e orientada para resultados. Seu objetivo \u00e9 coletar informa\u00e7\u00f5es-chave, qualificar leads e agendar uma avalia\u00e7\u00e3o.\n### OBJETIVO\n1. Coletar informa\u00e7\u00f5es sobre as principais preocupa\u00e7\u00f5es est\u00e9ticas do lead.\n2. Obter dados para qualifica\u00e7\u00e3o, como tratamentos anteriores e or\u00e7amento dispon\u00edvel.\n3. Qualificar leads com base nas respostas coletadas.\n4. Agendar avalia\u00e7\u00e3o com leads qualificados e encerrar leads n\u00e3o qualificados de forma gentil.\n### REGRAS\n1. Seja direto nas respostas. N\u00e3o ultrapasse 500 caracteres.\n2. Para quebrar linhas, utilize '\\n\\n'.\n3. Sempre fa\u00e7a uma pergunta de cada vez.\n4. Sempre que precisar agendar, remarcar, cancelar ou verificar hor\u00e1rios dispon\u00edveis para avalia\u00e7\u00e3o, chame a tool \"Agendamento\".\n### FERRAMENTAS DISPON\u00cdVEIS\n1. Agendamento:\nUse esta ferramenta para:\n- Verificar a disponibilidade de hor\u00e1rios.\n- Listar op\u00e7\u00f5es de hor\u00e1rios dispon\u00edveis.\n- Agendar uma nova avalia\u00e7\u00e3o.\n- Reagendar avalia\u00e7\u00f5es existentes.\n- Cancelar avalia\u00e7\u00f5es j\u00e1 marcadas.\n### FLUXO DA CONVERSA\n1. Apresenta\u00e7\u00e3o:\n\"Ol\u00e1, aqui \u00e9 a Sofia, consultora especialista em tratamentos est\u00e9ticos da Cl\u00ednica Beleza Plena. Tudo bem? Vi que voc\u00ea demonstrou interesse em conhecer nossos tratamentos. Qual o seu nome?\"\n2. Pergunta inicial:\n\"Obrigada, [Nome]. Para entender melhor suas necessidades, qual \u00e9 a sua principal preocupa\u00e7\u00e3o est\u00e9tica atualmente?\"\n3. Detalhamento:\nSe necess\u00e1rio, use perguntas adicionais para explorar a preocupa\u00e7\u00e3o:\n\"Como essa preocupa\u00e7\u00e3o afeta sua autoestima no dia a dia?\"\n\"Voc\u00ea j\u00e1 realizou algum tratamento para isso anteriormente?\"\n4. Quantidade de Tratamentos:\n\"Quantos procedimentos est\u00e9ticos voc\u00ea j\u00e1 realizou nos \u00faltimos 12 meses?\"\n5. Or\u00e7amento Dispon\u00edvel:\n\"Qual \u00e9 o or\u00e7amento mensal que voc\u00ea considera para tratamentos est\u00e9ticos?\"\n### CRIT\u00c9RIOS DE QUALIFICA\u00c7\u00c3O\nSe o or\u00e7amento mensal for abaixo de R$500:\nDesqualificado. Encerre de forma cordial: \"Obrigada, [Nome], por compartilhar essas informa\u00e7\u00f5es! Apesar de, neste momento, nossos tratamentos n\u00e3o se alinharem ao seu or\u00e7amento, estou \u00e0 disposi\u00e7\u00e3o para ajudar no futuro com dicas ou sugest\u00f5es de cuidados. Tenha um \u00f3timo dia!\"\nSe o or\u00e7amento mensal for igual ou acima de R$500:\n1. Qualificado. Informe o pr\u00f3ximo passo: \n\"Qual seria o melhor dia e hor\u00e1rio para uma avalia\u00e7\u00e3o presencial de at\u00e9 40 minutos?\"\n2. Perguntar o email, nunca agende ou remarque sem perguntar o email.\n3. A\u00e7\u00f5es poss\u00edveis:\n- Verificar Disponibilidade: Consulte se o hor\u00e1rio est\u00e1 dispon\u00edvel.\n- Lista: Pegar lista de hor\u00e1rios dispon\u00edveis.\n- Agendar: Confirme o hor\u00e1rio escolhido para a avalia\u00e7\u00e3o.\n- Reagendar: Caso o cliente precise de uma mudan\u00e7a.\n- Cancelar: Encerre avalia\u00e7\u00f5es previamente marcadas, se necess\u00e1rio.\n4. Ap\u00f3s a avalia\u00e7\u00e3o ser agendada, chame a tool 'Agendado'.\n5. \"\u00d3timo, [Nome]! A avalia\u00e7\u00e3o est\u00e1 agendada. Ser\u00e1 um momento para analisarmos suas necessidades e apresentarmos tratamentos personalizados que podem transformar sua apar\u00eancia e bem-estar. Nos vemos em breve!\""
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.7,
      "position": [
        240,
        -60
      ],
      "id": "1ea4537a-7762-4fb7-bcb0-152576515666",
      "name": "AI SDR"
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "=Chame essa tool para verificar hor\u00e1rios dispon\u00edveis para reuni\u00f5es.\n\nstartTime = {{ $now }}\nendTime = {{ $now.plus(1, 'hours') }}",
        "resource": "calendar",
        "calendar": {
          "__rl": true,
          "value": "anderson.ns.tec@gmail.com",
          "mode": "list",
          "cachedResultName": "anderson.ns.tec@gmail.com"
        },
        "timeMin": "={{ $fromAI(\"startTime\", \"horario para agendar\") }}",
        "timeMax": "={{ $fromAI(\"endTime\", \"horario para agendar somado com 1 hora\") }}",
        "options": {}
      },
      "type": "n8n-nodes-base.googleCalendarTool",
      "typeVersion": 1.2,
      "position": [
        1800,
        600
      ],
      "id": "0dae747f-3a99-4be9-a51f-ec16ce04bea5",
      "name": "Verificar",
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=Nome do cliente: {{ $json.query.name }}\nEmail: {{ $json.query.email }}\nData: {{ $json.query.date }}\nEvento: {{ $json.query.evento }}",
        "options": {
          "systemMessage": "=Voc\u00ea \u00e9 um assistente especialista em agendamento de reuni\u00f5es. Seu objetivo \u00e9 auxiliar os usu\u00e1rios a gerenciar compromissos de forma eficiente e precisa.\n\nHor\u00e1rio atual: {{ $now }}\n\nVoc\u00ea tem \u00e0 sua disposi\u00e7\u00e3o 5 ferramentas que podem ser usadas conforme necess\u00e1rio para atender \u00e0s solicita\u00e7\u00f5es do usu\u00e1rio:\n\n#verificar\nDescri\u00e7\u00e3o: Verifica se um hor\u00e1rio espec\u00edfico est\u00e1 dispon\u00edvel.\nEntrada necess\u00e1ria: Hor\u00e1rio desejado.\n\n#lista\nDescri\u00e7\u00e3o: Voc\u00ea consegue listar todas as reuni\u00f5es agendadas. Portanto, os hor\u00e1rios que n\u00e3o estiver listado, est\u00e3o dispon\u00edveis para serem agendados. Se o usu\u00e1rio pedir a lista dos hor\u00e1rios dispon\u00edveis ou voc\u00ea precisar checar, fa\u00e7a isso.\nLembrando que as disponibilidades s\u00e3o de hora em hora.\nExemplo: 15h, 16h, 17h...\n\n#agendar\nDescri\u00e7\u00e3o: Agenda uma nova reuni\u00e3o. \u00c9 essencial verificar a disponibilidade antes de tentar agendar.\nEntradas necess\u00e1rias: Hor\u00e1rio, Nome do Cliente, Email do Cliente.\n\n#reagendar\nDescri\u00e7\u00e3o: Altera o hor\u00e1rio de uma reuni\u00e3o existente. Antes de reagendar, utilize lista para obter o ID da reuni\u00e3o.\nEntradas necess\u00e1rias: ID da reuni\u00e3o, Novo hor\u00e1rio.\n\n#cancelar\nDescri\u00e7\u00e3o: Cancela uma reuni\u00e3o existente. Antes de cancelar, utilize lista para obter o ID da reuni\u00e3o.\nEntradas necess\u00e1rias: ID da reuni\u00e3o.\n\n#agendado\nDescri\u00e7\u00e3o: Use essa tool sempre quando realizar um agendamento ou reagendamento com sucesso.\n\n### REGRAS\n\nSe j\u00e1 tiver alguma reuni\u00e3o marcada no mesmo hor\u00e1rio, informe que o hor\u00e1rio n\u00e3o est\u00e1 dispon\u00edvel e sugira outras op\u00e7\u00f5es pr\u00f3ximas.\n\nSe o usu\u00e1rio j\u00e1 tiver outra reuni\u00e3o agendada, informe que ele j\u00e1 tem uma reuni\u00e3o marcada e pergunte se ele quer manter ou reagendar.\n\nCada usu\u00e1rio s\u00f3 pode ter 1 reuni\u00e3o agendada por vez.\n\nQuando for enviar o link do meet, n\u00e3o use Markdown. Envie apenas o link. Exemplo: Link para a reuni\u00e3o: https://meet.google.com/example"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.7,
      "position": [
        1160,
        40
      ],
      "id": "07b11563-baa9-41e4-9ae1-e40b33cb9b35",
      "name": "IA Agendador"
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Chame essa tool quando for checar a lista de hor\u00e1rios dispon\u00edveis.",
        "operation": "getAll",
        "calendar": {
          "__rl": true,
          "value": "anderson.ns.tec@gmail.com",
          "mode": "list",
          "cachedResultName": "anderson.ns.tec@gmail.com"
        },
        "returnAll": true,
        "options": {
          "timeMin": "={{ $now }}"
        }
      },
      "type": "n8n-nodes-base.googleCalendarTool",
      "typeVersion": 1.2,
      "position": [
        1540,
        640
      ],
      "id": "cb2be033-942e-4dbf-84eb-69ced004a106",
      "name": "Lista",
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Chame essa tool quando for agendar uma reuni\u00e3o.",
        "calendar": {
          "__rl": true,
          "value": "anderson.ns.tec@gmail.com",
          "mode": "list",
          "cachedResultName": "anderson.ns.tec@gmail.com"
        },
        "start": "={{ $fromAI(\"startTime\", \"horario para agendar\") }}",
        "end": "={{ $fromAI(\"endTime\", \"horario para agendar somado com 1 hora\") }}",
        "additionalFields": {
          "attendees": [
            "={{ $fromAI('email', 'email do cliente') }}"
          ],
          "conferenceDataUi": {
            "conferenceDataValues": {
              "conferenceSolution": "hangoutsMeet"
            }
          },
          "description": "=Reuni\u00e3o sobre solu\u00e7\u00f5es, tecnologias para melhorar a efici\u00eancia e a escala\u00a0da\u00a0corretora.",
          "summary": "=Reuni\u00e3o entre Fulano e {{ $fromAI('name', 'nome do cliente') }}"
        }
      },
      "type": "n8n-nodes-base.googleCalendarTool",
      "typeVersion": 1.2,
      "position": [
        1660,
        640
      ],
      "id": "75e545f1-1522-4a3e-95e0-ada4a95dee6a",
      "name": "Agendar",
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Chame essa tool quando for remarcar uma reuni\u00e3o.",
        "operation": "update",
        "calendar": {
          "__rl": true,
          "value": "anderson.ns.tec@gmail.com",
          "mode": "list",
          "cachedResultName": "anderson.ns.tec@gmail.com"
        },
        "eventId": "={{ $fromAI('id', 'id do evento') }}",
        "updateFields": {
          "end": "={{ $fromAI(\"endTime\", \"horario para agendar somado com 1 hora\") }}",
          "start": "={{ $fromAI(\"startTime\", \"horario para agendar\") }}"
        }
      },
      "type": "n8n-nodes-base.googleCalendarTool",
      "typeVersion": 1.2,
      "position": [
        1880,
        480
      ],
      "id": "d8b2c427-31bc-4d81-8d62-863e5d2f2a1b",
      "name": "Reagendar",
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "delete",
        "calendar": {
          "__rl": true,
          "value": "anderson.ns.tec@gmail.com",
          "mode": "list",
          "cachedResultName": "anderson.ns.tec@gmail.com"
        },
        "eventId": "={{ $fromAI('id', 'id do evento') }}",
        "options": {}
      },
      "type": "n8n-nodes-base.googleCalendarTool",
      "typeVersion": 1.2,
      "position": [
        1960,
        380
      ],
      "id": "a18ae251-8b07-4f94-a906-86cf6ae69f16",
      "name": "Cancelar",
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "60a162c6-2a31-4895-8528-5609b23dbf50",
        "responseMode": "responseNode",
        "options": {}
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        920,
        80
      ],
      "id": "f34bcb8a-4035-4762-88c8-e97228836e9a",
      "name": "Webhook"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "b666aa70-9089-4178-82eb-75c655a75efc",
              "name": "response",
              "value": "={{ $json.output }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1640,
        80
      ],
      "id": "71b34f69-8a7f-4491-996a-e0461cd3a198",
      "name": "Edit Fields"
    },
    {
      "parameters": {
        "toolDescription": "Chame essa tool se voc\u00ea precisar gerenciar reuni\u00f5es, incluindo: verificar a disponibilidade de um hor\u00e1rio espec\u00edfico, listar op\u00e7\u00f5es de hor\u00e1rios dispon\u00edveis, agendar uma nova reuni\u00e3o, reagendar uma reuni\u00e3o existente ou cancelar uma reuni\u00e3o previamente marcada.",
        "method": "POST",
        "url": "https://n8n-main.egtechsolutions.com.br/webhook/b3f29d8c-41b0-415d-8d65-ce9a39a984c6",
        "sendQuery": true,
        "parametersQuery": {
          "values": [
            {
              "name": "name",
              "valueProvider": "fieldValue",
              "value": "{name}"
            },
            {
              "name": "email",
              "valueProvider": "fieldValue",
              "value": "{email}"
            },
            {
              "name": "date",
              "valueProvider": "fieldValue",
              "value": "{date}"
            },
            {
              "name": "evento",
              "valueProvider": "fieldValue",
              "value": "{evento}"
            },
            {
              "name": "userKeyMemorySession",
              "valueProvider": "fieldValue",
              "value": "={{ $('Webhook1').item.json.body.payload.from.split(\"@\")[0] }}"
            }
          ]
        },
        "placeholderDefinitions": {
          "values": [
            {
              "name": "name",
              "description": "Nome do cliente",
              "type": "string"
            },
            {
              "name": "email",
              "description": "Email do cliente",
              "type": "string"
            },
            {
              "name": "date",
              "description": "Data e hor\u00e1rio da reuni\u00e3o"
            },
            {
              "name": "evento",
              "description": "verificar, lista, agendar, reagendar ou cancelar",
              "type": "string"
            }
          ]
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
      "typeVersion": 1.1,
      "position": [
        580,
        240
      ],
      "id": "d6ff9a6d-7f00-4b3a-8383-d580464b660c",
      "name": "Agendamento"
    },
    {
      "parameters": {
        "model": "gpt-4.1-nano",
        "options": {
          "temperature": 0.5
        }
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1,
      "position": [
        1000,
        380
      ],
      "id": "4404f605-9162-42ff-93e4-9a5e860cf993",
      "name": "OpenAI Chat Model1",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "srd_clinica_aline",
        "options": {}
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        -480,
        20
      ],
      "id": "af1c60c6-b236-4327-b30b-e16664888a55",
      "name": "Webhook1"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=https://lucid-generosity-copy-production.up.railway.app/message/sendText/{{ $('Webhook1').item.json.body.instance }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "={{ $('Webhook1').item.json.body.apikey }}"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n    \"number\": \"{{ $('Webhook1').item.json.body.data.key.remoteJid }}\",\n \"options\": {\n        \"delay\": 1200,\n        \"presence\": \"composing\",\n        \"linkPreview\": false\n    },\n\"textMessage\":{\n    \"text\": {{ $json.output.toJsonString() }}\n}}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1040,
        -320
      ],
      "id": "8109b9a7-dc2c-4128-b0b0-992389b6ec9a",
      "name": "HTTP Request",
      "disabled": true
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={\n  \"response\": {{ $json.response.toJsonString() }}\n} ",
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        1860,
        40
      ],
      "id": "82c049be-3c4c-46e2-9a52-1b9cb5b62e51",
      "name": "Respond to Webhook"
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $('Webhook1').item.json.body.payload.from.split(\"@\")[0] }}",
        "sessionTTL": 86400
      },
      "type": "@n8n/n8n-nodes-langchain.memoryRedisChat",
      "typeVersion": 1.5,
      "position": [
        320,
        420
      ],
      "id": "9e11895b-2760-4b39-94dc-e61ec468ffa0",
      "name": "Redis Chat Memory",
      "credentials": {
        "redis": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $('Webhook').item.json.query.userKeyMemorySession }}"
      },
      "type": "@n8n/n8n-nodes-langchain.memoryRedisChat",
      "typeVersion": 1.5,
      "position": [
        1320,
        480
      ],
      "id": "7780ca19-fe1f-4710-9f07-511f3dca3fea",
      "name": "Redis Chat Memory1",
      "credentials": {
        "redis": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "mode": "delete",
        "deleteMode": "all"
      },
      "type": "@n8n/n8n-nodes-langchain.memoryManager",
      "typeVersion": 1.1,
      "position": [
        -360,
        340
      ],
      "id": "9116e6a6-e1e3-4383-ac57-04324f1f8312",
      "name": "Chat Memory Manager",
      "disabled": true
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://waha-production-9002.up.railway.app/api/sendText",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "accept",
              "value": "application/json"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"chatId\": \"{{ $('Webhook1').item.json.body.payload.from }}\",\n  \"reply_to\": null,\n  \"text\": {{ $json.output.toJsonString() }},\n  \"linkPreview\": true,\n  \"linkPreviewHighQuality\": false,\n  \"session\": \"default\"\n}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        760,
        -200
      ],
      "id": "8d9a8e12-1ee4-4860-9537-3861513679aa",
      "name": "HTTP Request1"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose",
            "version": 2
          },
          "conditions": [
            {
              "id": "48ea1612-a499-4fe4-b476-aaf85a2b87e0",
              "leftValue": "={{ $json.body.payload.from }}",
              "rightValue": "status@broadcast",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              }
            },
            {
              "id": "890d2077-b00e-4b61-a60b-e86d084135a0",
              "leftValue": "={{ $json.body.payload._data.Info.IsFromMe }}",
              "rightValue": "",
              "operator": {
                "type": "boolean",
                "operation": "false",
                "singleValue": true
              }
            },
            {
              "id": "3a4c68bc-54e1-4520-99a8-96359c577911",
              "leftValue": "={{ $json.body.payload._data.Info.IsGroup }}",
              "rightValue": "",
              "operator": {
                "type": "boolean",
                "operation": "false",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "looseTypeValidation": true,
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -120,
        0
      ],
      "id": "5af56ad5-3614-4a94-abb7-35042da9e64a",
      "name": "If"
    }
  ],
  "connections": {
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI SDR",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Calculator": {
      "ai_tool": [
        [
          {
            "node": "AI SDR",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Verificar": {
      "ai_tool": [
        [
          {
            "node": "IA Agendador",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "IA Agendador": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Lista": {
      "ai_tool": [
        [
          {
            "node": "IA Agendador",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Agendar": {
      "ai_tool": [
        [
          {
            "node": "IA Agendador",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Reagendar": {
      "ai_tool": [
        [
          {
            "node": "IA Agendador",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Cancelar": {
      "ai_tool": [
        [
          {
            "node": "IA Agendador",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "IA Agendador",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Agendamento": {
      "ai_tool": [
        [
          {
            "node": "AI SDR",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "IA Agendador",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Webhook1": {
      "main": [
        [
          {
            "node": "Chat Memory Manager",
            "type": "main",
            "index": 0
          },
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI SDR": {
      "main": [
        [
          {
            "node": "HTTP Request1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Redis Chat Memory": {
      "ai_memory": [
        [
          {
            "node": "AI SDR",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Redis Chat Memory1": {
      "ai_memory": [
        [
          {
            "node": "IA Agendador",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request1": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "AI SDR",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1",
    "timezone": "America/Sao_Paulo",
    "callerPolicy": "workflowsFromSameOwner"
  },
  "staticData": null,
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "versionId": "f3edf4b0-8d0b-4dc5-9263-8ef25e77fe65",
  "triggerCount": 2,
  "tags": [
    {
      "createdAt": "2025-04-23T13:14:47.497Z",
      "updatedAt": "2025-04-23T13:14:47.497Z",
      "id": "NQNhAoRL6zDevZYE",
      "name": "Youtube"
    }
  ]
}