AutomationFlowsAI & RAG › Utfpr - Ia Coversor De PDF

Utfpr - Ia Coversor De PDF

UTFPR - IA COVERSOR DE PDF. Uses agent, lmChatOpenAi. Webhook trigger; 7 nodes.

Webhook trigger★★★★☆ complexityAI-powered7 nodesAgentOpenAI Chat
AI & RAG Trigger: Webhook Nodes: 7 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Agent → OpenAI Chat 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": "UTFPR - IA COVERSOR DE PDF",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "conversor",
        "responseMode": "responseNode",
        "options": {}
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        -540,
        -80
      ],
      "id": "59c7b387-b0b2-4e59-a689-628a03636e3e",
      "name": "Webhook"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $json.text }}",
        "options": {
          "systemMessage": "={\n  \"name\": \"LeitorPDF\",\n  \"objectives\": [\n    \"[{{ $item(\"0\").$node[\"Extract from File\"].json[\"text\"] }}. Extraia SOMENTE os dados das tabelas do PDF conforme o padr\u00e3o de colunas abaixo e retorne EXCLUSIVAMENTE no formato CSV, SEM linhas ou c\u00e9lulas N/A, sem t\u00edtulos extras, sem coment\u00e1rios, exatamente no seguinte formato e separando cada campo por v\u00edrgula, uma linha para cada registro:\",\n    \"\",\n    \"TOMBO NOVO,TOMBO ANTIGO,INSTITUICAO,DESCRICAO DO BEM,LOCAL FISICO\",\n    \"\",\n    \"Exemplo:\",\n    \"834,1333,UTFPR,Cadeira,Q-108\",\n    \"11134,20421,UTFPR,Cadeira,Q-104\",\n    \"\",\n    \"IMPORTANTE:\",\n    \"- Na coluna 'DESCRICAO DO BEM', coloque APENAS o valor que aparece na coluna 'Descri\u00e7\u00e3o' da tabela do PDF.\",\n    \"- N\u00c3O inclua informa\u00e7\u00f5es de 'Estado de Conserva\u00e7\u00e3o', 'Situa\u00e7\u00e3o' ou qualquer outro campo nesta coluna.\",\n    \"- Cada coluna do CSV deve conter exclusivamente o valor correspondente da tabela original, sem concatena\u00e7\u00f5es ou misturas.\",\n    \"Se algum campo estiver vazio, apenas deixe em branco entre as v\u00edrgulas, sem colocar N/A, null ou aspas.\",\n    \"N\u00e3o inclua nenhum texto extra, t\u00edtulos duplicados ou coment\u00e1rios fora do padr\u00e3o CSV solicitado.\"\n  ],\n  \"general_rules\": [\n    \"Seja preciso e rigoroso ao preencher as colunas.\",\n    \"N\u00e3o coloque aspas em campos vazios ou inteiros.\",\n    \"N\u00e3o acrescente t\u00edtulos, coment\u00e1rios, legendas ou qualquer texto fora do padr\u00e3o CSV solicitado.\"\n  ]\n}\n"
        }
      },
      "id": "c2b16c0b-2e01-40de-be22-37790493d34c",
      "name": "Leitor PDF",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        260,
        -80
      ],
      "typeVersion": 1.8
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.2,
      "position": [
        180,
        160
      ],
      "id": "22a914d6-140d-4577-8bfb-37560e23e2d1",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "pdf",
        "binaryPropertyName": "=data",
        "options": {}
      },
      "type": "n8n-nodes-base.extractFromFile",
      "typeVersion": 1,
      "position": [
        -20,
        -80
      ],
      "id": "e409c0eb-e38f-4304-b197-b3b7beb9d59b",
      "name": "Extract from File"
    },
    {
      "parameters": {
        "jsCode": "return [\n  {\n    binary: {\n      data: {\n        data: $json.body.files[0].content,\n        mimeType: 'application/pdf',\n        fileName: $json.body.files[0].name || 'documento.pdf'\n      }\n    }\n  }\n];"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -300,
        -80
      ],
      "id": "4ef4786c-5ecd-4282-b3fd-cd32334d056b",
      "name": "Code"
    },
    {
      "parameters": {
        "respondWith": "allIncomingItems",
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.2,
      "position": [
        900,
        -80
      ],
      "id": "455eef1d-17a9-4f0f-8d0c-9667629b3f31",
      "name": "Respond to Webhook"
    },
    {
      "parameters": {
        "jsCode": "const inputData = $json[\"output\"].trim();\n\nconst linhas = inputData.split('\\n');\n// Ignora cabe\u00e7alho, se vier\nconst linhasDados = linhas.filter(l => l && !l.toLowerCase().includes('tombo novo'));\n\nconst registros = linhasDados.map(linha => {\n  const [tomboNovo, tomboAntigo, instituicao, descricao, localFisico] = linha.replace(/\"/g, '').split(',');\n\n  return {\n    \"Tombo Novo\": tomboNovo ? tomboNovo.trim() : \"\",\n    \"Tombo Antigo\": tomboAntigo ? tomboAntigo.trim() : \"\",\n    \"Institui\u00e7\u00e3o\": instituicao ? instituicao.trim() : \"\",\n    \"Descricao do Bem\": descricao ? descricao.trim().split(' ')[0] : \"\",\n    \"Local F\u00edsico\": localFisico ? localFisico.trim() : \"\"\n  };\n});\n\nreturn registros.map(item => ({ json: item }));\n"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        640,
        -80
      ],
      "id": "f528c6b0-9eab-4ed2-8353-3dc5117a6422",
      "name": "Code1"
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Leitor PDF": {
      "main": [
        [
          {
            "node": "Code1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Leitor PDF",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Leitor PDF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code1": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "9dc0129d-5275-4644-99a9-7071f9738a2d",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "Hko5DKAkWcWtTmW5",
  "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

UTFPR - IA COVERSOR DE PDF. Uses agent, lmChatOpenAi. Webhook trigger; 7 nodes.

Source: https://github.com/TechnologicalCraftsmanship/ProcessadorPDFsUTFPR/blob/d2175be3954185c0098a98f0af807e9387b9752b/UTFPR___IA_COVERSOR_DE_PDF.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

⏺ 🚀 How it works

Agent, Anthropic Chat, Output Parser Structured +6
AI & RAG

L&D_AgentsAI_ATIVO. Uses httpRequest, agent, googleCalendarTool, toolSerpApi. Webhook trigger; 93 nodes.

HTTP Request, Agent, Google Calendar Tool +9
AI & RAG

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

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

Remi 1.1. Uses lmChatOpenAi, memoryPostgresChat, openAi, postgres. Webhook trigger; 89 nodes.

OpenAI Chat, Memory Postgres Chat, OpenAI +7
AI & RAG

This n8n workflow orchestrates a powerful suite of AI Agents and automations to manage and optimize various aspects of an e-commerce operation, particularly for platforms like Shopify. It leverages La

Google Sheets, HTTP Request, Slack +10