n8n Bug Report – Production Webhook Not Executing
##Describe the problem/error/question
When using the test webhook, the workflow executes correctly.
However, when switching to the production webhook, the workflow does not execute at all. No nodes run and no execution appears in the UI.
Testing the production webhook endpoint via ReqBin returns an HTTP 500 error. Recreating the workflow from scratch did not resolve the issue.
##What is the error message (if any)?
HTTP/1.1 500 Internal Server Error
{ “code”: 0, “message”: “Cannot read properties of undefined (reading ‘execute’)” }
I also did a test of creating workflows from scratch and testing the webhook, but when I added an HTTP request node, the workflow stopped working; it didn’t execute, it didn’t do anything, and no error message appeared.
No additional error is shown in the n8n UI.
Workflow
I can’t attach the file here because I’m a new user, so I’ll paste the workflow’s JSON code instead.
All credentials, API keys, private URLs and IDs have been removed.
Output of the last node
There is no output when the production webhook is triggered because the workflow does not start execution.
When using the test webhook, the workflow executes normally and returns the expected outputs.
Debug Info
n8nVersion: 2.2.4
Platform: Docker (self-hosted)
Node.js: 22.21.0
Execution mode: scaling (single-main)
Database: Postgres
License: Community
json code:
{
“name”: “Transcribe - Audio”,
“nodes”: [
{
“parameters”: {
“httpMethod”: “POST”,
“path”: “audioTR”,
“options”: {}
},
“type”: “n8n-nodes-base.webhook”,
“typeVersion”: 2.1,
“position”: [
-2192,
192
],
“id”: “07cc861f-d59a-441d-ba6e-6e788e04481b”,
“name”: “Webhook”,
“webhookId”: “a736cbef-6bea-4b15-bff4-ddf763efec9a”
},
{
“parameters”: {
“jsCode”: “// Obtém o primeiro item e acessa o caminho exato para o remoteJid\nconst input = $input.first().json;\nlet result = {};\n\ntry {\n // Verifica se o caminho completo existe\n if (input && input.body && input.body.data && input.body.data.key && input.body.data.key.remoteJid) {\n // Extrai apenas o número de telefone removendo “@s.whatsapp.net”\n const remoteJid = input.body.data.key.remoteJid;\n const phoneNumber = remoteJid.split(‘@’)[0];\n \n // Retorna apenas o número de telefone\n result = { phoneNumber };\n } else {\n result = { error: “Caminho para remoteJid não encontrado” };\n }\n} catch (error) {\n result = { error: Erro ao processar: ${error.message} };\n}\n\nreturn [{ json: result }];\n\nreturn [{\n …$json,\n instancia: $json.body?.instance || null,\n numero: $json.body?.data?.key?.remoteJid || null\n}];”
},
“type”: “n8n-nodes-base.code”,
“typeVersion”: 2,
“position”: [
-2064,
192
],
“id”: “6d8c4c8f-2404-4e32-96ea-f7d208ba7f97”,
“name”: “Code”
},
{
“parameters”: {
“assignments”: {
“assignments”: [
{
“id”: “6d80c877-6b6b-483f-925f-5ff802b73f0e”,
“name”: “body.data.key.id”,
“value”: “={{ $(‘Webhook’).item.json.body.data.key.id }}”,
“type”: “string”
}
]
},
“options”: {}
},
“type”: “n8n-nodes-base.set”,
“typeVersion”: 3.4,
“position”: [
-1920,
192
],
“id”: “a18962c9-72b5-46c0-be54-fffb017c59ba”,
“name”: “Obter ID”
},
{
“parameters”: {
“method”: “POST”,
“url”: “<REDACTED_SERVER_URL>”,
“sendHeaders”: true,
“headerParameters”: {
“parameters”: [
{
“name”: “apikey”,
“value”: “<REDACTED_API_KEY>”
}
]
},
“sendBody”: true,
“specifyBody”: “json”,
“jsonBody”: “={\n “message”: {\n “key”: {\n “id”: “{{ $json.body.data.key.id }}”\n }\n },\n “convertToMp4”: false\n} “,
“options”: {}
},
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 4.3,
“position”: [
-1776,
192
],
“id”: “b0c77a99-bae5-487f-b2db-ac65ee90b3f9”,
“name”: “Puxar áudio”
},
{
“parameters”: {
“assignments”: {
“assignments”: [
{
“id”: “3d05bf95-147c-404d-942d-9c598c63b673”,
“name”: “base64”,
“value”: “={{ $json.base64 }}”,
“type”: “string”
},
{
“id”: “68aff43f-8f4d-455c-b431-e899e390ea72”,
“name”: “Numero”,
“value”: “={{ $(‘Code’).item.json.phoneNumber }}”,
“type”: “string”
},
{
“id”: “20282750-b46f-4896-9bdf-cf91e122f41a”,
“name”: “instancia”,
“value”: “={{ $(‘Webhook’).item.json.body.instance }}”,
“type”: “string”
},
{
“id”: “712433ee-5ad6-4e0a-94c2-88ea43da522e”,
“name”: “api_key_evolution”,
“value”: “={{ $(‘Webhook’).item.json.body.apikey }}”,
“type”: “string”
}
]
},
“options”: {}
},
“type”: “n8n-nodes-base.set”,
“typeVersion”: 3.4,
“position”: [
-1632,
192
],
“id”: “7218ab50-fff7-4d4f-8c0c-35d89426a28b”,
“name”: “Global”
},
{
“parameters”: {
“rules”: {
“values”: [
{
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 2
},
“conditions”: [
{
“leftValue”: “={{ $(‘Webhook’).item.json.body.data.messageType }}”,
“rightValue”: “extendedTextMessage”,
“operator”: {
“type”: “string”,
“operation”: “equals”
},
“id”: “ada87cb4-7398-4349-99f9-42db3bf29c87”
}
],
“combinator”: “and”
},
“renameOutput”: true,
“outputKey”: “Texto”
},
{
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 2
},
“conditions”: [
{
“id”: “bc52dac7-63af-4115-94fb-86e70377624d”,
“leftValue”: “={{ $(‘Webhook’).item.json.body.data.messageType }}”,
“rightValue”: “audioMessage”,
“operator”: {
“type”: “string”,
“operation”: “equals”,
“name”: “filter.operator.equals”
}
}
],
“combinator”: “and”
},
“renameOutput”: true,
“outputKey”: “Áudio”
},
{
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 2
},
“conditions”: [
{
“id”: “a71a3f73-5251-471d-8ab9-a2c1e76d1de7”,
“leftValue”: “={{ $(‘Webhook’).item.json.body.data.messageType }}”,
“rightValue”: “imageMessage”,
“operator”: {
“type”: “string”,
“operation”: “equals”,
“name”: “filter.operator.equals”
}
}
],
“combinator”: “and”
},
“renameOutput”: true,
“outputKey”: “Imagem”
}
]
},
“options”: {}
},
“type”: “n8n-nodes-base.switch”,
“typeVersion”: 3.3,
“position”: [
-1504,
176
],
“id”: “dbedc607-8e22-43c6-8f34-d661135d3907”,
“name”: “Switch”
},
{
“parameters”: {
“operation”: “toBinary”,
“sourceProperty”: “base64”,
“options”: {
“fileName”: “audio.mp3”,
“mimeType”: “audio/mpeg”
}
},
“type”: “n8n-nodes-base.convertToFile”,
“typeVersion”: 1.1,
“position”: [
-1328,
192
],
“id”: “a33c69cd-2901-4a50-a75e-2b3e1dcfc24f”,
“name”: “Convert to File”
},
{
“parameters”: {
“resource”: “audio”,
“operation”: “transcribe”,
“options”: {}
},
“type”: “@n8n/n8n-nodes-langchain.openAi”,
“typeVersion”: 2,
“position”: [
-1168,
192
],
“id”: “27d65666-bf6e-456e-b5ed-7aeeaf221f21”,
“name”: “Transcribe a recording”,
“credentials”: {}
},
{
“parameters”: {
“modelId”: {
“__rl”: true,
“value”: “gpt-4.1-mini”,
“mode”: “list”,
“cachedResultName”: “GPT-4.1-MINI”
},
“responses”: {
“values”: [
{
“content”: “=A partir do texto abaixo, extraia as informações e retorne SOMENTE um JSON válido.\n\nCampos obrigatórios:\n- paciente (string)\n- procedimento (string)\n- codigo (string ou null)\n- data (YYYY-MM-DD ou null)\n- hora (HH:mm ou null)\n\nRegras IMPORTANTES:\n- Datas em português devem ser convertidas corretamente.\n Exemplo:\n “10 de outubro” → 2026-10-10\n “amanhã” → data atual + 1 dia\n- Considere o fuso America/Sao_Paulo\n- NÃO escreva texto fora do JSON\n- NÃO use ```json\n- Se algo não existir, retorne null\n- Procedimento deve ser curto (ex: “limpeza”, “tratamento periodontal”)\n\nTexto:\n{{$json.text}}\n”
},
{
“role”: “system”,
“content”: “Você é um agente de agendamento odontológico.\n\nREGRAS ABSOLUTAS:\n1. CÓDIGO DE PROCEDIMENTO NUNCA É HORÁRIO.\n2. HORÁRIO SEMPRE vem acompanhado de palavras como:\n - horas\n - da manhã / da tarde / da noite\n - h\n3. CÓDIGO DE PROCEDIMENTO é SEMPRE um NÚMERO ISOLADO, geralmente com 3 ou 4 dígitos.\n4. NUNCA converta código em horário.\n5. NUNCA converta horário em código.\n6. Se houver ambiguidade entre código e horário, PRIORIZE:\n - Horário → contexto de tempo\n - Código → contexto de procedimento\n\nSe o usuário disser algo como:\n"doze e trinta”\n→ isso É HORÁRIO, NÃO código.\n\nSe o usuário disser:\n"código do procedimento é 1230”\n→ isso É CÓDIGO, NÃO horário.\n\nSe houver dúvida:\n- NÃO invente\n- Marque o campo como null\n- Peça confirmação educadamente.\n”
}
]
},
“builtInTools”: {},
“options”: {}
},
“type”: “@n8n/n8n-nodes-langchain.openAi”,
“typeVersion”: 2,
“position”: [
-1040,
192
],
“id”: “c752d58c-5a2e-47f2-a7b7-591d3bbf32c7”,
“name”: “Message a model”,
“credentials”: {}
},
{
“parameters”: {
“jsCode”: “if ($json.codigo) {\n return [{\n json: {\n tipoBusca: “codigo”,\n valorBusca: $json.codigo\n }\n }];\n}\n\nreturn [{\n json: {\n tipoBusca: “nome”,\n valorBusca: $json.procedimento\n }\n}];\n”
},
“type”: “n8n-nodes-base.code”,
“typeVersion”: 2,
“position”: [
-384,
96
],
“id”: “411353ac-23d9-497f-901e-7e073d80b60c”,
“name”: “Preparar busca?”
},
{
“parameters”: {
“jsCode”: “const contexto = $json;\n\nconst paciente = contexto.paciente ?? “paciente”;\n\nconst message = \n⚠️ *Informações incompletas*\n\nOi ${paciente}! \nPara continuar a anotaçãoo, preciso que você informe:\n\n📅 *Data* \n⏰ *Horário* \n🦷 *Procedimento ou código*\n\nPode me enviar esses dados novamente? 😊;\n\nreturn [\n {\n json: {\n message\n }\n }\n];\n”
},
“type”: “n8n-nodes-base.code”,
“typeVersion”: 2,
“position”: [
-384,
288
],
“id”: “d2d78dad-50e0-4154-98d2-428b123cbe09”,
“name”: “Code in JavaScript2”
},
{
“parameters”: {
“method”: “POST”,
“url”: “<REDACTED_SERVER_URL>”,
“sendHeaders”: true,
“headerParameters”: {
“parameters”: [
{
“name”: “apikey”,
“value”: “<REDACTED_API_KEY>”
},
{
“name”: “Content-Type”,
“value”: “application/json”
}
]
},
“sendBody”: true,
“bodyParameters”: {
“parameters”: [
{
“name”: “number”,
“value”: “={{ $(‘Webhook’).item.json.body.data.key.remoteJidAlt }}”
},
{
“name”: “text”,
“value”: “={{ $json.message }}”
}
]
},
“options”: {}
},
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 4.3,
“position”: [
-192,
288
],
“id”: “71bcef06-746f-4005-ac5d-c393ae4bd4dd”,
“name”: “HTTP Request”
},
{
“parameters”: {
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 2
},
“conditions”: [
{
“id”: “83ec7aed-1531-490c-b0ad-040f4b54dc53”,
“leftValue”: “={{ $json.tipoBusca }}”,
“rightValue”: “codigo”,
“operator”: {
“type”: “string”,
“operation”: “equals”,
“name”: “filter.operator.equals”
}
}
],
“combinator”: “and”
},
“options”: {}
},
“type”: “n8n-nodes-base.if”,
“typeVersion”: 2.2,
“position”: [
-208,
96
],
“id”: “535d01e3-9fc8-4790-80a6-eee42416a1e6”,
“name”: “If1”
},
{
“parameters”: {
“operation”: “getAll”,
“tableId”: “procedimentos”,
“limit”: 1,
“filters”: {
“conditions”: [
{
“keyName”: “codigo”,
“condition”: “eq”,
“keyValue”: “={{ $json.valorBusca }}”
}
]
}
},
“type”: “n8n-nodes-base.supabase”,
“typeVersion”: 1,
“position”: [
0,
0
],
“id”: “feec8255-7ae6-483e-b2bb-9d54193feb47”,
“name”: “Get many rows - código”,
“credentials”: {}
},
{
“parameters”: {
“operation”: “getAll”,
“tableId”: “procedimentos”,
“limit”: 1,
“filters”: {
“conditions”: [
{
“keyName”: “nome”,
“condition”: “like”,
“keyValue”: “=%{{ $json.valorBusca }}%”
}
]
}
},
“type”: “n8n-nodes-base.supabase”,
“typeVersion”: 1,
“position”: [
0,
160
],
“id”: “e98c7c32-0106-4c76-b6f7-e1cb0a747f39”,
“name”: “Get many rows - nome”,
“credentials”: {}
},
{
“parameters”: {
“jsCode”: “let raw =\n $json.message?.content ||\n $json.content ||\n $json.text;\n\nif (!raw) {\n return [{\n json: {\n paciente: null,\n procedimento: null,\n codigo: null,\n data: null,\n hora: null,\n erro: “Resposta vazia do OpenAI”\n }\n }];\n}\n\nraw = raw.replace(/```json|```/g, ‘’).trim();\n\ntry {\n const parsed = JSON.parse(raw);\n return [{\n json: {\n paciente: parsed.paciente ?? null,\n procedimento: parsed.procedimento ?? null,\n codigo: parsed.codigo ?? null,\n data: parsed.data ?? null,\n hora: parsed.hora ?? null\n }\n }];\n} catch (e) {\n return [{\n json: {\n paciente: null,\n procedimento: null,\n codigo: null,\n data: null,\n hora: null,\n erro: “JSON inválido”\n }\n }];\n}\n”
},
“type”: “n8n-nodes-base.code”,
“typeVersion”: 2,
“position”: [
-752,
192
],
“id”: “5feb70df-9642-402f-a8cb-3e2735e04cb9”,
“name”: “Code in JavaScript1”
},
{
“parameters”: {
“jsCode”: “//
Procedimento vindo do Supabase\nconst procedimento = $json;\n\n//
Contexto ORIGINAL vindo do OpenAI\nconst contexto = $items(“If - dados completos?”)[0]?.json;\n\nif (!contexto) {\n throw new Error(“Contexto original não encontrado”);\n}\n\nlet { paciente, data, hora } = contexto;\n\nif (!data || !hora) {\n throw new Error(“Data ou hora ausentes para criar evento”);\n}\n\n/\n * ===============================\n *
CORRIGE O ANO AUTOMATICAMENTE\n * ===============================\n */\nconst hoje = new Date();\nconst anoAtual = hoje.getFullYear();\n\n// data vem no formato YYYY-MM-DD\nconst [, mes, dia] = data.split(“-”);\nconst dataCorrigida = ${anoAtual}-${mes}-${dia};\n\n/\n * ===============================\n *
CRIA DATE LOCAL (SEM OFFSET)\n * ===============================\n */\nconst startLocal = new Date(${dataCorrigida}T${hora}:00);\n\n/**\n * ===============================\n *
CONVERTE PARA UTC (ISO)\n * ===============================\n */\nconst start = startLocal.toISOString();\n\n// End fictício (+1h só para o Google Calendar aceitar)\nconst end = new Date(startLocal.getTime() + 60 * 60 * 1000).toISOString();\n\nreturn [\n {\n json: {\n paciente,\n procedimento: procedimento.nome,\n codigo: procedimento.codigo,\n especialidade: procedimento.especialidade,\n sessoes: procedimento.sessoes ?? 1,\n valor: procedimento.valor,\n\n //
FORMATO CORRETO PARA O GOOGLE\n start,\n end\n }\n }\n];\n”
},
“type”: “n8n-nodes-base.code”,
“typeVersion”: 2,
“position”: [
432,
0
],
“id”: “de9279e8-2f97-4937-b1af-f21324d4b185”,
“name”: “Code in JavaScript”
},
{
“parameters”: {
“jsCode”: “const contexto = $json;\n\nconst paciente = contexto.paciente ?? “paciente”;\nconst procedimentoInformado = contexto.procedimento ?? “o procedimento informado”;\n\nconst message =\n❌ *Procedimento não encontrado*\n\nOi ${paciente}! \nNão encontrei *${procedimentoInformado}* no nosso sistema 😕\n\n📋 Você pode:\n• Informar o *nome correto* do procedimento \n• Ou enviar o *código do procedimento*\n\nFico no aguardo 😊;\n\nreturn [\n {\n json: {\n message\n }\n }\n];\n”
},
“type”: “n8n-nodes-base.code”,
“typeVersion”: 2,
“position”: [
432,
192
],
“id”: “ca2226a2-b7b3-4633-b2a6-0cdeceaf419c”,
“name”: “Code in JavaScript3”
},
{
“parameters”: {
“calendar”: {
“__rl”: true,
“value”: “<REDACTED_CALENDAR_ID>”,
“mode”: “list”,
“cachedResultName”: “ORÇAMENTOS ODONTO”
},
“start”: “={{ $json.start }}”,
“end”: “={{ $json.end }}”,
“additionalFields”: {
“description”: “=Paciente: {{ $json.paciente }}\nProcedimento: {{ $json.procedimento }}\nCódigo: {{ $json.codigo }}\nValor: R$ {{ $json.valor }}\nSessões: {{ $json.sessoes }}”,
“summary”: “={{ $json.paciente }} - {{ $json.procedimento }}”
}
},
“type”: “n8n-nodes-base.googleCalendar”,
“typeVersion”: 1.3,
“position”: [
592,
0
],
“id”: “cca438ea-7666-4dfc-80d6-ca8ed8c96d5c”,
“name”: “Create an event”,
“credentials”: {}
},
{
“parameters”: {
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 2
},
“conditions”: [
{
“id”: “d6630518-7658-4a58-b760-16e6a6d47849”,
“leftValue”: “={{ $json.paciente }}”,
“rightValue”: “”,
“operator”: {
“type”: “string”,
“operation”: “notEmpty”,
“singleValue”: true
}
},
{
“id”: “15af8a26-c266-4290-ba80-04c8c8819ca3”,
“leftValue”: “={{ $json.data }}”,
“rightValue”: “”,
“operator”: {
“type”: “string”,
“operation”: “notEmpty”,
“singleValue”: true
}
},
{
“id”: “967f8f0f-3274-46b4-9a39-bc129a7ce34b”,
“leftValue”: “={{ $json.hora }}”,
“rightValue”: “”,
“operator”: {
“type”: “string”,
“operation”: “notEmpty”,
“singleValue”: true
}
},
{
“id”: “e3f552d1-69a7-42da-9e33-ec86d06bbf3f”,
“leftValue”: “={{ $json.procedimento }}”,
“rightValue”: “”,
“operator”: {
“type”: “string”,
“operation”: “notEmpty”,
“singleValue”: true
}
}
],
“combinator”: “and”
},
“options”: {}
},
“type”: “n8n-nodes-base.if”,
“typeVersion”: 2.2,
“position”: [
-592,
192
],
“id”: “d90ba6f6-0840-4bd7-a481-eaba033e83fe”,
“name”: “If - dados completos?”
},
{
“parameters”: {
“method”: “POST”,
“url”: “<REDACTED_SERVER_URL>”,
“sendHeaders”: true,
“headerParameters”: {
“parameters”: [
{
“name”: “apikey”,
“value”: “<REDACTED_API_KEY>”
},
{
“name”: “Content-Type”,
“value”: “application/json”
}
]
},
“sendBody”: true,
“bodyParameters”: {
“parameters”: [
{
“name”: “number”,
“value”: “={{ $(‘Webhook’).item.json.body.data.key.remoteJidAlt }}”
},
{
“name”: “text”,
“value”: “={{ $json.mensagem_whatsapp }}”
}
]
},
“options”: {}
},
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 4.3,
“position”: [
880,
0
],
“id”: “f5dfcb92-1d78-4fab-aaea-d8f070d5a08e”,
“name”: “HTTP Request1”
},
{
“parameters”: {
“method”: “POST”,
“url”: “<REDACTED_SERVER_URL>”,
“sendHeaders”: true,
“headerParameters”: {
“parameters”: [
{
“name”: “apikey”,
“value”: “<REDACTED_API_KEY>”
},
{
“name”: “Content-Type”,
“value”: “application/json”
}
]
},
“sendBody”: true,
“bodyParameters”: {
“parameters”: [
{
“name”: “number”,
“value”: “={{ $(‘Webhook’).item.json.body.data.key.remoteJidAlt }}”
},
{
“name”: “text”,
“value”: “={{ $json.mensagem_whatsapp }}”
}
]
},
“options”: {}
},
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 4.3,
“position”: [
608,
192
],
“id”: “5da49cba-8d7e-4d6a-bb40-e6b28101b4ed”,
“name”: “HTTP Request2”
},
{
“parameters”: {
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 2
},
“conditions”: [
{
“id”: “8765b1cd-e452-4a14-8ec4-25375328a28b”,
“leftValue”: “={{ $items().length }}”,
“rightValue”: 0,
“operator”: {
“type”: “number”,
“operation”: “gt”
}
}
],
“combinator”: “and”
},
“options”: {}
},
“type”: “n8n-nodes-base.if”,
“typeVersion”: 2.2,
“position”: [
224,
96
],
“id”: “f1aafe66-d4ef-4221-8857-36d8ef4b3b81”,
“name”: “IF – procedimento encontrado?”
},
{
“parameters”: {
“jsCode”: “//
Dados corretos vindos do node que criou o agendamento\nconst dados = $items(“Code in JavaScript”)[0].json;\n// ↑ TROQUE o nome pelo nome exato do seu node\n\nconst {\n paciente,\n procedimento,\n start,\n end\n} = dados;\n\n//
Converte datas ISO corretamente\nconst startDate = new Date(start);\nconst endDate = new Date(end);\n\n//
Formata para PT-BR\nconst data = startDate.toLocaleDateString(“pt-BR”);\n\nconst horaInicio = startDate.toLocaleTimeString(“pt-BR”, {\n hour: “2-digit”,\n minute: “2-digit”\n});\n\nconst horaFim = endDate.toLocaleTimeString(“pt-BR”, {\n hour: “2-digit”,\n minute: “2-digit”\n});\n\n//
Texto final do WhatsApp\nconst mensagem = \n✅ *Agendamento confirmado*\n\n👤 *Paciente:* ${paciente}\n🦷 *Procedimento:* ${procedimento}\n📅 *Data:* ${data}\n⏰ *Horário:* ${horaInicio} às ${horaFim}\n\nQualquer dúvida é só responder 😊;\n\nreturn [\n {\n json: {\n mensagem_whatsapp: mensagem\n }\n }\n];\n”
},
“type”: “n8n-nodes-base.code”,
“typeVersion”: 2,
“position”: [
736,
0
],
“id”: “64e96bea-dee9-4954-8d8d-c5edae57962f”,
“name”: “Code in JavaScript4”
}
],
“pinData”: {},
“connections”: {
“Webhook”: {
“main”: [
[
{
“node”: “Code”,
“type”: “main”,
“index”: 0
}
]
]
},
“Code”: {
“main”: [
[
{
“node”: “Obter ID”,
“type”: “main”,
“index”: 0
}
]
]
},
“Obter ID”: {
“main”: [
[
{
“node”: “Puxar áudio”,
“type”: “main”,
“index”: 0
}
]
]
},
“Puxar áudio”: {
“main”: [
[
{
“node”: “Global”,
“type”: “main”,
“index”: 0
}
]
]
},
“Global”: {
“main”: [
[
{
“node”: “Switch”,
“type”: “main”,
“index”: 0
}
]
]
},
“Switch”: {
“main”: [
,
[
{
“node”: “Convert to File”,
“type”: “main”,
“index”: 0
}
]
]
},
“Convert to File”: {
“main”: [
[
{
“node”: “Transcribe a recording”,
“type”: “main”,
“index”: 0
}
]
]
},
“Transcribe a recording”: {
“main”: [
[
{
“node”: “Message a model”,
“type”: “main”,
“index”: 0
}
]
]
},
“Message a model”: {
“main”: [
[
{
“node”: “Code in JavaScript1”,
“type”: “main”,
“index”: 0
}
]
]
},
“Code in JavaScript2”: {
“main”: [
[
{
“node”: “HTTP Request”,
“type”: “main”,
“index”: 0
}
]
]
},
“Preparar busca?”: {
“main”: [
[
{
“node”: “If1”,
“type”: “main”,
“index”: 0
}
]
]
},
“If1”: {
“main”: [
[
{
“node”: “Get many rows - código”,
“type”: “main”,
“index”: 0
}
],
[
{
“node”: “Get many rows - nome”,
“type”: “main”,
“index”: 0
}
]
]
},
“Get many rows - nome”: {
“main”: [
[
{
“node”: “IF – procedimento encontrado?”,
“type”: “main”,
“index”: 0
}
]
]
},
“Get many rows - código”: {
“main”: [
[
{
“node”: “IF – procedimento encontrado?”,
“type”: “main”,
“index”: 0
}
]
]
},
“Code in JavaScript1”: {
“main”: [
[
{
“node”: “If - dados completos?”,
“type”: “main”,
“index”: 0
}
]
]
},
“Code in JavaScript3”: {
“main”: [
[
{
“node”: “HTTP Request2”,
“type”: “main”,
“index”: 0
}
]
]
},
“Code in JavaScript”: {
“main”: [
[
{
“node”: “Create an event”,
“type”: “main”,
“index”: 0
}
]
]
},
“Create an event”: {
“main”: [
[
{
“node”: “Code in JavaScript4”,
“type”: “main”,
“index”: 0
}
]
]
},
“If - dados completos?”: {
“main”: [
[
{
“node”: “Preparar busca?”,
“type”: “main”,
“index”: 0
}
],
[
{
“node”: “Code in JavaScript2”,
“type”: “main”,
“index”: 0
}
]
]
},
“IF – procedimento encontrado?”: {
“main”: [
[
{
“node”: “Code in JavaScript”,
“type”: “main”,
“index”: 0
}
],
[
{
“node”: “Code in JavaScript3”,
“type”: “main”,
“index”: 0
}
]
]
},
“Code in JavaScript4”: {
“main”: [
[
{
“node”: “HTTP Request1”,
“type”: “main”,
“index”: 0
}
]
]
}
},
“active”: false,
“settings”: {
“executionOrder”: “v1”
},
“versionId”: “feca734e-75df-4f52-b960-dee67b2e5ca1”,
“meta”: {
“instanceId”: “be1d5ebbea0c486bb7f5c07998d48d2c2924aaf76e8b41f436914215efa468f5”
},
“id”: “LidnEX98OiUsgNAo”,
“tags”:
}





