AutomationFlowsAI & RAG › ___main_2_modularizado_24_3___ativo___advocacia_n8n___agente_encaminhamento_

___main_2_modularizado_24_3___ativo___advocacia_n8n___agente_encaminhamento_

___MAIN_2_Modularizado_24_3___ATIVO___ADVOCACIA_n8n___AGENTE_ENCAMINHAMENTO_. Uses supabase, httpRequest, informationExtractor, lmChatOpenAi. Event-driven trigger; 68 nodes.

Event trigger★★★★★ complexityAI-powered68 nodesSupabaseHTTP RequestInformation ExtractorOpenAI ChatPostgresExecution DataText ClassifierMemory Postgres Chat
AI & RAG Trigger: Event Nodes: 68 Complexity: ★★★★★ AI nodes: yes Added:
___main_2_modularizado_24_3___ativo___advocacia_n8n___agente_encaminhamento_ — n8n workflow card showing Supabase, HTTP Request, Information Extractor integration

This workflow follows the Agent → OpenAI Embeddings recipe pattern — see all workflows that pair these two integrations.

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 →

Download .json
{
  "createdAt": "2025-04-06T20:12:48.495Z",
  "updatedAt": "2025-04-10T22:09:38.208Z",
  "id": "eMJOYJ0eDYhU7gHF",
  "name": "___MAIN_2_Modularizado_24_3___ATIVO___ADVOCACIA_n8n___AGENTE_ENCAMINHAMENTO_",
  "active": true,
  "isArchived": false,
  "nodes": [
    {
      "parameters": {
        "operation": "get",
        "tableId": "IA empresa",
        "filters": {
          "conditions": [
            {
              "keyName": "telefone",
              "keyValue": "={{ $('RECEBE').item.json.content.Tel[' Empresa'] }}"
            }
          ]
        }
      },
      "id": "85943c9f-39a3-4a19-a228-89b2036d8ae1",
      "name": "Supabase Get Empresa1",
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        -3580,
        2120
      ],
      "alwaysOutputData": true,
      "retryOnFail": true,
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "get",
        "tableId": "IA Clientes",
        "filters": {
          "conditions": [
            {
              "keyName": "telefone",
              "keyValue": "={{ $('RECEBE').item.json.content.Tel[' Cliente'] }}"
            },
            {
              "keyName": "ID_empresa",
              "keyValue": "={{ $json.id }}"
            }
          ]
        }
      },
      "id": "4bb9164b-a66f-46d1-9ae8-a501c0e9c8af",
      "name": "Supabase get cliente1",
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        -3360,
        2120
      ],
      "alwaysOutputData": true,
      "retryOnFail": true,
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "tableId": "IA Clientes",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "nome",
              "fieldValue": "={{ $('RECEBE').item.json.content.content['Nome do cliente'] }}"
            },
            {
              "fieldId": "telefone",
              "fieldValue": "={{ $('RECEBE').item.json.content.Tel[' Cliente'] }}"
            },
            {
              "fieldId": "ID_empresa",
              "fieldValue": "={{ $('Supabase Get Empresa1').item.json.id }}"
            },
            {
              "fieldId": "Status",
              "fieldValue": "Em andamento"
            }
          ]
        }
      },
      "id": "e177a1da-b6a2-4731-9863-c9cc52410fa3",
      "name": "Supabase cria cliente1",
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        -2700,
        2020
      ],
      "alwaysOutputData": true,
      "retryOnFail": true,
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "options": {}
      },
      "id": "056ca454-2434-4be0-ae24-b712cd2951da",
      "name": "Loop Over Items2",
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        700,
        840
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "3f204f03-9a37-4b76-a59f-d5601932f441",
              "name": "mensagem",
              "value": "={{ (function() {\n  let textoOriginal = $('Merge2').item.json.output;\n  let nomePessoa = $('Information Extractor1').item.json.output['Nome de pessoa'];\n  const nomeAtendente = $('Supabase Get Empresa1').item.json['Nome da atendente'];\n  const nomeEscritorio = $('Supabase Get Empresa1').item.json['Escrit\u00f3rio'];\n\n  function capitalizarTodasPalavras(frase) {\n    if (!frase) return frase;\n    return frase\n      .split(' ')\n      .map(palavra => palavra.charAt(0).toUpperCase() + palavra.slice(1).toLowerCase())\n      .join(' ');\n  }\n\n  let textoProcessado = textoOriginal\n    // Adiciona \\n ap\u00f3s retic\u00eancias\n    .replace(/\\.{3,}/g, \"...\\n\")\n\n    // Substitui apenas pontos finais de frase (ignora etc., etc, 1.000 e ...)\n    .replace(/(?<!\\d)(?<!etc)(?<!\\.)\\.(?!\\d)(?!\\.)/gi, \"\\n\")\n\n    .replace(/\\n\\s+/g, \"\\n\")\n\n    .replace(/advogado:/gi, \"##ADVOGADO##\")\n    .replace(/:/g, \"\")\n    .toLowerCase()\n    .replace(/^\\s+/, \"\");\n\n  textoProcessado = textoProcessado.replace(/##ADVOGADO##/gi, \"advogado:\");\n\n  if (textoProcessado.startsWith(\"ol\u00e1\")) {\n    textoProcessado = \"Ol\u00e1\" + textoProcessado.substring(3);\n  } else if (textoProcessado.startsWith(\"oi\")) {\n    textoProcessado = \"Oi\" + textoProcessado.substring(2);\n  }\n\n  textoProcessado = textoProcessado.replace(/\\?\\s*([a-z])/g, function(match, letter) {\n    return \"? \" + letter.toUpperCase();\n  });\n\n  textoProcessado = textoProcessado.replace(/\\boi\\b/g, \"Oi\");\n\n  if (nomeAtendente) {\n    const regexAtendente = new RegExp(nomeAtendente.toLowerCase(), \"gi\");\n    textoProcessado = textoProcessado.replace(regexAtendente, nomeAtendente);\n  }\n\n  if (nomeEscritorio) {\n    const regexEscritorio = new RegExp(nomeEscritorio.toLowerCase(), \"gi\");\n    textoProcessado = textoProcessado.replace(regexEscritorio, nomeEscritorio);\n  }\n\n  textoProcessado = textoProcessado.replace(/\\bdeus\\b/g, \"Deus\");\n\n  const nomesParaSubstituir = [\n    ['jose', 'Jos\u00e9'], ['joao', 'Jo\u00e3o'], ['pedro', 'Pedro'], ['paulo', 'Paulo'],\n    ['carlos', 'Carlos'], ['antonio', 'Ant\u00f4nio'], ['francisco', 'Francisco'],\n    ['luis', 'Lu\u00eds'], ['fernando', 'Fernando'], ['mario', 'M\u00e1rio'],\n    ['daniel', 'Daniel'], ['roberto', 'Roberto'], ['gustavo', 'Gustavo'],\n    ['guilherme', 'Guilherme'], ['eduardo', 'Eduardo'], ['rafael', 'Rafael'],\n    ['lucas', 'Lucas'], ['gabriel', 'Gabriel'], ['marcelo', 'Marcelo'],\n    ['anderson', 'Anderson'], ['bruno', 'Bruno'], ['samuel', 'Samuel'],\n    ['maria', 'Maria'], ['ana', 'Ana'], ['julia', 'J\u00falia'], ['andreia', 'Andreia'],\n    ['patricia', 'Patr\u00edcia'], ['jessica', 'J\u00e9ssica'], ['beatriz', 'Beatriz'],\n    ['amanda', 'Amanda'], ['mariana', 'Mariana'], ['camila', 'Camila'],\n    ['barbara', 'B\u00e1rbara'], ['fernanda', 'Fernanda'], ['carolina', 'Carolina'],\n    ['juliana', 'Juliana'], ['laura', 'Laura'], ['sandra', 'Sandra'],\n    ['aline', 'Aline'], ['marcia', 'M\u00e1rcia'], ['monica', 'M\u00f4nica'],\n  ];\n\n  for (const [nomeMinusculo, nomeCapitalizado] of nomesParaSubstituir) {\n    const regexNome = new RegExp(`\\\\b${nomeMinusculo}\\\\b`, 'gi');\n    textoProcessado = textoProcessado.replace(regexNome, nomeCapitalizado);\n  }\n\n  if (nomePessoa) {\n    nomePessoa = nomePessoa.trim();\n    const nomePessoaMinusculo = nomePessoa.toLowerCase();\n    const regexNome = new RegExp(`\\\\b${nomePessoaMinusculo}\\\\b`, \"gi\");\n    textoProcessado = textoProcessado.replace(regexNome, nomePessoa);\n  }\n\n  let mensagemDesnecessaria = $('Information Extractor1').item.json.output['mensagem de confirma\u00e7\u00e3o desnecess\u00e1ria'];\n  if (mensagemDesnecessaria) {\n    const regexMensagem = new RegExp(mensagemDesnecessaria.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"gi\");\n    textoProcessado = textoProcessado.replace(regexMensagem, \"\");\n  }\n\n  return textoProcessado;\n})()\n.replace(/!(?=\\s)/g, \",\")\n.replace(/!$/gm, \"\")\n.replace(/\\bperfeito,\\s*/gi, \"\")\n.replace(/\\bcerto,\\s*/gi, \"\")\n.replace(/\\bobrigada pela informa\u00e7\u00e3o\\s*/gi, \"\")\n.replace(/\\bentendi,\\s*/gi, \"\")\n.replace(/\\bperfeito!\\s*/gi, \"\")\n.replace(/[\u2022*]/g, \"\")\n.replace(/\\bagora,\\s*/gi, \"\")\n.replace(/^\\s*[-]+\\s*/gm, \"\")\n.replace(/^\\s*\\d+\\s*$/gm, \"\");\n}}\n",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "id": "2697bb50-54d2-4224-a705-b141492423ea",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -420,
        1340
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "f592dd32-d98b-4275-9580-4e07c272d321",
              "name": "messages",
              "value": "={{ $('Edit Fields').item.json.mensagem.split('\\n').filter(item => item.trim() !== '') }}",
              "type": "array"
            }
          ]
        },
        "options": {}
      },
      "id": "6b46aa12-292e-41d9-883d-66046830a06c",
      "name": "Edit Fields9",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        260,
        840
      ]
    },
    {
      "parameters": {
        "fieldToSplitOut": "messages",
        "options": {}
      },
      "id": "cac1a0ef-c9bc-4bac-9b07-dd4e35557761",
      "name": "Split Out2",
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        480,
        840
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 1
          },
          "conditions": [
            {
              "id": "0f6f548a-1f90-44a5-9836-0dc801397b8a",
              "leftValue": "={{ $json.id }}",
              "rightValue": "",
              "operator": {
                "type": "number",
                "operation": "exists",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "20394a48-826c-4f54-8ee0-aa1ee47ac873",
      "name": "If6",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        -2920,
        1960
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 1
          },
          "conditions": [
            {
              "id": "763b2c49-ffe4-4664-8cd9-788749bff34e",
              "leftValue": "={{ $('Supabase get cliente1').item.json.id }}",
              "rightValue": "",
              "operator": {
                "type": "number",
                "operation": "exists",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "ebe7e9ae-d292-448d-b6bc-e0f649b2ba1c",
      "name": "If8",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        -2700,
        1540
      ]
    },
    {
      "parameters": {
        "amount": 25
      },
      "id": "4d879558-bd97-4a88-af59-dfdaee48ec63",
      "name": "Wait4",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        1360,
        740
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=https://lucid-generosity-production.up.railway.app/message/sendMedia/{{ $('Webhook').item.json.body.instance }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "={{ $('Supabase Get Empresa1').item.json['Apikey Evo'] }}"
            }
          ]
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "media",
              "value": "={{ $json.messages }}"
            },
            {
              "name": "number",
              "value": "={{ $('RECEBE').item.json.content.telefoneCliente }}"
            },
            {
              "name": "delay",
              "value": "={{ $('RECEBE').item.json.content.delay }}"
            },
            {
              "name": "mediatype",
              "value": "image"
            }
          ]
        },
        "options": {}
      },
      "id": "878c66e1-9d67-4d98-b4a7-a2e0fa042978",
      "name": "HTTP Request10",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1140,
        460
      ],
      "retryOnFail": true,
      "maxTries": 5
    },
    {
      "parameters": {
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "messages"
            }
          ]
        },
        "options": {}
      },
      "id": "c6f4bfbd-0130-4d1b-9da1-4183af0ea434",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "typeVersion": 1,
      "position": [
        920,
        260
      ]
    },
    {
      "parameters": {},
      "id": "5c5d9e71-75e8-48bd-95f2-01c4165ec9ed",
      "name": "Merge2",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3,
      "position": [
        -1000,
        1340
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=https://lucid-generosity-production.up.railway.app/message/sendText/{{ $('RECEBE').item.json.content.content.instancia }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "={{ $('Supabase Get Empresa1').item.json['Apikey Evo'] }}"
            }
          ]
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "text",
              "value": "={{ $json.messages }}"
            },
            {
              "name": "number",
              "value": "={{ $('RECEBE').item.json.content.Tel[' Cliente'] }}"
            },
            {
              "name": "delay",
              "value": "={{ Number($('RECEBE').item.json.content.content.delay) }}"
            }
          ]
        },
        "options": {}
      },
      "id": "8cf2bb28-5a14-4ac7-9f24-ccd2eb796324",
      "name": "HTTP Request14",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1140,
        660
      ],
      "retryOnFail": true
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=https://lucid-generosity-production.up.railway.app/message/sendText/{{ $('Webhook').item.json.body.instance }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "={{ $('Supabase Get Empresa1').item.json['Apikey Evo'] }}"
            }
          ]
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "text",
              "value": "={{ $json.messages }}"
            },
            {
              "name": "number",
              "value": "={{ $('RECEBE').item.json.content.telefoneCliente }}"
            },
            {
              "name": "delay",
              "value": "={{ $('RECEBE').item.json.content.delay }}"
            }
          ]
        },
        "options": {}
      },
      "id": "79ea5896-05fb-4d22-8bf1-bbffcf6f3705",
      "name": "HTTP Request15",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1140,
        860
      ],
      "retryOnFail": true
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "6dc71d88-bafe-47b2-9d3c-82447e940fb4",
                    "leftValue": "={{ $json.messages }}",
                    "rightValue": "jpg",
                    "operator": {
                      "type": "string",
                      "operation": "endsWith"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "jpg"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "570bba8c-d0a1-4c4a-abd4-1f17de3789a4",
                    "leftValue": "={{ $json.messages }}",
                    "rightValue": "jpg",
                    "operator": {
                      "type": "string",
                      "operation": "notEndsWith"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "texto"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "48ff5e94-10d8-4d51-8cb6-e96f1a66ef80",
                    "leftValue": "={{ $json.messages }}",
                    "rightValue": "processo de solicita\u00e7\u00e3o dos benef\u00edcios",
                    "operator": {
                      "type": "string",
                      "operation": "contains"
                    }
                  }
                ],
                "combinator": "and"
              }
            }
          ]
        },
        "options": {}
      },
      "id": "f438ebcf-294e-4209-a669-f17543391e61",
      "name": "Switch7",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3,
      "position": [
        920,
        660
      ]
    },
    {
      "parameters": {},
      "id": "57c387cf-76e7-4800-95ae-a0a54b549e1e",
      "name": "No Operation, do nothing1",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        1140,
        260
      ]
    },
    {
      "parameters": {
        "options": {}
      },
      "id": "266cc16c-e349-4f3d-af64-2159437c0144",
      "name": "Loop Over Items3",
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        920,
        1920
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "f592dd32-d98b-4275-9580-4e07c272d321",
              "name": "messages",
              "value": "={{ $('Edit Fields14').item.json.mensagem.split('\\n').filter(item => item.trim() !== '') }}",
              "type": "array"
            }
          ]
        },
        "options": {}
      },
      "id": "0108c063-d309-4640-b84c-a18a358fbe4e",
      "name": "Edit Fields10",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        480,
        1920
      ]
    },
    {
      "parameters": {
        "fieldToSplitOut": "messages",
        "options": {}
      },
      "id": "06aab5fa-f327-4c63-a1b3-fb52258aaefb",
      "name": "Split Out3",
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        700,
        1920
      ]
    },
    {
      "parameters": {
        "amount": 25
      },
      "id": "c0a2aafc-8268-4dcd-8ea2-eab0dc9a16fc",
      "name": "Wait5",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        1580,
        1780
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=https://lucid-generosity-production.up.railway.app/message/sendMedia/{{ $('Webhook').item.json.body.instance }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "={{ $('Supabase Get Empresa1').item.json['Apikey Evo'] }}"
            }
          ]
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "media",
              "value": "={{ $json.messages }}"
            },
            {
              "name": "number",
              "value": "={{ $('RECEBE').item.json.content.telefoneCliente }}"
            },
            {
              "name": "delay",
              "value": "={{ $('RECEBE').item.json.content.delay }}"
            },
            {
              "name": "mediatype",
              "value": "image"
            }
          ]
        },
        "options": {}
      },
      "id": "e986241f-7e9d-43b8-b75c-43efef2f3d42",
      "name": "HTTP Request16",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1360,
        1520
      ],
      "retryOnFail": true,
      "maxTries": 5
    },
    {
      "parameters": {
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "messages"
            }
          ]
        },
        "options": {}
      },
      "id": "f020cfbe-1329-4513-86a9-191f28159838",
      "name": "Aggregate5",
      "type": "n8n-nodes-base.aggregate",
      "typeVersion": 1,
      "position": [
        1140,
        1320
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=https://lucid-generosity-production.up.railway.app/message/sendText/{{ $('RECEBE').item.json.content.content.instancia }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "={{ $('Supabase Get Empresa1').item.json['Apikey Evo'] }}"
            }
          ]
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "text",
              "value": "={{ $json.messages }}"
            },
            {
              "name": "number",
              "value": "={{ $('RECEBE').item.json.content.Tel[' Cliente'] }}"
            },
            {
              "name": "delay",
              "value": "={{ Number($('RECEBE').item.json.content.content['delay mensagem longa']) }}"
            }
          ]
        },
        "options": {}
      },
      "id": "8f333f52-a273-44ab-9f8d-84775d389ac0",
      "name": "HTTP Request17",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1360,
        1720
      ],
      "retryOnFail": true
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=https://lucid-generosity-production.up.railway.app/message/sendText/{{ $('Webhook').item.json.body.instance }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "={{ $('Supabase Get Empresa1').item.json['Apikey Evo'] }}"
            }
          ]
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "text",
              "value": "={{ $json.messages }}"
            },
            {
              "name": "number",
              "value": "={{ $('RECEBE').item.json.content.telefoneCliente }}"
            },
            {
              "name": "delay",
              "value": "={{ $('RECEBE').item.json.content.delay }}"
            }
          ]
        },
        "options": {}
      },
      "id": "4af11fba-b155-44eb-b4ae-50c2e5f41f70",
      "name": "HTTP Request18",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1360,
        1920
      ],
      "retryOnFail": true
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "6dc71d88-bafe-47b2-9d3c-82447e940fb4",
                    "leftValue": "={{ $json.messages }}",
                    "rightValue": "jpg",
                    "operator": {
                      "type": "string",
                      "operation": "endsWith"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "jpg"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "570bba8c-d0a1-4c4a-abd4-1f17de3789a4",
                    "leftValue": "={{ $json.messages }}",
                    "rightValue": "jpg",
                    "operator": {
                      "type": "string",
                      "operation": "notEndsWith"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "texto"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "48ff5e94-10d8-4d51-8cb6-e96f1a66ef80",
                    "leftValue": "={{ $json.messages }}",
                    "rightValue": "processo de solicita\u00e7\u00e3o dos benef\u00edcios",
                    "operator": {
                      "type": "string",
                      "operation": "contains"
                    }
                  }
                ],
                "combinator": "and"
              }
            }
          ]
        },
        "options": {}
      },
      "id": "50232f0b-ec24-4146-a8eb-b4cd41cf7969",
      "name": "Switch8",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3,
      "position": [
        1140,
        1720
      ]
    },
    {
      "parameters": {},
      "id": "9f0650f5-2776-42c5-a2a4-6ce9d855eaae",
      "name": "No Operation, do nothing3",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        1360,
        1320
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 1
          },
          "conditions": [
            {
              "id": "af8cdb33-3f04-4635-8390-59c8a9f5797d",
              "leftValue": "={{ $('Edit Fields').item.json.mensagem }}",
              "rightValue": "este \u00e9 o resumo",
              "operator": {
                "type": "string",
                "operation": "notContains"
              }
            },
            {
              "id": "194e5ebf-d690-4c28-8f34-7d1e344ccf2b",
              "leftValue": "={{ $('Edit Fields').item.json.mensagem }}",
              "rightValue": "vou repassar",
              "operator": {
                "type": "string",
                "operation": "notContains"
              }
            }
          ],
          "combinator": "or"
        },
        "options": {}
      },
      "id": "0c5e5d89-b1c7-4b82-b8fa-2caded4257fa",
      "name": "If9",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        40,
        1340
      ]
    },
    {
      "parameters": {
        "text": "={{ $json.output }}",
        "attributes": {
          "attributes": [
            {
              "name": "Nome de pessoa",
              "description": "Identifique se tem nomes de pessoa se tiver fa\u00e7a com que a primeira letra seja mai\u00facula ex: Arthur / Arthur Gabriel"
            }
          ]
        },
        "options": {}
      },
      "id": "689b4a82-9d47-44f2-9654-4f690e05d318",
      "name": "Information Extractor1",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "typeVersion": 1,
      "position": [
        -780,
        1340
      ]
    },
    {
      "parameters": {
        "model": "gpt-4o-mini-2024-07-18",
        "options": {}
      },
      "id": "e795c61f-862e-4a9c-8312-7df8a50f2dd2",
      "name": "OpenAI Chat Model4",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1,
      "position": [
        -700,
        1560
      ],
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "content": "# Pegar informa\u00e7\u00f5es do cliente e empresa",
        "height": 554,
        "width": 1450
      },
      "id": "e4b70000-620e-4f4a-92e3-5e25f34171cf",
      "name": "Sticky Note18",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -3640,
        1840
      ]
    },
    {
      "parameters": {
        "content": "# Extrator de nomes para deixa-lo com letra mai\u00fasula por causa do pr\u00f3ximo edit fields",
        "height": 671,
        "width": 354
      },
      "id": "aeeb4435-47b0-45ff-a789-14a791711bdd",
      "name": "Sticky Note19",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -840,
        1020
      ]
    },
    {
      "parameters": {
        "content": "# Formatador de texto\n\n- muda toda letra para min\u00fascula\n- tranforma todo \".\" final em quebra de linha com excess\u00e3o se tiver no meio de n\u00fameros\n- exclui frases genericas\n- tranforma de toda aletra do texto min\u00fascula algumas palavras ma\u00educulas por exemplo nomes\n",
        "height": 744.7716507992864
      },
      "id": "ad3f6f90-0037-4b2a-bf6a-98299a11f9cf",
      "name": "Sticky Note20",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -460,
        940
      ]
    },
    {
      "parameters": {
        "content": "# Envio de mensagens",
        "height": 2265,
        "width": 1735
      },
      "id": "5bdbe098-6966-4809-8ebb-213dfe2ccf97",
      "name": "Sticky Note21",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -20,
        -200
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "41089736-af1b-44ae-8cc8-ee48a6e784a3",
              "name": "mensagem",
              "value": "={{\n  (function() {\n    // Pegamos o texto original\n    let textoOriginal = $('Merge2').item.json.output;\n    \n    // Pegamos o nome da pessoa vindo do Information Extractor\n    let nomePessoa = $('Information Extractor1').item.json.output['Nome de pessoa'];\n    \n    // Nome da atendente e escrit\u00f3rio do Supabase\n    const nomeAtendente = $('Supabase Get Empresa1').item.json['Nome da atendente'];\n    const nomeEscritorio = $('Supabase Get Empresa1').item.json['Escrit\u00f3rio'];\n    \n    // Fun\u00e7\u00e3o para capitalizar a primeira letra de cada palavra em uma frase\n    function capitalizarTodasPalavras(frase) {\n      if (!frase) return frase;\n      return frase\n        .split(' ')\n        .map(palavra => palavra.charAt(0).toUpperCase() + palavra.slice(1).toLowerCase())\n        .join(' ');\n    }\n    \n    // Processamos o texto\n    let textoProcessado = textoOriginal\n      .replace(/\\!/g, \" \")\n      .replace(/\\n\\s+/g, \" \")\n      \n      // Preserve 'advogado:' antes de remover ':'\n      .replace(/advogado:/gi, \"##ADVOGADO##\")\n      \n      .replace(/:/g, \"\")\n      .toLowerCase()\n      .replace(/^\\s+/, \"\");\n\n    // Recoloca o 'advogado:' ap\u00f3s remover os demais ':'\n    textoProcessado = textoProcessado.replace(/##ADVOGADO##/gi, \"advogado:\");\n\n    if (textoProcessado.startsWith(\"ol\u00e1\")) {\n      textoProcessado = \"Ol\u00e1\" + textoProcessado.substring(3);\n    } else if (textoProcessado.startsWith(\"oi\")) {\n      textoProcessado = \"Oi\" + textoProcessado.substring(2);\n    }\n    \n    // Ajusta letra ap\u00f3s interroga\u00e7\u00e3o\n    textoProcessado = textoProcessado.replace(/\\?\\s*([a-z])/g, function(match, letter) {\n      return \"? \" + letter.toUpperCase();\n    });\n\n    // Ajusta \"oi\" isolado\n    textoProcessado = textoProcessado.replace(/\\boi\\b/g, \"Oi\");\n\n    // Substitu\u00edmos os nomes exatamente como est\u00e3o no Supabase\n    if (nomeAtendente) {\n      const regexAtendente = new RegExp(nomeAtendente.toLowerCase(), \"gi\");\n      textoProcessado = textoProcessado.replace(regexAtendente, nomeAtendente);\n    }\n\n    if (nomeEscritorio) {\n      const regexEscritorio = new RegExp(nomeEscritorio.toLowerCase(), \"gi\");\n      textoProcessado = textoProcessado.replace(regexEscritorio, nomeEscritorio);\n    }\n\n    // Ajusta \"deus\"\n    textoProcessado = textoProcessado.replace(/\\bdeus\\b/g, \"Deus\");\n\n    // Ajuste para garantir uma quebra de linha antes e depois de 'vou repassar'\n    textoProcessado = textoProcessado.replace(/(.*?)vou repassar(.*?)(\\n|$)/gi, \"$1\\nvou repassar\\n$2\");\n    textoProcessado = textoProcessado.replace(/\\n/g, \" \");\n    textoProcessado = textoProcessado.replace(/vou repassar /, \"\\nvou repassar \");\n    \n    // Agora, se tivermos o nome da pessoa, substitu\u00edmos ele exato, sem alterar caixa\n    if (nomePessoa) {\n      nomePessoa = nomePessoa.trim();\n      const nomePessoaMinusculo = nomePessoa.toLowerCase();\n      const regexNome = new RegExp(`\\\\b${nomePessoaMinusculo}\\\\b`, \"gi\");\n      textoProcessado = textoProcessado.replace(regexNome, nomePessoa);\n    }\n\n    // Retornamos o texto final processado\n    return textoProcessado;\n  })()\n  .replace(/!(?=\\s)/g, \",\")\n  .replace(/!$/gm, \"\")\n  .replace(/ {2,}/g, \" \")\n  .replace(/\\./g, \"\")\n  .replace(/\\bperfeito,\\s*/gi, \"\")\n  .replace(/\\bcerto,\\s*/gi, \"\")\n  .replace(/\\bobrigada pela informa\u00e7\u00e3o\\s*/gi, \"\")\n  .replace(/\\bentendi,\\s*/gi, \"\")\n  .replace(/\\bperfeito!\\s*/gi, \"\")\n  .replace(/[\u2022*]/g, \"\")\n  .replace(/\\bagora,\\s*/gi, \"\")\n}}\n",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        260,
        1920
      ],
      "id": "36ea58e5-6efc-4f36-9fd9-593eb511fa3d",
      "name": "Edit Fields14"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "c21b2c6b-811d-4d23-a417-910d2a51a80a",
              "leftValue": "={{ $('RECEBE').item.json.content.messages }}",
              "rightValue": "/re",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -3140,
        2120
      ],
      "id": "bab75f1c-fc1d-48b1-b5e6-8823fc57fd75",
      "name": "If13"
    },
    {
      "parameters": {
        "values": {
          "string": [
            {
              "name": "session_id",
              "value": "={{$json[\"ID_empresa\"]}} - {{ $json[\"telefone\"] }}"
            }
          ]
        },
        "options": {}
      },
      "id": "63618568-8342-4ad7-821c-a6a53f705f0a",
      "name": "Gerar Session ID1",
      "type": "n8n-nodes-base.set",
      "typeVersion": 1,
      "position": [
        -2920,
        2220
      ]
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "DELETE FROM n8n_chat_histories\nWHERE session_id = '{{ $json.ID_empresa }} {{ $json.telefone }} ';",
        "additionalFields": {}
      },
      "id": "bd190907-1664-4ce9-817e-585db70742c0",
      "name": "Deletar Sess\u00e3o no PostgreSQL",
      "type": "n8n-nodes-base.postgres",
      "typeVersion": 1,
      "position": [
        -2700,
        2220
      ],
      "alwaysOutputData": true,
      "credentials": {
        "postgres": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "update",
        "tableId": "IA Clientes",
        "filters": {
          "conditions": [
            {
              "keyName": "id",
              "condition": "eq",
              "keyValue": "={{ $('If6').item.json.id }}"
            }
          ]
        },
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "updated_at",
              "fieldValue": "={{ $now }}"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        -200,
        1340
      ],
      "id": "567602c3-2aea-49e0-bf51-d1f04b22f83b",
      "name": "Supabase1",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "dataToSave": {
          "values": [
            {
              "key": "Tel_Cliente",
              "value": "={{ $('RECEBE').item.json.content.Tel[' Cliente'] }}"
            },
            {
              "key": "mensagem_do_agente",
              "value": "={{ $('Merge2').item.json.output }}"
            },
            {
              "key": "Instancia",
              "value": "={{ $('RECEBE').item.json.content.content.instancia }}"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.executionData",
      "typeVersion": 1,
      "position": [
        1360,
        260
      ],
      "id": "4761d0ed-0560-4b9b-845c-f9c7a95ad9c5",
      "name": "Execution Data"
    },
    {
      "parameters": {
        "dataToSave": {
          "values": [
            {
              "key": "Tel_Cliente",
              "value": "={{ $('RECEBE').item.json.content.Tel[' Cliente'] }}"
            },
            {
              "key": "mensagem_do_agente",
              "value": "={{ $('Merge2').item.json.output }}"
            },
            {
              "key": "Instancia",
              "value": "={{ $('RECEBE').item.json.content.content.instancia }}"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.executionData",
      "typeVersion": 1,
      "position": [
        1580,
        1320
      ],
      "id": "20dd0da6-5830-4aa6-8416-fc0b7c85ec93",
      "name": "Execution Data2"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "a2fd1cb2-e708-45c1-bec8-efc4b2862223",
              "leftValue": "={{ $('RECEBE').item.json.content.messages }}",
              "rightValue": "",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -3800,
        2120
      ],
      "id": "d8e2f6a3-1c99-404f-bc70-d47e95c09268",
      "name": "If"
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "SELECT * FROM n8n_chat_histories WHERE session_id = '{{ $('Supabase get cliente1').item.json.Id_empresa }} {{ $('Supabase get cliente1').item.json.telefone }}';",
        "options": {}
      },
      "type": "n8n-nodes-base.postgres",
      "typeVersion": 2.5,
      "position": [
        -2480,
        1340
      ],
      "id": "013e32e6-3a90-44df-8d4e-909502932b0f",
      "name": "Postgres",
      "alwaysOutputData": true,
      "credentials": {
        "postgres": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "inputText": "=hist\u00f3rico de mensagens: {{ $json.mensagem }}\n\nmensagem atual: {{ $('RECEBE').item.json.content.messages }}",
        "categories": {
          "categories": [
            {
              "category": "Agente Qualificador",
              "description": "=Agente qualificador: estudo inicial para saber situa\u00e7\u00e3o e descobriro  melhor beneficio para a pessoa, cliente ou conhecido "
            },
            {
              "category": "Agente Veterano",
              "description": "=Cliente j\u00e1 tem algum processo em andamento no escrit\u00f3rio esta retornando para um novo contato - Cliente faz refer\u00eancia a casos anteriores ou atendimentos passados  - Cliente menciona um caso que parece estar em andamento  "
            }
          ]
        },
        "options": {
          "systemPromptTemplate": "=# Prompt para Text Qualifier - Sele\u00e7\u00e3o de Agente Inicial\n## Objetivo\nVoc\u00ea \u00e9 um sistema de classifica\u00e7\u00e3o de texto que deve analisar a mensagem inicial do cliente e determinar qual agente IA deve ser acionado primeiro. Sua fun\u00e7\u00e3o \u00e9 identificar a inten\u00e7\u00e3o principal e direcionar para o agente correto.\n\n## Instru\u00e7\u00f5es\n1. Analise a mensagem inicial do cliente\n2. Determine o contexto e a inten\u00e7\u00e3o principal da mensagem\n3. Retorne APENAS o ID do agente correspondente\n\n## Regras de Classifica\u00e7\u00e3o\n\n### \"QUALIFICADOR\"\n- Mensagem inicial do cliente buscando informa\u00e7\u00f5es/orienta\u00e7\u00f5es sobre benef\u00edcios previdenci\u00e1rios\n- Cliente menciona situa\u00e7\u00e3o de sa\u00fade, incapacidade, afastamento, acidente\n- Cliente busca saber se tem direito a algum benef\u00edcio do INSS\n- Cliente est\u00e1 em fase inicial de informa\u00e7\u00e3o/consulta\n- N\u00e3o h\u00e1 informa\u00e7\u00f5es suficientes sobre a situa\u00e7\u00e3o do cliente\n- Primeira intera\u00e7\u00e3o com o cliente\n\n### \"VETERANO\"\n- Cliente j\u00e1 tem um processo em andamento que est\u00e1 fazendoescrit\u00f3rio\n- Cliente est\u00e1 retornando para um novo contato\n- Cliente faz refer\u00eancia a casos em andamento NO ESCRIT\u00d3RIO\n- Cliente menciona ser cliente do escrit\u00f3rio\n- Cliente busca informa\u00e7\u00f5es sobre um processo em andamento\n- Cliente quer dar informa\u00e7\u00e3oadicional sobre o caso ou atualiza\u00e7\u00e3o\n\n## Regra Padr\u00e3o\nSe a mensagem n\u00e3o se encaixar claramente em nenhuma das categorias acima, classifique como \"QUALIFICADOR\".\n\n## Formato de Resposta\nRetorne APENAS o ID do agente entre aspas duplas, sem texto adicional.\nExemplo: \"QUALIFICADOR\""
        }
      },
      "type": "@n8n/n8n-nodes-langchain.textClassifier",
      "typeVersion": 1,
      "position": [
        -1820,
        1340
      ],
      "id": "913a2fbc-23e3-4ef5-9b1b-101167de3f03",
      "name": "Text Classifier"
    },
    {
      "parameters": {
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "message.content"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.aggregate",
      "typeVersion": 1,
      "position": [
        -2260,
        1340
      ],
      "id": "3ced1fe9-2a72-4ac4-87f2-e54aa5e6e2a5",
      "name": "Aggregate1"
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $('Supabase cria cliente1').item.json.ID_empresa }} {{ $('Supabase cria cliente1').item.json.telefone }} "
      },
      "id": "b2d5465e-3066-4441-a465-fff6b108f6a1",
      "name": "Postgres Chat Memory7",
      "type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
      "typeVersion": 1,
      "position": [
        -1260,
        2160
      ],
      "credentials": {
        "postgres": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {
          "temperature": 0.5,
          "topP": 1
        }
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.2,
      "position": [
        -1380,
        2160
      ],
      "id": "3f5bfa9f-74f8-477c-bb01-232bfb9c124f",
      "name": "OpenAI Chat Model2",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "content": "# HIst\u00f3rico e classifica\u00e7\u00e3o de inten\u00e7\u00e3o",
        "height": 240,
        "width": 1160
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -2680,
        1280
      ],
      "id": "2b8121bf-0589-4753-821a-f27f7729c624",
      "name": "Sticky Note10"
    },
    {
      "parameters": {
        "toolDescription": "chame essa tool quando voc\u00ea for encaminhar para o advogado qundo o cliente \u00e9 antigo",
        "method": "POST",
        "url": "https://n8n-main.egtechsolutions.com.br/webhook/cliente_passado",
        "sendBody": true,
        "parametersBody": {
          "values": [
            {
              "name": "id",
              "valueProvider": "fieldValue",
              "value": "={{ $('Supabase get cliente1').item.json.id }}"
            },
            {
              "name": "resumo da conversa",
              "valueProvider": "fieldValue",
              "value": "{resumo_da_conversa}"
            }
          ]
        },
        "placeholderDefinitions": {
          "values": [
            {
              "name": "resumo_da_conversa",
              "description": "fa\u00e7a um resumo da conversa toda para enviar para o advogado",
              "type": "string"
            }
          ]
        }
      },
      "id": "0a5e4e99-2514-406e-bf10-2e23309c55f1",
      "name": "Encaminhar Advogado",
      "type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
      "typeVersion": 1,
      "position": [
        -1200,
        1660
      ]
    },
    {
      "parameters": {
        "toolDescription": "chame essa tool assim que obter todas as respostas das perguntas do cliente para assim enviar para o escrit\u00f3rio as respostas do usu\u00e1rio",
        "method": "POST",
        "url": "https://n8n-main.egtechsolutions.com.br/webhook/qualifica\u00e7\u00e3o",
        "sendBody": true,
        "parametersBody": {
          "values": [
            {
              "name": "id_cliente_supabase",
              "valueProvider": "fieldValue",
              "value": "={{ $('Supabase get cliente1').item.json.id }}"
            },
            {
              "name": "cnpj_empresa",
              "valueProvider": "fieldValue",
              "value": "={cnpj_empresa}"
            },
            {
              "name": "pensao_morte",
              "valueProvider": "fieldValue",
              "value": "={pensao_morte}"
            },
            {
              "name": "aposentadoria_maior",
              "valueProvider": "fieldValue",
              "value": "={aposentadoria_maior}"
            },
            {
              "name": "trabalho_carteira",
              "valueProvider": "fieldValue",
              "value": "={trabalho_carteira}"
            },
            {
              "name": "num_pessoas_casa",
              "valueProvider": "fieldValue",
              "value": "={num_pessoas_casa}"
            },
            {
              "name": "sequelas_acidente",
              "valueProvider": "fieldValue",
              "value": "={sequelas_acidente}"
            },
            {
              "name": "auxilio_acidente",
              "valueProvider": "fieldValue",
              "value": "={auxilio_acidente}"
            },
            {
              "name": "registro_acidente",
              "valueProvider": "fieldValue",
              "value": "={registro_acidente}"
            },
            {
              "name": "sofreu_acidente",
              "valueProvider": "fieldValue",
              "value": "={sofreu_acidente}"
            },
            {
              "name": "inicio_problemas",
              "valueProvider": "fieldValue",
              "value": "={inicio_problemas}"
            },
            {
              "name": "tem_documentos",
              "valueProvider": "fieldValue",
              "value": "={tem_documentos}"
            },
            {
              "name": "problema_saude",
              "valueProvider": "fieldValue",
              "value": "={problema_saude}"
            },
            {
              "name": "beneficios_anteriores",
              "valueProvider": "fieldValue",
              "value": "={beneficios_anteriores}"
            },
            {
              "name": "trabalho_roca",
              "valueProvider": "fieldValue",
              "value": "={trabalho_roca}"
            },
            {
              "name": "ultima_contribuicao",
              "valueProvider": "fieldValue",
              "value": "={ultima_contribuicao}"
            },
            {
              "name": "tempo_contribuicao",
              "valueProvider": "fieldValue",
              "value": "={tempo_contribuicao}"
            },
            {
              "name": "contribuiu",
              "valueProvider": "fieldValue",
              "value": "={contribuiu}"
            },
            {
              "name": "idade",
              "valueProvider": "fieldValue",
              "value": "={idade}"
            },
            {
              "name": "explicacao_caso",
              "valueProvider": "fieldValue",
              "value": "={explicacao_caso}"
            },
            {
              "name": "nome_do_possivel_beneficiado",
              "valueProvider": "fieldValue",
              "value": "={nome_do_possivel_beneficiado}"
            },
            {
              "name": "com_quem_esta_conversando",
              "valueProvider": "fieldValue",
              "value": "={com_quem_esta_conversando}"
            },
            {
              "name": "resumo da conversa",
              "valueProvider": "fieldValue",
              "value": "={resumo_da_conversa}"
            },
            {
              "name": "PCD_afeta_trabalho",
              "valueProvider": "fieldValue",
              "value": "={PCD_afeta_trabalho}"
            }
          ]
        },
        "placeholderDefinitions": {
          "values": [
            {
              "name": "cnpj_empresa",
              "description": "Algu\u00e9m possui empresa ativa/CNPJ?",
              "type": "string"
            },
            {
              "name": "pensao_morte",
              "description": "\"Algu\u00e9m recebe pens\u00e3o por morte?\"",
              "type": "string"
            },
            {
              "name": "aposentadoria_maior",
              "description": "\"Algu\u00e9m recebe aposentadoria maior que 1 sal\u00e1rio m\u00ednimo?\"",
              "type": "string"
            },
            {
              "name": "trabalho_carteira",
              "description": "\"Algu\u00e9m tem emprego formal?\"",
              "type": "string"
            },
            {
              "name": "num_pessoas_casa",
              "description": "\"Quantas pessoas moram na sua resid\u00eancia?\"",
              "type": "string"
            },
            {
              "name": "sequelas_acidente",
              "description": "If yes \u2192 \"O acidente deixou sequelas ou limita\u00e7\u00f5es permanentes?\"",
              "type": "string"
            },
            {
              "name": "auxilio_acidente",
              "description": "   - If yes \u2192 \"Recebeu benef\u00edcio por acidente?\"",
              "type": "string"
            },
            {
              "name": "registro_acidente",
              "description": "   - If yes \u2192 \"Estava trabalhando quando sofreu o acidente?\"",
              "type": "string"
            },
            {
              "name": "sofreu_acidente",
              "description": "J\u00e1 sofreu algum acidente?",
              "type": "string"
            },
            {
              "name": "inicio_problemas",
              "description": "Desde quando possui essas complica\u00e7\u00f5es?",
              "type": "string"
            },
            {
              "name": "tem_documentos",
              "description": "Possui documenta\u00e7\u00e3o m\u00e9dica comprovando?",
              "type": "string"
            },
            {
              "name": "problema_saude",
              "description": "Possui problemas de sa\u00fade?",
              "type": "string"
            },
            {
              "name": "beneficios_anteriores",
              "description": "J\u00e1 recebeu algum benef\u00edcio do INSS anteriormente?",
              "type": "string"
            },
            {
              "name": "trabalho_roca",
              "description": "J\u00e1 trabalhou em ambiente rural?",
              "type": "string"
            },
            {
              "name": "ultima_contribuicao",
              "description": "Quando foi a \u00faltima contribui\u00e7\u00e3o?",
              "type": "string"
            },
            {
              "name": "tempo_contribuicao",
              "description": "Quanto tempo mais ou menos tem de carteira assinada ou carn\u00ea?",
              "type": "string"
            },
            {
              "name": "contribuiu",
              "description": "voc\u00ea j\u00e1 contribuiu com carn\u00ea ou trabalhou com registro?",
              "type": "string"
            },
            {
              "name": "idade",
              "description": "Qual \u00e9 a idade de [beneficiary]",
              "type": "string"
            },
            {
              "name": "explicacao_caso",
              "description": "Pode me explicar brevemente qual \u00e9 a situa\u00e7\u00e3o?",
              "type": "string"
            },
            {
              "name": "nome_do_possivel_beneficiado",
              "description": "Voc\u00ea est\u00e1 buscando informa\u00e7\u00f5es para voc\u00ea mesmo(a) ou para outra pessoa?",
              "type": "string"
            },
            {
              "name": "com_quem_esta_conversando",
              "description": "Qual \u00e9 o seu nome completo?",
              "type": "string"
            },
            {
              "name": "resumo_da_conversa",
              "description": "fa\u00e7a um resumo da conversa toda para enviar para o advogado",
              "type": "string"
            },
            {
              "name": "PCD_afeta_trabalho",
              "description": "Possui alguma defici\u00eancia que afete sua capacidade de trabalho?",
              "type": "string"
            }
          ]
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
      "typeVersion": 1.1,
      "position": [
        -1200,
        1260
      ],
      "id": "ca6a0194-bffe-40f0-87fb-09b400b5120d",
      "name": "Informar Escritorio"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $('RECEBE').item.json.content.messages }}",
        "options": {
          "systemMessage": "=Voc\u00ea \u00e9 {{ $('Supabase Get Empresa1').item.json['Nome da atendente'] }} do g\u00eanero {{ $('Supabase Get Empresa1').item.json['Genero do(a) Atendente'] }}, atendente do {{ $('Supabase Get Empresa1').item.json['Escrit\u00f3rio'] }}, especialista em Benef\u00edcios do INSS.\nSua fun\u00e7\u00e3o \u00e9 coletar informa\u00e7\u00f5es do cliente para pr\u00e9-qualificar o caso, seguindo rigorosamente o roteiro T0-T11 + T13.\n\n---\n\n### SEU OBJETIVO \u00daNICO\n\n**OBJETIVO CR\u00cdTICO:** Coletar T1-T11 eficientemente seguindo o roteiro T0-T13. **Pule perguntas j\u00e1 respondidas verificando toda a conversa.** AP\u00d3S resposta do cliente: **Analise:** A resposta cont\u00e9m a info essencial para T(n)? \n- **Caso 1: N\u00c3O cont\u00e9m T(n) (s\u00f3 extras relevantes):** reconhe\u00e7a extras [coment\u00e1rio emp\u00e1tico], **REFA\u00c7A T(n)** gentilmente. \n- **Caso 2: SIM, cont\u00e9m T(n) (+ extras/ru\u00eddo):** Identifique a resposta essencial T(n). Analise os \"extras\": se houver info *relevante* para o caso, reconhe\u00e7a-a *muito brevemente* (ex: \"Certo, sobre a demiss\u00e3o...\"). Se houver \"ru\u00eddo\" irrelevante (coment\u00e1rios aleat\u00f3rios), reconhe\u00e7a-o *com empatia m\u00ednima e r\u00e1pida*. **N\u00c3O repita a informa\u00e7\u00e3o essencial T(n) que o cliente deu.** Fique atento a informa\u00e7\u00f5es extras dadas nas respostas porque podem servir para responder outras perguntas, e **PROSSIGA imediatamente** para T(n+1) com uma transi\u00e7\u00e3o m\u00ednima.\n\n### REGRAS PRINCIPAIS:\n\n1. **FLUXO INTELIGENTE (T1-T11):**\n   - **ANTES DE PERGUNTAR T(n):** Verifique o hist\u00f3rico. A resposta para T(n) j\u00e1 existe?\n     - **SIM:** **N\u00c3O PERGUNTE T(n).** Pule para verificar a pr\u00f3xima pergunta necess\u00e1ria (T(n+1)).\n     - **N\u00c3O:** Fa\u00e7a a pergunta T(n).\n\n2. **PRIORIDADE ABSOLUTA PARA SUB-PERGUNTAS:** Sub-perguntas SEMPRE t\u00eam prioridade sobre pular perguntas.\n   - Exemplo: Se o cliente responde \"Sim\" a T5, voc\u00ea DEVE perguntar T5.Sub1, mesmo que a resposta tamb\u00e9m contenha informa\u00e7\u00f5es para T6.\n\n3. **UMA PERGUNTA POR VEZ:** Fa\u00e7a apenas UMA pergunta principal (T1-T11) ou sub-pergunta relevante por mensagem.\n\n4. **NUNCA PULE SUB-PERGUNTAS:** Se a resposta ativa uma sub-pergunta (ex: \"Sim\" para T5), voc\u00ea DEVE fazer essa sub-pergunta no pr\u00f3ximo turno.\n\n5. **NUNCA Mencionar Renda Espec\u00edfica BPC:** Ao falar sobre BPC/LOAS, se o cliente mencionar em qualquer momento, **NUNCA** mencione o crit\u00e9rio espec\u00edfico de renda per capita '1/4 do sal\u00e1rio m\u00ednimo'. Refira-se apenas a \"renda familiar baixa\".\n\n6. **FINALIZA\u00c7\u00c3O:** Use T13 apenas ap\u00f3s receber a resposta para T11. Ao finalizar, chame a tool `informar escritorio`.\n\n7. **MOMENTO DIF\u00cdCIL DE RESPONDER:** Quando o cliente disser que est\u00e1 na rua ou que aconteceu alguma coisa e que n\u00e3o vai poder continuar com o atendimento, voc\u00ea deve apenas agir com empatia e responder: \"Tudo bem, assim que puder ent\u00e3o entre em contato fico no aguardo \ud83d\ude0a\".\n\n8. **USO EXTREMAMENTE LIMITADO DO NOME DO CLIENTE (REGRA CR\u00cdTICA):** \n   - **NUNCA use o nome do cliente em cada resposta.** \n   - Use o nome do cliente APENAS nas seguintes situa\u00e7\u00f5es:\n     1. Na primeira resposta ap\u00f3s obter o nome (T3) - use o nome completo\n     2. Na finaliza\u00e7\u00e3o (T13) - use o nome completo\n   - **PROIBIDO** mencionar o nome do cliente em qualquer outra resposta.\n   - **NUNCA** inicie suas respostas com o nome do cliente.\n   - Substitua o uso do nome por pronomes ou inicie as perguntas diretamente.\n\nEndere\u00e7o do escrit\u00f3rio: {{ $('Supabase Get Empresa1').item.json['Endere\u00e7o'] }}\nTempo at\u00e9 algu\u00e9m entrar em contato ap\u00f3s o atendimento finalizado: {{ $('Supabase Get Empresa1').item.json['Tempo at\u00e9 algu\u00e9m entrar em contato'] }}\n\n---\n\n### ROTEIRO DE PERGUNTAS\n\n#### T0 (Sauda\u00e7\u00e3o Inicial - SEMPRE USE ESTA NA PRIMEIRA RESPOSTA):\n*   `Ol\u00e1, tudo bem? Eu sou {{ $('Supabase Get Empresa1').item.json['Nome da atendente'] }} do escrit\u00f3rio {{ $('Supabase Get Empresa1').item.json['Escrit\u00f3rio'] }}, especialista em Benef\u00edcios do INSS. Voc\u00ea j\u00e1 \u00e9 nosso cliente ou \u00e9 o primeiro contato?`\n\n#### T1:\n*   `Para come\u00e7armos, qual \u00e9 o seu nome completo?`\n\n#### T2:\n*   `O

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

___MAIN_2_Modularizado_24_3___ATIVO___ADVOCACIA_n8n___AGENTE_ENCAMINHAMENTO_. Uses supabase, httpRequest, informationExtractor, lmChatOpenAi. Event-driven trigger; 68 nodes.

Source: https://github.com/AndersonNascimentoDosSantos/n8n-workflow-backup/blob/main/___main_2_modularizado_24_3___ativo___advocacia_n8n___agente_encaminhamento_-eMJOYJ0eDYhU7gHF.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Alfred (funcional). Uses gmailTool, googleCalendarTool, gmail, embeddingsOpenAi. Event-driven trigger; 83 nodes.

Gmail Tool, Google Calendar Tool, Gmail +24
AI & RAG

Who is this for? This workflow is ideal for HR teams, startups, and enterprises that want to handle employee interactions through WhatsApp and automate responses using LLM (OpenAI) and intelligent rou

WhatsApp Trigger, OpenAI, OpenAI Chat +13
AI & RAG

Chat with docs - 5minAI New version. Uses httpRequest, documentDefaultDataLoader, textSplitterRecursiveCharacterTextSplitter, embeddingsOpenAi. Event-driven trigger; 62 nodes.

HTTP Request, Document Default Data Loader, Text Splitter Recursive Character Text Splitter +10
AI & RAG

I prepared a detailed guide that illustrates the entire process of building an AI agent using Supabase and Google Drive within N8N workflows.

HTTP Request, Document Default Data Loader, Text Splitter Recursive Character Text Splitter +10
AI & RAG

Auto repost job with RAG is a workflow designed to automatically extract, process, and publish job listings from monitored sources using Google Drive, OpenAI, Supabase, and WordPress. This integration

Google Drive, Supabase Vector Store, OpenAI Embeddings +12