The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "BIG-AGENT-COMPLETE",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "big-agent-webhook",
"options": {
"responseMode": "responseNode"
}
},
"id": "webhook",
"name": "Webhook Z-API",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
0,
300
]
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={ \"status\": \"received\" }",
"options": {}
},
"id": "respond-200",
"name": "Responder 200",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.1,
"position": [
220,
300
]
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict"
},
"conditions": [
{
"id": "filter-recebida",
"leftValue": "={{ $json.fromMe }}",
"rightValue": false,
"operator": {
"type": "boolean",
"operation": "equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"id": "filter-recebida",
"name": "Filtrar Recebidas",
"type": "n8n-nodes-base.filter",
"typeVersion": 2,
"position": [
440,
300
]
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "telefone",
"name": "telefone",
"value": "={{ $json.phone.replace('@c.us', '').replace('@s.whatsapp.net', '') }}",
"type": "string"
},
{
"id": "mensagem",
"name": "mensagem",
"value": "={{ $json.text?.message || $json.body || '' }}",
"type": "string"
},
{
"id": "nome_push",
"name": "nome_push",
"value": "={{ $json.senderName || $json.pushName || '' }}",
"type": "string"
},
{
"id": "message_id",
"name": "message_id",
"value": "={{ $json.messageId || $json.id?.id || '' }}",
"type": "string"
},
{
"id": "timestamp",
"name": "timestamp",
"value": "={{ $now.toISO() }}",
"type": "string"
}
]
},
"options": {}
},
"id": "parse-mensagem",
"name": "Parsear Mensagem",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
660,
300
]
},
{
"parameters": {
"operation": "executeQuery",
"query": "SELECT * FROM ba_leads WHERE telefone = '{{ $json.telefone }}' LIMIT 1;"
},
"id": "buscar-lead",
"name": "Buscar Lead",
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
880,
300
]
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict"
},
"conditions": [
{
"id": "lead-existe",
"leftValue": "={{ $json.id }}",
"rightValue": "",
"operator": {
"type": "string",
"operation": "exists"
}
}
],
"combinator": "and"
},
"options": {}
},
"id": "if-lead-existe",
"name": "Lead Existe?",
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
1100,
300
]
},
{
"parameters": {
"operation": "executeQuery",
"query": "INSERT INTO ba_leads (telefone, nome, estado_atual) VALUES ('{{ $('Parsear Mensagem').item.json.telefone }}', '{{ $('Parsear Mensagem').item.json.nome_push }}', 'NOVO') RETURNING *;"
},
"id": "criar-lead",
"name": "Criar Lead",
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
1320,
440
]
},
{
"parameters": {
"mode": "combine",
"mergeByFields": {
"values": [
{
"field1": "telefone",
"field2": "telefone"
}
]
},
"options": {}
},
"id": "merge-lead",
"name": "Mesclar Dados",
"type": "n8n-nodes-base.merge",
"typeVersion": 3,
"position": [
1540,
300
]
},
{
"parameters": {
"operation": "executeQuery",
"query": "SELECT m.direcao, m.conteudo, m.intencao_detectada, m.created_at FROM ba_mensagens m WHERE m.lead_id = '{{ $json.id }}' ORDER BY m.created_at DESC LIMIT 20;"
},
"id": "buscar-historico",
"name": "Buscar Historico",
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
1760,
300
]
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "lead_data",
"name": "lead",
"value": "={{ { id: $('Mesclar Dados').item.json.id, nome: $('Mesclar Dados').item.json.nome, telefone: $('Mesclar Dados').item.json.telefone, estado_atual: $('Mesclar Dados').item.json.estado_atual, score: $('Mesclar Dados').item.json.score_qualificacao, piadas: $('Mesclar Dados').item.json.piadas_internas, contexto: $('Mesclar Dados').item.json.contexto_extra } }}",
"type": "object"
},
{
"id": "mensagem_atual",
"name": "mensagem_atual",
"value": "={{ $('Parsear Mensagem').item.json.mensagem }}",
"type": "string"
},
{
"id": "historico",
"name": "historico",
"value": "={{ $json }}",
"type": "object"
}
]
},
"options": {}
},
"id": "preparar-contexto",
"name": "Preparar Contexto",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
1980,
300
]
},
{
"parameters": {
"modelId": {
"__rl": true,
"value": "claude-3-haiku-20240307",
"mode": "list",
"cachedResultName": "claude-3-haiku-20240307"
},
"messages": {
"values": [
{
"content": "Voce e um classificador de intencoes para um chatbot de vendas. Classifique a intencao da mensagem do usuario.\n\nINTENCOES POSSIVEIS:\n- SAUDACAO: Oi, ola, bom dia, boa tarde, etc\n- INTERESSE: Quero saber mais, como funciona, me conta\n- DUVIDA_PRODUTO: Pergunta especifica sobre o produto\n- PRECO: Quanto custa, qual valor, preco\n- OBJECAO_DINHEIRO: Ta caro, nao tenho dinheiro\n- OBJECAO_TEMPO: Nao tenho tempo, to ocupada\n- OBJECAO_DUVIDA: Preciso pensar, nao sei se e pra mim\n- OBJECAO_EXTERNA: Preciso falar com marido, nao decido sozinha\n- COMPRAR: Quero, vou fazer, manda o link\n- SUPORTE: Ja comprei, nao consigo acessar, problema\n- RECLAMACAO: Insatisfeita, quero cancelar\n- HUMANO: Quero falar com pessoa, voce e robo\n- OFFTOPIC: Assunto nao relacionado\n- DESPEDIDA: Tchau, depois falamos, obrigada\n\nResponda APENAS com JSON valido:\n{\"intencao\": \"TIPO\", \"confianca\": 0.95}",
"role": "system"
},
{
"content": "Estado atual do lead: {{ $json.lead.estado_atual }}\n\nMensagem do usuario: {{ $json.mensagem_atual }}",
"role": "user"
}
]
},
"options": {
"maxTokensToSample": 100,
"temperature": 0
}
},
"id": "classificar-intencao",
"name": "Classificar Intencao (Haiku)",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"typeVersion": 1.2,
"position": [
2200,
300
]
},
{
"parameters": {
"jsCode": "// Maquina de Estados - Processa transicoes\nconst input = $input.all()[0].json;\nconst lead = input.lead || {};\nconst intencaoRaw = input.message?.content || '{}';\n\nlet intencao;\ntry {\n const match = intencaoRaw.match(/\\{[\\s\\S]*\\}/);\n intencao = match ? JSON.parse(match[0]) : { intencao: 'SAUDACAO', confianca: 0.5 };\n} catch (e) {\n intencao = { intencao: 'SAUDACAO', confianca: 0.5 };\n}\n\nconst estadoAtual = lead.estado_atual || 'NOVO';\n\nconst transicoes = {\n 'NOVO': { default: 'ABERTURA' },\n 'ABERTURA': {\n 'INTERESSE': 'QUALIFICACAO',\n 'DUVIDA_PRODUTO': 'QUALIFICACAO',\n 'PRECO': 'ANCORAGEM',\n 'COMPRAR': 'FECHAMENTO',\n 'HUMANO': 'ESCALADO',\n 'RECLAMACAO': 'ESCALADO',\n default: 'ABERTURA'\n },\n 'QUALIFICACAO': {\n 'INTERESSE': 'APRESENTACAO',\n 'PRECO': 'ANCORAGEM',\n 'COMPRAR': 'FECHAMENTO',\n 'OBJECAO_DINHEIRO': 'OBJECAO',\n 'OBJECAO_TEMPO': 'OBJECAO',\n 'OBJECAO_DUVIDA': 'OBJECAO',\n 'OBJECAO_EXTERNA': 'OBJECAO',\n 'HUMANO': 'ESCALADO',\n 'RECLAMACAO': 'ESCALADO',\n default: 'QUALIFICACAO'\n },\n 'APRESENTACAO': {\n 'INTERESSE': 'ANCORAGEM',\n 'PRECO': 'ANCORAGEM',\n 'COMPRAR': 'FECHAMENTO',\n 'OBJECAO_DINHEIRO': 'OBJECAO',\n 'OBJECAO_TEMPO': 'OBJECAO',\n 'OBJECAO_DUVIDA': 'OBJECAO',\n 'OBJECAO_EXTERNA': 'OBJECAO',\n 'HUMANO': 'ESCALADO',\n 'RECLAMACAO': 'ESCALADO',\n default: 'APRESENTACAO'\n },\n 'ANCORAGEM': {\n 'COMPRAR': 'FECHAMENTO',\n 'INTERESSE': 'FECHAMENTO',\n 'OBJECAO_DINHEIRO': 'OBJECAO',\n 'OBJECAO_TEMPO': 'OBJECAO',\n 'OBJECAO_DUVIDA': 'OBJECAO',\n 'OBJECAO_EXTERNA': 'OBJECAO',\n 'HUMANO': 'ESCALADO',\n 'RECLAMACAO': 'ESCALADO',\n default: 'ANCORAGEM'\n },\n 'OBJECAO': {\n 'COMPRAR': 'FECHAMENTO',\n 'INTERESSE': 'ANCORAGEM',\n 'HUMANO': 'ESCALADO',\n 'RECLAMACAO': 'ESCALADO',\n default: 'OBJECAO'\n },\n 'FECHAMENTO': {\n 'SUPORTE': 'POS_VENDA',\n 'RECLAMACAO': 'ESCALADO',\n 'HUMANO': 'ESCALADO',\n default: 'FECHAMENTO'\n },\n 'POS_VENDA': {\n 'SUPORTE': 'POS_VENDA',\n 'RECLAMACAO': 'ESCALADO',\n 'HUMANO': 'ESCALADO',\n default: 'CLIENTE'\n },\n 'CLIENTE': {\n 'SUPORTE': 'CLIENTE',\n 'RECLAMACAO': 'ESCALADO',\n 'HUMANO': 'ESCALADO',\n default: 'CLIENTE'\n },\n 'ESCALADO': { default: 'ESCALADO' }\n};\n\nconst estadoTransicoes = transicoes[estadoAtual] || transicoes['ABERTURA'];\nconst novoEstado = estadoTransicoes[intencao.intencao] || estadoTransicoes.default;\nconst precisaEscalar = novoEstado === 'ESCALADO';\n\nreturn {\n json: {\n ...input,\n intencao: intencao,\n estado_anterior: estadoAtual,\n estado_novo: novoEstado,\n precisa_escalar: precisaEscalar,\n mudou_estado: estadoAtual !== novoEstado\n }\n};"
},
"id": "processar-estado",
"name": "Processar Estado",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
2420,
300
]
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict"
},
"conditions": [
{
"id": "precisa-escalar",
"leftValue": "={{ $json.precisa_escalar }}",
"rightValue": true,
"operator": {
"type": "boolean",
"operation": "equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"id": "if-escalar",
"name": "Precisa Escalar?",
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
2640,
300
]
},
{
"parameters": {
"operation": "executeQuery",
"query": "INSERT INTO ba_escalacoes (lead_id, motivo, descricao, mensagem_gatilho, prioridade) VALUES ('{{ $json.lead.id }}', '{{ $json.intencao.intencao }}', 'Escalacao automatica', '{{ $json.mensagem_atual.replace(/'/g, \"''\") }}', 'normal') RETURNING *;"
},
"id": "registrar-escalacao",
"name": "Registrar Escalacao",
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
2860,
160
]
},
{
"parameters": {
"modelId": {
"__rl": true,
"value": "claude-sonnet-4-20250514",
"mode": "list",
"cachedResultName": "claude-sonnet-4-20250514"
},
"messages": {
"values": [
{
"content": "Voce e Marcia, 52 anos, closer de vendas disfar\u00e7ada de amiga acolhedora.\n\nREGRAS ABSOLUTAS:\n1. NUNCA abrevie: sempre \"voce\" (nunca \"vc\"), \"tambem\" (nunca \"tb\")\n2. RISADA: apenas \"rs\". NUNCA \"kkkk\" ou \"haha\"\n3. EMOJI: maximo 1 por mensagem, apenas: \ud83d\ude0a \ud83d\ude4f \u2764\ufe0f \ud83c\udf89\n4. MENSAGENS CURTAS: max 3-4 linhas cada\n5. Separe mensagens multiplas com --- em linha sozinha\n\nSUA HISTORIA:\n- Ex-gerente Banco do Brasil, 20 anos, saiu no PDV\n- Casada 28 anos com Carlos, mae de Fernanda (27) e Lucas (24)\n- Avo do Theo (4 anos) - quarta e dia sagrado com ele\n- Passou por crise existencial, descobriu o metodo, transformou a vida\n\nOS 7 MANDAMENTOS:\n1. Nunca vendo. Ajudo a decidir.\n2. Quem fala mais, perde.\n3. Toda pergunta e uma seta.\n4. Validar antes de redirecionar.\n5. Venda na emocao, justifique na razao.\n6. Paciencia infinita, urgencia invisivel.\n7. Relacionamento primeiro, venda como consequencia.\n\nMETODO V.E.R.A (objecoes):\nV - Validar: \"Entendo perfeitamente\"\nE - Explorar: \"Me conta mais\"\nR - Ressignificar: \"E se...\"\nA - Avancar: \"Faz sentido?\"\n\nResposta APENAS com as mensagens, separadas por ---",
"role": "system"
},
{
"content": "LEAD: {{ $json.lead.nome || 'Desconhecido' }}\nESTADO: {{ $json.estado_novo }}\nINTENCAO: {{ $json.intencao.intencao }}\n\nHISTORICO:\n{{ JSON.stringify($json.historico).substring(0, 1000) }}\n\nMENSAGEM DO LEAD:\n{{ $json.mensagem_atual }}\n\nResponda como Marcia no estado {{ $json.estado_novo }}.",
"role": "user"
}
]
},
"options": {
"maxTokensToSample": 400,
"temperature": 0.7
}
},
"id": "gerar-resposta",
"name": "Gerar Resposta (Sonnet)",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"typeVersion": 1.2,
"position": [
2860,
440
]
},
{
"parameters": {
"jsCode": "const input = $input.all()[0].json;\nconst respostaRaw = input.message?.content || '';\n\nconst mensagens = respostaRaw\n .split(/\\n---\\n|---/)\n .map(m => m.trim())\n .filter(m => m.length > 0);\n\nif (mensagens.length === 0) {\n mensagens.push('Oi! Tudo bem com voce?');\n}\n\nconst output = mensagens.map((msg, idx) => {\n const baseDelay = msg.length * 50;\n const variacao = Math.random() * 1000;\n const delayMs = Math.min(Math.max(baseDelay + variacao, 1000), 5000);\n \n return {\n json: {\n mensagem: msg,\n delay_ms: Math.round(delayMs),\n indice: idx,\n total: mensagens.length,\n lead_id: input.lead?.id,\n lead_telefone: input.lead?.telefone,\n estado_novo: input.estado_novo,\n intencao: input.intencao\n }\n };\n});\n\nreturn output;"
},
"id": "humanizar-resposta",
"name": "Humanizar Resposta",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
3080,
440
]
},
{
"parameters": {
"batchSize": 1,
"options": {}
},
"id": "loop-mensagens",
"name": "Loop Mensagens",
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [
3300,
440
]
},
{
"parameters": {
"amount": "={{ $json.delay_ms }}",
"unit": "milliseconds"
},
"id": "delay-humanizado",
"name": "Delay Humanizado",
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
3520,
440
]
},
{
"parameters": {
"jsCode": "// MOCK Z-API - Substitua por HTTP Request em producao\nconst input = $input.first().json;\nconsole.log('[MOCK Z-API] Para:', input.lead_telefone);\nconsole.log('[MOCK Z-API] Msg:', input.mensagem);\n\nreturn {\n json: {\n ...input,\n zapi_response: {\n zapiMessageId: 'mock-' + Date.now(),\n status: 'SENT_MOCK'\n }\n }\n};"
},
"id": "enviar-zapi",
"name": "Enviar Z-API (MOCK)",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
3740,
440
]
},
{
"parameters": {
"operation": "executeQuery",
"query": "INSERT INTO ba_mensagens (lead_id, conversa_id, direcao, conteudo, intencao_detectada, status_entrega) SELECT '{{ $json.lead_id }}', c.id, 'saida', '{{ $json.mensagem.replace(/'/g, \"''\") }}', '{{ $json.intencao.intencao || '' }}', 'enviado' FROM ba_conversas c WHERE c.lead_id = '{{ $json.lead_id }}' AND c.ativa = true LIMIT 1;"
},
"id": "salvar-msg-saida",
"name": "Salvar Msg Saida",
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
3960,
440
]
},
{
"parameters": {
"operation": "executeQuery",
"query": "INSERT INTO ba_conversas (lead_id, estado, ativa) SELECT '{{ $json.lead.id }}', '{{ $json.estado_novo }}', true WHERE NOT EXISTS (SELECT 1 FROM ba_conversas WHERE lead_id = '{{ $json.lead.id }}' AND ativa = true); INSERT INTO ba_mensagens (lead_id, conversa_id, direcao, conteudo, intencao_detectada) SELECT '{{ $json.lead.id }}', c.id, 'entrada', '{{ $json.mensagem_atual.replace(/'/g, \"''\") }}', '{{ $json.intencao.intencao || '' }}' FROM ba_conversas c WHERE c.lead_id = '{{ $json.lead.id }}' AND c.ativa = true LIMIT 1;"
},
"id": "salvar-msg-entrada",
"name": "Salvar Msg Entrada",
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
2640,
540
]
},
{
"parameters": {
"operation": "executeQuery",
"query": "UPDATE ba_leads SET estado_atual = '{{ $json.estado_novo }}', estado_anterior = '{{ $json.estado_anterior }}', ultimo_contato = NOW(), total_mensagens = total_mensagens + 1 WHERE id = '{{ $json.lead_id }}';"
},
"id": "atualizar-lead",
"name": "Atualizar Lead",
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
4180,
440
]
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "msg-escalacao",
"name": "mensagem",
"value": "Vou te passar pra alguem que pode te ajudar melhor com isso.",
"type": "string"
},
{
"id": "lead-tel",
"name": "lead_telefone",
"value": "={{ $json.lead.telefone }}",
"type": "string"
},
{
"id": "lead-id",
"name": "lead_id",
"value": "={{ $json.lead.id }}",
"type": "string"
}
]
},
"options": {}
},
"id": "msg-escalacao",
"name": "Msg Escalacao",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
3080,
160
]
},
{
"parameters": {
"jsCode": "// MOCK Z-API Escalacao\nconst input = $input.first().json;\nconsole.log('[MOCK ESCALACAO] Para:', input.lead_telefone);\nconsole.log('[MOCK ESCALACAO] Msg:', input.mensagem);\n\nreturn {\n json: {\n ...input,\n zapi_response: { status: 'SENT_MOCK_ESCALACAO' }\n }\n};"
},
"id": "enviar-escalacao",
"name": "Enviar Msg Escalacao (MOCK)",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
3300,
160
]
}
],
"connections": {
"Webhook Z-API": {
"main": [
[
{
"node": "Responder 200",
"type": "main",
"index": 0
}
]
]
},
"Responder 200": {
"main": [
[
{
"node": "Filtrar Recebidas",
"type": "main",
"index": 0
}
]
]
},
"Filtrar Recebidas": {
"main": [
[
{
"node": "Parsear Mensagem",
"type": "main",
"index": 0
}
]
]
},
"Parsear Mensagem": {
"main": [
[
{
"node": "Buscar Lead",
"type": "main",
"index": 0
}
]
]
},
"Buscar Lead": {
"main": [
[
{
"node": "Lead Existe?",
"type": "main",
"index": 0
}
]
]
},
"Lead Existe?": {
"main": [
[
{
"node": "Mesclar Dados",
"type": "main",
"index": 0
}
],
[
{
"node": "Criar Lead",
"type": "main",
"index": 0
}
]
]
},
"Criar Lead": {
"main": [
[
{
"node": "Mesclar Dados",
"type": "main",
"index": 1
}
]
]
},
"Mesclar Dados": {
"main": [
[
{
"node": "Buscar Historico",
"type": "main",
"index": 0
}
]
]
},
"Buscar Historico": {
"main": [
[
{
"node": "Preparar Contexto",
"type": "main",
"index": 0
}
]
]
},
"Preparar Contexto": {
"main": [
[
{
"node": "Classificar Intencao (Haiku)",
"type": "main",
"index": 0
}
]
]
},
"Classificar Intencao (Haiku)": {
"main": [
[
{
"node": "Processar Estado",
"type": "main",
"index": 0
}
]
]
},
"Processar Estado": {
"main": [
[
{
"node": "Precisa Escalar?",
"type": "main",
"index": 0
},
{
"node": "Salvar Msg Entrada",
"type": "main",
"index": 0
}
]
]
},
"Precisa Escalar?": {
"main": [
[
{
"node": "Registrar Escalacao",
"type": "main",
"index": 0
}
],
[
{
"node": "Gerar Resposta (Sonnet)",
"type": "main",
"index": 0
}
]
]
},
"Registrar Escalacao": {
"main": [
[
{
"node": "Msg Escalacao",
"type": "main",
"index": 0
}
]
]
},
"Msg Escalacao": {
"main": [
[
{
"node": "Enviar Msg Escalacao (MOCK)",
"type": "main",
"index": 0
}
]
]
},
"Gerar Resposta (Sonnet)": {
"main": [
[
{
"node": "Humanizar Resposta",
"type": "main",
"index": 0
}
]
]
},
"Humanizar Resposta": {
"main": [
[
{
"node": "Loop Mensagens",
"type": "main",
"index": 0
}
]
]
},
"Loop Mensagens": {
"main": [
[
{
"node": "Delay Humanizado",
"type": "main",
"index": 0
}
],
[
{
"node": "Atualizar Lead",
"type": "main",
"index": 0
}
]
]
},
"Delay Humanizado": {
"main": [
[
{
"node": "Enviar Z-API (MOCK)",
"type": "main",
"index": 0
}
]
]
},
"Enviar Z-API (MOCK)": {
"main": [
[
{
"node": "Salvar Msg Saida",
"type": "main",
"index": 0
}
]
]
},
"Salvar Msg Saida": {
"main": [
[
{
"node": "Loop Mensagens",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
BIG-AGENT-COMPLETE. Uses supabase, lmChatAnthropic. Webhook trigger; 24 nodes.
Source: https://gist.github.com/TheBigMeister/9c8dcb9da6bba5542cace41eaf9fd8e6 — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
⏺ 🚀 How it works
BIG-AGENT-V4-CONVERSAS. Uses redis, supabase, httpRequest, agent. Webhook trigger; 44 nodes.
BIG-AGENT-V3-SUPABASE. Uses redis, supabase, httpRequest, agent. Webhook trigger; 40 nodes.
BIG-AGENT-V5-FIXED. Uses redis, supabase, agent, lmChatAnthropic. Webhook trigger; 35 nodes.
BIG-AGENT-V2-REDIS-NATIVO. Uses redis, supabase, agent, lmChatAnthropic. Webhook trigger; 24 nodes.