AutomationFlowsAI & RAG › Impostosnf

Impostosnf

impostosNF. Uses mcpClientTool, agent, httpRequest, lmChatGoogleGemini. Webhook trigger; 16 nodes.

Webhook trigger★★★★☆ complexityAI-powered16 nodesMcp Client ToolAgentHTTP RequestGoogle Gemini Chat
AI & RAG Trigger: Webhook Nodes: 16 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Agent → HTTP Request 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
{
  "name": "impostosNF",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "taxes-nf",
        "responseMode": "responseNode",
        "options": {}
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2.1,
      "position": [
        -528,
        0
      ],
      "id": "c5118d46-6701-49e3-8d92-e473727ad79a",
      "name": "Webhook"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.4,
      "position": [
        2896,
        0
      ],
      "id": "4ac6e798-6018-4ee8-b455-553e256d0738",
      "name": "Respond to Webhook"
    },
    {
      "parameters": {
        "endpointUrl": "http://gov-service-mcp:8005",
        "include": "selected",
        "includeTools": [
          "consultar_cnpj"
        ],
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "typeVersion": 1.2,
      "position": [
        528,
        416
      ],
      "id": "28caf691-a24b-4718-be1d-76b957445872",
      "name": "MCP Client"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $node[\"Webhook\"].json.body.nota_fiscal; }}",
        "options": {
          "systemMessage": "Voc\u00ea \u00e9 um especialista em tributa\u00e7\u00e3o e an\u00e1lise fiscal. Sua tarefa \u00e9 processar os dados de uma Nota Fiscal Eletr\u00f4nica (NF-e) fornecida em formato JSON. Com base nos dados de cnpj e do emitente e destinatario consulte os detalhes dos cnpjs com suas ferramentas e gere um array json com objetos com as seguinte formatacao:\n\u00c9 ESSENCIAL QUE SUA RESPOSTA SEJA UNICAMENTE O JSON COM A FORMATACAO ABAIXO. NAO ADICIONE QUAISQUER OUTROS COMENTARIOS\n\n{\n  \"cnpj\": \"XXXXXXXXYYYYZZ\",\n  \"razao_social\": \"Nome da Empresa Ltda.\",\n  \"uf\": \"SP\",\n  \"situacao_simples_nacional\": \"OPTANTE_SN\" | \"NAO_OPTANTE_SN\" | \"EXCLUIDO_SN\",\n  \"data_inicio_simples_nacional\": \"YYYY-MM-DD\",\n  \"data_fim_simples_nacional\": \"YYYY-MM-DD\" (se aplic\u00e1vel),\n  \"contribuinte_icms\": true | false,\n  \"cnae_principal\": \"XXXX-X/XX\",\n  \"regime_tributario_previsto\": \"Simples Nacional\" | \"Lucro Presumido\" | \"Lucro Real\" // Inferido da situa\u00e7\u00e3o do SN e outros indicadores\n}\n\n",
          "maxIterations": 2
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 2.2,
      "position": [
        384,
        0
      ],
      "id": "06030bd6-9693-4091-a6df-5a38de88c70a",
      "name": "enrich_cnpj"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ JSON.stringify($node[\"assemble_final_object\"].json) }} ",
        "options": {
          "systemMessage": "Voc\u00ea \u00e9 um especialista em tributa\u00e7\u00e3o e an\u00e1lise fiscal. Sua tarefa \u00e9 processar os dados de uma Nota Fiscal Eletr\u00f4nica (NF-e) e informa\u00e7\u00f5es extras de contexto, ambos fornecidos em formato JSON. Com base nesses dados, voc\u00ea deve realizar os c\u00e1lculos de tributos federais (PIS e COFINS) e estaduais (ICMS), e em seguida, identificar potenciais oportunidades de recupera\u00e7\u00e3o de cr\u00e9dito tribut\u00e1rio.\nSua an\u00e1lise deve ser objetiva, detalhada e apresentar os resultados de forma clara.\u00a0A sa\u00edda final DEVE ser um objeto JSON v\u00e1lido.\u00a0Caso haja informa\u00e7\u00f5es ausentes ou amb\u00edguas no JSON da NF-e e nas informa\u00e7\u00f5es de contexto que impe\u00e7am um c\u00e1lculo preciso, voc\u00ea deve indicar essa lacuna dentro do JSON de sa\u00edda.\n\nParte 1: Entrada de Dados (JSON da Nota Fiscal)\n    \u2022 A entrada ser\u00e1 um objeto JSON representando uma NF-e.\u00a0Considere que o JSON conter\u00e1 as informa\u00e7\u00f5es padr\u00e3o de uma NF-e, incluindo dados do emitente, destinat\u00e1rio, produtos/servi\u00e7os, valores totais, e detalhes dos impostos.\n    \u2022 Voc\u00ea usar\u00e1 o JSON real da NF-e fornecido ap\u00f3s este prompt.\nParte 2: Tarefas a Serem Executadas e Formato de Sa\u00edda (JSON)\nVoc\u00ea deve gerar um \u00fanico objeto JSON como sa\u00edda. Este objeto JSON deve conter as seguintes chaves e seus respectivos valores. Use\u00a0null\u00a0para valores que n\u00e3o puderam ser determinados ou n\u00e3o s\u00e3o aplic\u00e1veis.\n\n- S\u00d3 RESPONDA COM O JSON NO FORMATO A SEGUIR. N\u00c3O EMITA QUAISQUER OUTROS TIPOS DE COMENTARIOS\n- S\u00d3 RECORRA AOS DADOS DE CONTEXTO CASO A NOTA FISCAL NAO OFERECA INFORMACOES SUFICIENTES\n\nOBS: O arquivo a seguir \u00e9 um exemplo do formato desejado. Preencha conforme as regras estabelecidas.\n\ncodeJSON\n{\n  \"analise_fiscal\": {\n    \"info_nfe\": {\n      \"numero_nota\": \"[Valor]\",\n      \"chave_acesso\": \"[Valor]\",\n      \"data_emissao\": \"[Valor]\",\n      \"emitente\": {\n        \"cnpj\": \"[Valor]\",\n        \"razao_social\": \"[Valor]\",\n        \"uf\": \"[Valor]\",\n        \"crt\": \"[Valor_CRT_da_NFe]\",\n        \"regime_tributario_inferido\": \"[Simples Nacional|Lucro Presumido|Lucro Real|Nao Determinavel]\"\n      },\n      \"destinatario\": {\n        \"cnpj\": \"[Valor]\",\n        \"razao_social\": \"[Valor]\",\n        \"uf\": \"[Valor]\",\n        \"ind_ie_dest\": \"[Valor_indIEDest]\"\n      },\n      \"valores_totais\": {\n        \"valor_produtos\": \"[Valor]\",\n        \"valor_total_nfe\": \"[Valor]\",\n        \"valor_total_icms_destacado\": \"[Valor]\"\n      }\n    },\n    \"tributos_calculados\": {\n      \"pis_cofins\": {\n        \"regime_aplicado\": \"[Cumulativo|Nao Cumulativo|Nao Incidente|Nao Determinavel]\",\n        \"base_calculo_estimada\": \"[Valor]\",\n        \"aliquota_pis\": \"[Valor]\",\n        \"aliquota_cofins\": \"[Valor]\",\n        \"valor_pis_estimado\": \"[Valor]\",\n        \"valor_cofins_estimado\": \"[Valor]\",\n        \"valor_pis_cofins_destacado_nfe\": {\n          \"pis\": \"[Valor_destacado_se_houver]\",\n          \"cofins\": \"[Valor_destacado_se_houver]\"\n        },\n        \"observacoes\": \"[Texto livre sobre compara\u00e7\u00f5es ou detalhes]\"\n      },\n      \"icms_por_item\": [\n        {\n          \"numero_item\": \"[Valor]\",\n          \"ncm\": \"[Valor]\",\n          \"cst_csosn\": \"[Valor]\",\n          \"base_calculo\": \"[Valor]\",\n          \"aliquota_icms\": \"[Valor]\",\n          \"valor_icms\": \"[Valor]\",\n          \"situacao_icms\": \"[Tributado|Isento|Suspenso|Outros|Nao Aplicavel]\"\n        }\n        // ... (para cada item da NF-e)\n      ],\n      \"icms_geral\": {\n        \"potencial_difal\": \"[true|false]\",\n        \"observacoes_difal\": \"[Se potencial_difal for true, descrever brevemente a situa\u00e7\u00e3o]\"\n      }\n    },\n    \"recuperacao_credito_expectativa\": {\n      \"oportunidades_potenciais\": {\n        \"icms\": {\n          \"credito_direto_nfe_entrada\": {\n            \"valor_potencial\": \"[Valor]\",\n            \"condicoes\": \"Potencial cr\u00e9dito de ICMS se o destinat\u00e1rio for contribuinte e utilizar o produto/servi\u00e7o em sua atividade tributada.\"\n          }\n        },\n        \"pis_cofins\": {\n          \"credito_regime_nao_cumulativo\": {\n            \"valor_potencial_indeterminado\": \"true\",\n            \"condicoes\": \"Potencial cr\u00e9dito de PIS/COFINS se o destinat\u00e1rio estiver no regime N\u00e3o Cumulativo e o item for caracterizado como insumo, bem para revenda ou ativo imobilizado, mesmo que n\u00e3o destacado na NF-e de origem. Requer an\u00e1lise cont\u00e1bil detalhada.\"\n          }\n        },\n        \"outras_oportunidades\": [\n          {\n            \"tipo\": \"Exclusao ICMS Base PIS/COFINS\",\n            \"condicoes\": \"Recomend\u00e1vel verificar se o emitente (ou o destinat\u00e1rio, se ele for o contribuinte de PIS/COFINS da opera\u00e7\u00e3o) pode se beneficiar da exclus\u00e3o do ICMS da base de c\u00e1lculo de PIS/COFINS (Tema 69 STF).\"\n          },\n          {\n            \"tipo\": \"Analise Pagamentos Indevidos Anteriores\",\n            \"condicoes\": \"Recomend\u00e1vel verificar se h\u00e1 valores pagos a maior ou indevidamente em opera\u00e7\u00f5es anteriores com produtos similares (se aplic\u00e1vel, com base no NCM ou tipo de produto).\"\n          }\n        ]\n      },\n      \"advertencias_limitacoes\": [\n        \"Esta an\u00e1lise \u00e9 baseada exclusivamente nos dados fornecidos no JSON da NF-e e representa uma expectativa inicial. O c\u00e1lculo exato e a efetiva recupera\u00e7\u00e3o de cr\u00e9ditos dependem de uma an\u00e1lise cont\u00e1bil e fiscal completa da empresa, incluindo regime tribut\u00e1rio, tipo de opera\u00e7\u00e3o, al\u00edquotas internas/interestaduais, e a legisla\u00e7\u00e3o vigente.\",\n        \"As al\u00edquotas e regras fiscais podem variar por estado e com o tempo. \u00c9 imprescind\u00edvel consultar um contador ou especialista tribut\u00e1rio para confirma\u00e7\u00e3o.\"\n      ]\n    }\n  }\n}\nInstru\u00e7\u00f5es Espec\u00edficas para Preenchimento do JSON:\n    \u2022 Valores Num\u00e9ricos:\u00a0Devem ser formatados como n\u00fameros (ex:\u00a01000.00\u00a0em vez de\u00a0\"1000.00\").\n    \u2022 Strings:\u00a0Devem estar entre aspas duplas.\n    \u2022 Arrays:\u00a0Use\u00a0[]\u00a0para listar itens (ex:\u00a0icms_por_item).\n    \u2022 regime_tributario_inferido: Use as categorias\u00a0Simples Nacional,\u00a0Lucro Presumido,\u00a0Lucro Real\u00a0ou\u00a0Nao Determinavel. A infer\u00eancia deve ser feita principalmente pelo campo\u00a0CRT\u00a0do emitente (1\u00a0para Simples Nacional,\u00a02\u00a0para Lucro Presumido,\u00a03\u00a0para Lucro Real) e/ou pelos CSTs de PIS/COFINS e ICMS.\n    \u2022 regime_aplicado\u00a0(PIS/COFINS):\u00a0Use\u00a0Cumulativo,\u00a0Nao Cumulativo,\u00a0Nao Incidente\u00a0ou\u00a0Nao Determinavel. A escolha deve ser consistente com o\u00a0regime_tributario_inferido\u00a0e os CSTs da NF-e (CST PIS 01 a 09 para n\u00e3o cumulativo; 30 a 99 para cumulativo, 08 para outras opera\u00e7\u00f5es, 07 para isen\u00e7\u00e3o/suspens\u00e3o).\n    \u2022 valor_pis_cofins_destacado_nfe:\u00a0Preencha se a NF-e tiver campos de PIS/COFINS destacados (vPIS, vCOFINS). Caso contr\u00e1rio, coloque\u00a0null.\n    \u2022 potencial_difal:\u00a0true\u00a0se a opera\u00e7\u00e3o for interestadual para consumidor final n\u00e3o contribuinte (indIEDest\u00a0= 9 ou vazio). Caso contr\u00e1rio,\u00a0false.\n    \u2022 credito_direto_nfe_entrada:\u00a0O\u00a0valor_potencial\u00a0deve ser o\u00a0vICMS\u00a0total destacado na nota, se ela for considerada de \"entrada\" (compra) para o destinat\u00e1rio. Se n\u00e3o for poss\u00edvel determinar a natureza da opera\u00e7\u00e3o como entrada ou se o\u00a0CST\u00a0n\u00e3o permite cr\u00e9dito,\u00a0valor_potencial\u00a0deve ser\u00a0null.\n    \u2022 valor_potencial_indeterminado:\u00a0Para PIS/COFINS, \u00e9 dif\u00edcil determinar um valor exato de cr\u00e9dito apenas com uma nota de entrada, pois depende dos insumos e do regime do destinat\u00e1rio. Portanto, esta chave deve ser\u00a0true, e as condi\u00e7\u00f5es devem explicar a necessidade de an\u00e1lise aprofundada.\n"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 2.2,
      "position": [
        2112,
        0
      ],
      "id": "608dbdef-83ef-4f33-af19-0853359112b5",
      "name": "tax_calc"
    },
    {
      "parameters": {
        "jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\n//for (const item of $input.all()) {\n//  item.json.myNewField = 1;\n//}\n\nvar items= $node[\"Webhook\"].json.body.items;\nvar ncms = [];\nfor (const item of items)\n{\n  ncms.push(String(item[\"codigo_ncm_sh\"]))\n}\n\n\nreturn {ncms};"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        816,
        0
      ],
      "id": "36aefd47-3040-4130-8252-4f36addfffd8",
      "name": "gather_NCMS"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "http://gov-service:8003/ncm/consultar_lote",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ $json }}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1072,
        0
      ],
      "id": "6e407d33-a667-4976-a849-de744596c85f",
      "name": "recover_ncm_taxes"
    },
    {
      "parameters": {
        "jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\n//for (const item of $input.all()) {\n//  item.json.myNewField = 1;\n//}\n\nvar items= $node[\"Webhook\"].json.body.items;\nvar consultas = [];\nfor (const item of items)\n{\n  consultas.push(\n    {\n      \"uf_origem\":item[\"uf_emitente\"],\n      \"uf_destino\":item[\"uf_destinatario\"],\n      \"ncm\":String(item[\"codigo_ncm_sh\"])\n    }\n  )\n}\n\n\nreturn {consultas};"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1344,
        0
      ],
      "id": "0dbdebec-6b6a-4dec-97c7-c4f9bbd2d92f",
      "name": "gather_icms_regs"
    },
    {
      "parameters": {
        "jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\n//for (const item of $input.all()) {\n//  item.json.myNewField = 1;\n//}\nvar nf_header= $node[\"Webhook\"].json.body.nota_fiscal;\nvar nf_items= $node[\"Webhook\"].json.body.items;\nvar taxes_ncm= $node[\"recover_ncm_taxes\"].json.resultados;\nvar taxes_icms= $node[\"recover_icms_taxes\"].json.resultados;\nvar cnpj_infos= $node[\"enrich_cnpj\"].json.output;\nvar tem_imposto = $node[\"Webhook\"].json.output;\nvar contexto_completo=\n  {\n    \"taxas_icms_por_NCM\":taxes_icms,\n    \"dados_cnpjs\": cnpj_infos,\n    \"taxas_pis_cofins_ipi_por_NCM\":taxes_ncm,\n    \n  };\nvar data={\n  \"nota_fiscal\":\n    {\n      \"cabecalho\":nf_header,\n      \"itens\":nf_items\n    }\n};\n\nif(tem_imposto==false)\n{\n  data[\"contexto\"]=contexto_completo;\n}\nelse\n{\n  data[\"contexto\"]={\n    \"dados_cnpjs\": cnpj_infos,\n  }\n}\n\n\n\n\n\nreturn data;"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1856,
        0
      ],
      "id": "ab279282-e7f1-44a0-beb7-c8a7a3a576ae",
      "name": "assemble_final_object"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "http://gov-service:8003/icms/consultar_lote",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ $json }}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1648,
        0
      ],
      "id": "b1b9cd39-cb7a-494b-86ea-98fe28f37b38",
      "name": "recover_icms_taxes"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "typeVersion": 1,
      "position": [
        384,
        416
      ],
      "id": "6ce971ff-af77-4801-99b6-a259e9c48e79",
      "name": "Google Gemini Chat Model",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "typeVersion": 1,
      "position": [
        2112,
        368
      ],
      "id": "1bee39f9-f9ee-4954-a646-f327b89a479d",
      "name": "Google Gemini Chat Model1",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "PUT",
        "url": "http://taxes-service:8002/analise_fiscal/processamento",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=chave_acesso",
              "value": "={{$node[\"Webhook\"].json.body.nota_fiscal.chave_acesso}}"
            },
            {
              "name": "em_processamento",
              "value": "true"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -256,
        0
      ],
      "id": "0bfe14b7-803b-40f8-bde7-425f439de615",
      "name": "inicio_processo"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "http://taxes-service:8002/analise_fiscal",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "texto",
              "value": "={{ $json.output }}"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        2464,
        0
      ],
      "id": "8f742d6d-129d-40a0-8ccc-23f7ed980ec5",
      "name": "salvar_analise"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "typeVersion": 1,
      "position": [
        -48,
        272
      ],
      "id": "7ee5a597-43ca-4a07-aa2a-2ada4b3b8853",
      "name": "Google Gemini Chat Model2",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $node[\"Webhook\"].json.body.items; }}",
        "options": {
          "systemMessage": "Verifique se o JSON de itens de nota fiscal que voce est\u00e1 recebendo conta com o Calculo de tributos discriminado nos itens. O formato da sua resposta deve ser true se os tributos forem encontrados ou false para dados de tributos inexistentes"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 2.2,
      "position": [
        -48,
        0
      ],
      "id": "895410f7-5d0e-4b99-8cd9-e7daa41282ef",
      "name": "itens_com_tributos"
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "inicio_processo",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "MCP Client": {
      "ai_tool": [
        [
          {
            "node": "enrich_cnpj",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "enrich_cnpj": {
      "main": [
        [
          {
            "node": "gather_NCMS",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "tax_calc": {
      "main": [
        [
          {
            "node": "salvar_analise",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "gather_NCMS": {
      "main": [
        [
          {
            "node": "recover_ncm_taxes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "recover_ncm_taxes": {
      "main": [
        [
          {
            "node": "gather_icms_regs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "gather_icms_regs": {
      "main": [
        [
          {
            "node": "recover_icms_taxes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "assemble_final_object": {
      "main": [
        [
          {
            "node": "tax_calc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "recover_icms_taxes": {
      "main": [
        [
          {
            "node": "assemble_final_object",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "enrich_cnpj",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "tax_calc",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "inicio_processo": {
      "main": [
        [
          {
            "node": "itens_com_tributos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "salvar_analise": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "itens_com_tributos",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "itens_com_tributos": {
      "main": [
        [
          {
            "node": "enrich_cnpj",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1",
    "saveDataErrorExecution": "all",
    "saveDataSuccessExecution": "all",
    "saveExecutionProgress": true,
    "saveManualExecutions": true,
    "callerPolicy": "workflowsFromSameOwner",
    "availableInMCP": false,
    "errorWorkflow": "FFTvWsh145uV1s5b"
  },
  "versionId": "d08afe9b-366b-46bd-af55-6b4af7c7fe0e",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "FFTvWsh145uV1s5b",
  "tags": []
}

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

impostosNF. Uses mcpClientTool, agent, httpRequest, lmChatGoogleGemini. Webhook trigger; 16 nodes.

Source: https://github.com/enzopoeta/i2a2_final/blob/5df31e2c71cbf1d6afc2bb072c6f522b28ece98f/n8n/impostosNF.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

CLINICAINTEGRAL_secretary. Uses postgres, mcpClientTool, googleDriveTool, toolWorkflow. Webhook trigger; 89 nodes.

Postgres, Mcp Client Tool, Google Drive Tool +14
AI & RAG

my-secretary. Uses postgres, mcpClientTool, googleDriveTool, toolWorkflow. Webhook trigger; 86 nodes.

Postgres, Mcp Client Tool, Google Drive Tool +13
AI & RAG

secretaria. Uses postgres, n8n-nodes-evolution-api, openAi, httpRequest. Webhook trigger; 71 nodes.

Postgres, N8N Nodes Evolution Api, OpenAI +12
AI & RAG

Fluxo Nia App - Agendamento Multi-tenant. Uses redis, httpRequest, openAi, whatsApp. Webhook trigger; 52 nodes.

Redis, HTTP Request, OpenAI +6
AI & RAG

⏺ 🚀 How it works

Agent, Anthropic Chat, Output Parser Structured +6