{
  "name": "pd_automacao_n8n_fluxo_principal",
  "nodes": [
    {
      "parameters": {
        "formTitle": "Resumo de not\u00edcias",
        "formDescription": "Receba um resumo das principais not\u00edcias do assunto desejado! (A quantidade de not\u00edcias foi limitada manualmente a 5 not\u00edcias, a fim de evitar esgostar os tokens do LLM).",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Assunto desejado:",
              "requiredField": true
            },
            {
              "fieldLabel": "Data de in\u00edcio das not\u00edcias:",
              "fieldType": "date",
              "requiredField": true
            },
            {
              "fieldLabel": "Data final das not\u00edcias",
              "fieldType": "date",
              "requiredField": true
            },
            {
              "fieldLabel": "Escolha em qual local a pesquisa deve ser realizada:",
              "fieldType": "radio",
              "defaultValue": "Internet",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Internet"
                  },
                  {
                    "option": "Base vetorial"
                  },
                  {
                    "option": "Internet e base vetorial"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldLabel": "E-mail",
              "requiredField": true
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.5,
      "position": [
        928,
        336
      ],
      "id": "a5016071-cfd2-4d96-b2ae-b822cbf2c4f8",
      "name": "On form submission"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 3
          },
          "conditions": [
            {
              "id": "273f03d1-d1eb-4c4f-950f-0c88174e0dbf",
              "leftValue": "={{ $json.articles }}",
              "rightValue": "",
              "operator": {
                "type": "array",
                "operation": "notEmpty",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.3,
      "position": [
        1776,
        32
      ],
      "id": "5b6006b3-2359-4378-a5cb-304b0d0f050a",
      "name": "If"
    },
    {
      "parameters": {
        "batchSize": "=1",
        "options": {
          "reset": false
        }
      },
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        2192,
        96
      ],
      "id": "727f9cbe-d49b-4a1a-8556-54a3e2421901",
      "name": "Loop Over Items",
      "alwaysOutputData": false
    },
    {
      "parameters": {
        "errorMessage": "Erro na resposta do servidor! A API fica inativa ap\u00f3s 15 minutos sem uso. Tente novamente!"
      },
      "type": "n8n-nodes-base.stopAndError",
      "typeVersion": 1,
      "position": [
        1776,
        272
      ],
      "id": "3165d248-a197-4a62-a07d-8ab4a1bdc9b0",
      "name": "Stop and Error"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "1eec4e98-ab1d-434f-b0e0-39d096d2de42",
              "name": "Assunto desejado:",
              "value": "={{ $json['Assunto desejado:'].trim().toLowerCase() }}",
              "type": "string"
            },
            {
              "id": "a7321e2d-9f76-4e9b-ba7a-3c7543a9ad3a",
              "name": "Escolha em qual local a pesquisa deve ser realizada:",
              "value": "={{ $json['Escolha em qual local a pesquisa deve ser realizada:'].trim().toLowerCase() }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1104,
        336
      ],
      "id": "78130eea-a3a6-4b48-bce1-85dd4815c7ad",
      "name": "Edit Fields"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 3
          },
          "conditions": [
            {
              "id": "740a032d-7a97-4ae4-88ce-2b29fa4d5fd4",
              "leftValue": "={{ $json['Escolha em qual local a pesquisa deve ser realizada:'] }}",
              "rightValue": "internet",
              "operator": {
                "type": "string",
                "operation": "contains"
              }
            }
          ],
          "combinator": "and"
        },
        "looseTypeValidation": "={{ false }}",
        "options": {}
      },
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.3,
      "position": [
        1328,
        224
      ],
      "id": "5443e113-2be4-4dee-aebf-faa4eb12341f",
      "name": "Filter internet"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 3
          },
          "conditions": [
            {
              "id": "0baf6e32-4537-48a6-87ee-afc2d4fee89d",
              "leftValue": "={{ $json['Escolha em qual local a pesquisa deve ser realizada:'] }}",
              "rightValue": "base vetorial",
              "operator": {
                "type": "string",
                "operation": "contains"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.3,
      "position": [
        1312,
        496
      ],
      "id": "2f955fd9-5681-48a2-9f4e-401ac9a935b8",
      "name": "Filter base vetorial"
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3.2,
      "position": [
        2352,
        464
      ],
      "id": "c4496c82-354d-4a61-87c1-549667759e7e",
      "name": "Merge",
      "alwaysOutputData": true
    },
    {
      "parameters": {
        "content": "## Fluxo de busca e resumo de not\u00edcias na internet\n",
        "height": 480,
        "width": 1536
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        -80
      ],
      "typeVersion": 1,
      "id": "ee08e1c7-e649-413b-a732-0ecdfdf995db",
      "name": "Sticky Note"
    },
    {
      "parameters": {
        "content": "## Fluxo de busca e resumo de not\u00edcias na base vetorial\n",
        "height": 624,
        "width": 1536,
        "color": 6
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        400
      ],
      "typeVersion": 1,
      "id": "3443d155-8f73-4d98-b8ab-ced43db85bdc",
      "name": "Sticky Note1"
    },
    {
      "parameters": {
        "content": "## Fluxo de captura e edi\u00e7\u00e3o de dados do usu\u00e1rio\n",
        "height": 1104,
        "width": 400,
        "color": 5
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        -80
      ],
      "typeVersion": 1,
      "id": "e3191645-da5c-4980-9d65-cc8d0b9b7797",
      "name": "Sticky Note4"
    },
    {
      "parameters": {
        "language": "pythonNative",
        "pythonCode": "result = [{\"output\":  \n\"```json\\n{\\n  \\\"output\\\": \\\"N\u00e3o foram encontradas not\u00edcias sobre o assunto informado na API de not\u00edcias! [1] \\\",\\n \\\"title\\\": \\\"\\\", \\n  \\\"url\\\": \\\"\\\",\\n  \\\"id\\\": \\\"\\\"\\n}\\n```\"}]\n\nreturn result"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        2112,
        -48
      ],
      "id": "87b44c76-e8fc-4eb0-8a2f-78d9986db0a9",
      "name": "Code in Python - not\u00edcias n\u00e3o encontradas"
    },
    {
      "parameters": {
        "language": "pythonNative",
        "pythonCode": "# Loop over input items and add a new field called 'my_new_field' to the JSON of each one\narticles = _items[0][\"json\"][\"articles\"]\n\nfor item in range(0,len(articles)-1):\n  articles[item][\"source\"][\"id\"] = item + 1 \n  \nresult = [{\"json\": article} for article in articles]\n\nreturn result[:9]"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        2000,
        96
      ],
      "id": "3f73ae37-8b9b-4049-99c7-0c0413b95a39",
      "name": "Code in Python - not\u00edcias encontradas"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=Voc\u00ea receber\u00e1 uma palavra ou frase e precisar\u00e1 encontrar informa\u00e7\u00f5es sobre ela no banco de dados e retornar um resumo. A consulta no banco de dados ser\u00e1 feita usando a ferramento MCP Clieent. A palavra ou frase \u00e9 a seguinte:  {{ $('On form submission').item.json['Assunto desejado:'] }}. No resultado final, n\u00e3o quero formata\u00e7\u00e3o como negrito ou it\u00e1lico, nem linhas e par\u00e1grafos em branco. O conte\u00fado deve estar em apenas um par\u00e1grafo e em texto simples. Se voc\u00ea n\u00e3o encontrou o assunto, informe a mensagem \"Desculpe, o assunto n\u00e3o foi encontrado.\".",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3.1,
      "position": [
        1600,
        512
      ],
      "id": "7062956e-6cc9-4ff0-931b-6e3a78ca9948",
      "name": "AI Agent - busca e resumo no banco vetorial"
    },
    {
      "parameters": {
        "model": "openai/gpt-oss-safeguard-20b",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGroq",
      "typeVersion": 1,
      "position": [
        2400,
        288
      ],
      "id": "e0f9b65b-853a-41e9-8f31-51b8f178501d",
      "name": "Groq Chat Model - resumo de not\u00edcias da internet",
      "credentials": {
        "groqApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "model": "openai/gpt-oss-120b",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGroq",
      "typeVersion": 1,
      "position": [
        1600,
        672
      ],
      "id": "dc7b5c81-0561-472b-ab1a-9ed9a2cfb4ee",
      "name": "Groq Chat Model - busca e resumo no banco vetorial",
      "credentials": {
        "groqApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=Voc\u00ea ir\u00e1 receber uma not\u00edcia e ter\u00e1 que fazer um resumo de pelo menos 4 linhas e colocar, no final do resumo, o n\u00famero da not\u00edcia entre colchetes, por exemplo, [1]. O n\u00famero da not\u00edcia deve ser inclu\u00eddo sempre ao final do resumo. Aqui est\u00e1 a not\u00edcia: {{ $json.content }} e aqui est\u00e1 o n\u00famero da not\u00edcia: {{ $json.source.id }} O resultado final deve ser um arquivo json, onde a chave \"output\" ter\u00e1 o resumo realizado, a chave \"title\" tem o t\u00edtulo que est\u00e1 em {{ $json.title }}, a chave \"url\" tem a URL que est\u00e1 me {{ $json.url }} e a chave \"id\" que est\u00e1 em {{ $json.source.id }}. Elimine as quebras de linhas por ventura existentes no resultado final.",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3.1,
      "position": [
        2400,
        112
      ],
      "id": "8bfbbf7d-c75a-4c53-9a35-55f61ca30b69",
      "name": "AI Agent - resumo de not\u00edcias da internet",
      "retryOnFail": true,
      "maxTries": 5
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://pd-fundamentos-n8n.onrender.com/busca",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "assunto",
              "value": "={{ $json['Assunto desejado:'] }}"
            },
            {
              "name": "data_ini",
              "value": "={{ $('On form submission').item.json['Data de in\u00edcio das not\u00edcias:'] }}"
            },
            {
              "name": "data_fim",
              "value": "={{ $('On form submission').item.json['Data final das not\u00edcias'] }}"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [
        1584,
        192
      ],
      "id": "f1f11abf-2cac-4385-a506-56425005d327",
      "name": "HTTP Request - busca as not\u00edcias na internet",
      "retryOnFail": true,
      "maxTries": 5,
      "waitBetweenTries": 3000,
      "onError": "continueErrorOutput"
    },
    {
      "parameters": {
        "language": "pythonNative",
        "pythonCode": "raw_text = _items[0][\"json\"][\"output\"]\n\nsafe_text = raw_text.replace('\"', '\\\\\"').replace('\\n', '\\\\n').replace('\\r', '')\n\nresult = [{\"output\":  \n\"```json\\n{\\n  \\\"output\\\": \\\"\" +  safe_text +  \" [n.a.] \\\",\\n \\\"title\\\": \\\"Base de dados vetorial no Supabase.\\\", \\n  \\\"url\\\": \\\"\\\",\\n  \\\"id\\\": \\\"n.a.\\\"\\n}\\n```\"}]\n\nreturn result\n# return [{\"json\": {\"output\": _items[0][\"json\"][\"output\"]}}]"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1952,
        480
      ],
      "id": "424cf587-ee92-45f1-b368-ad0383167058",
      "name": "Code in Python - gerar array de json"
    },
    {
      "parameters": {
        "endpointUrl": "https://kleberga1-145.app.n8n.cloud/mcp/0ae7788b-5830-4509-be59-bd9ac13b95cf",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "typeVersion": 1.2,
      "position": [
        1856,
        688
      ],
      "id": "0da6e946-cb0d-44f7-a5aa-77ee3b57960a",
      "name": "MCP Client"
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "value": "vXCYcGGRWTS39V2l",
          "mode": "id",
          "cachedResultUrl": "/workflow/vXCYcGGRWTS39V2l"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {},
          "matchingColumns": [],
          "schema": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        },
        "options": {
          "waitForSubWorkflow": true
        }
      },
      "type": "n8n-nodes-base.executeWorkflow",
      "typeVersion": 1.3,
      "position": [
        3088,
        688
      ],
      "id": "7c0fcf0b-dd51-4ada-af38-748d8f114f9c",
      "name": "Call 'pd_automacao_n8n_relatorio'"
    },
    {
      "parameters": {
        "language": "pythonNative",
        "pythonCode": "lista_auxiliar = []\n\nlista_referencias = []\n\nfor item in _items:\n    \n    dados = item.get('json', item) \n\n    if 'output' in dados:\n     \n      string = dados['output'] \n      \n      lista_auxiliar.append(string)\n\n      if dados[\"id\"]:\n\n        lista_referencias.append(\"[\" + str(dados[\"id\"]) + \"] \" + dados[\"title\"] + \"\\n\" + dados[\"url\"])\n\n      else:\n\n        lista_referencias.append(\"[1] N\u00e3o h\u00e1 not\u00edcias sobre o assunto.\")\n\nif not lista_auxiliar:\n    return {\n        \"erro\": \"Nenhum campo 'output' encontrado\",\n        \"debug_estrutura_recebida\": _items[0] if _items else \"Sem itens de entrada\"\n    }\n\nmerged_auxiliar = \"\\n\".join(lista_auxiliar)\nmerged_referencias = \"\\n\".join(lista_referencias)\n\nreturn {\n  \"lista_consolidada\": merged_auxiliar,\n  \"lista_referencias\":merged_referencias\n}"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        3184,
        -16
      ],
      "id": "86cdf16c-e5d1-4a9c-9fc0-ac6f5129dc14",
      "name": "Code in Python - unir as not\u00edcias"
    },
    {
      "parameters": {
        "html": "<!DOCTYPE html>\n\n<html>\n<head>\n  <meta charset=\"UTF-8\" />\n  <title>My HTML document</title>\n</head>\n<body>\n  <div class=\"container\">\n    <h3 style=\"text-align: left;\">Assunto: {{ $('On form submission').first().json['Assunto desejado:'] }}</h3>\n    <h3 style=\"text-align: left;\">Data inicial: {{ $('On form submission').first().json['Data de in\u00edcio das not\u00edcias:'] }}</h3>\n    <h3 style=\"text-align: left;\">Data final: {{ $('On form submission').first().json['Data final das not\u00edcias'] }}</h3>\n    <br>\n    <h3 style=\"font-weight: bold;\">Resumo</h3>\n    <br>\n    <p style=\"text-align: justify; white-space: pre-line;\">{{ $('Code in Python - unir as not\u00edcias').item.json.lista_consolidada }}</p>\n    <br>\n    <p style=\"text-align: left; font-weight: bold;\">Refer\u00eancias:</p>\n    <br>\n    <p style=\"text-align: justify; white-space: pre-line;\">{{ $('Code in Python - unir as not\u00edcias').item.json.lista_referencias }}</p>\n  </div>\n</body>\n</html>\n\n<style>\n.container {\n  background-color: #ffffff;\n  text-align: center;\n  padding: 16px;\n  border-radius: 8px;\n}\n\nh1 {\n  color: #ff6d5a;\n  font-size: 24px;\n  font-weight: bold;\n  padding: 8px;\n}\n\nh2 {\n  color: #909399;\n  font-size: 18px;\n  font-weight: bold;\n  padding: 8px;\n}\n</style>\n\n<script>\nconsole.log(\"Hello World!\");\n</script>"
      },
      "type": "n8n-nodes-base.html",
      "typeVersion": 1.2,
      "position": [
        3088,
        192
      ],
      "id": "f9f95afb-a3b8-4af0-8706-d178585d2e4d",
      "name": "HTML"
    },
    {
      "parameters": {
        "jsCode": "// 1. Acessa todos os itens que chegaram no n\u00f3\nconst allItems = $input.all(); \n\n// 2. Mapeia a lista transformando as strings em objetos\nconst processedItems = allItems.map(item => {\n  try {\n    let rawOutput = item.json.output;\n\n    const jsonString = rawOutput\n      .replace(/```json\\n/g, \"\")\n      .replace(/```/g, \"\")\n      .trim();\n\n    const parsedData = JSON.parse(jsonString);\n\n    return {\n      json: parsedData\n    };\n  } catch (error) {\n    return {\n      json: { \n        error: \"Falha ao converter item\", \n        raw: item.json.output \n      }\n    };\n  }\n});\n\nreturn processedItems;"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        2928,
        -16
      ],
      "id": "66724faa-f2b8-4b81-ad31-4353abc76c7c",
      "name": "Code in JavaScript"
    },
    {
      "parameters": {
        "content": "## Fluxo de gera\u00e7\u00e3o do relat\u00f3rio",
        "height": 480,
        "width": 576,
        "color": 4
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2816,
        -80
      ],
      "typeVersion": 1,
      "id": "5849bb51-0110-4811-8db5-47e1710f21a3",
      "name": "Sticky Note2"
    },
    {
      "parameters": {
        "content": "## Fluxo de envio do relat\u00f3rio",
        "height": 624,
        "width": 576,
        "color": 3
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2816,
        400
      ],
      "typeVersion": 1,
      "id": "12976b9a-274a-4d5d-8fda-78f83027acee",
      "name": "Sticky Note3"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "75551e43-9d66-4f65-b488-3a6a1ebbdd17",
              "name": "html",
              "value": "={{ $json.html }}",
              "type": "string"
            },
            {
              "id": "d520c739-9ffb-4cfb-81a6-010807addf45",
              "name": "E-mail",
              "value": "={{ $('On form submission').item.json['E-mail'] }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        3088,
        480
      ],
      "id": "8f7c1948-c14b-496f-8487-c79706efd05d",
      "name": "Edit Fields - relat\u00f3rio"
    }
  ],
  "connections": {
    "On form submission": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "Code in Python - not\u00edcias encontradas",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Code in Python - not\u00edcias n\u00e3o encontradas",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "AI Agent - resumo de not\u00edcias da internet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Filter internet",
            "type": "main",
            "index": 0
          },
          {
            "node": "Filter base vetorial",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter internet": {
      "main": [
        [
          {
            "node": "HTTP Request - busca as not\u00edcias na internet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter base vetorial": {
      "main": [
        [
          {
            "node": "AI Agent - busca e resumo no banco vetorial",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in Python - not\u00edcias n\u00e3o encontradas": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in Python - not\u00edcias encontradas": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - busca e resumo no banco vetorial": {
      "main": [
        [
          {
            "node": "Code in Python - gerar array de json",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Groq Chat Model - resumo de not\u00edcias da internet": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - resumo de not\u00edcias da internet",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Groq Chat Model - busca e resumo no banco vetorial": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - busca e resumo no banco vetorial",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - resumo de not\u00edcias da internet": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request - busca as not\u00edcias na internet": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Stop and Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in Python - gerar array de json": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "MCP Client": {
      "ai_tool": [
        [
          {
            "node": "AI Agent - busca e resumo no banco vetorial",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Code in Python - unir as not\u00edcias": {
      "main": [
        [
          {
            "node": "HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Code in Python - unir as not\u00edcias",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTML": {
      "main": [
        [
          {
            "node": "Edit Fields - relat\u00f3rio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields - relat\u00f3rio": {
      "main": [
        [
          {
            "node": "Call 'pd_automacao_n8n_relatorio'",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate",
    "availableInMCP": true,
    "timeSavedMode": "fixed",
    "callerPolicy": "workflowsFromSameOwner"
  },
  "versionId": "2f1f309f-375a-494b-9fb1-62b0bee31494",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "a3kbAlomghcPiwi3",
  "tags": []
}