Extraer texto de recibos usando el reconocimiento de tablas de OCR.space

Intermedio

Este es unInvoice Processing, Multimodal AIflujo de automatización del dominio deautomatización que contiene 9 nodos.Utiliza principalmente nodos como Set, Form, FormTrigger, HttpRequest. Usar OCR.space Table Recognition para extraer texto de recibos

Requisitos previos
  • Pueden requerirse credenciales de autenticación para la API de destino
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "meta": {
    "instanceId": "51c6a64ef13fda2e6aa96576c25d72519ca4bc44cea9da20af60a642b594d835"
  },
  "nodes": [
    {
      "id": "0663af99-4977-4723-828d-d5e5725d036a",
      "name": "Trigger • Cargar imagen para OCR",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        576,
        288
      ],
      "webhookId": "64016fb2-7c40-4bd4-bf2a-7dacc23d3a7a",
      "parameters": {
        "options": {},
        "formTitle": "Receipt OCR",
        "formFields": {
          "values": [
            {
              "fieldType": "file",
              "fieldLabel": "File (Max 1MB)",
              "multipleFiles": false,
              "requiredField": true
            },
            {
              "fieldType": "radio",
              "fieldLabel": "Is it a table",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Yes"
                  },
                  {
                    "option": "No"
                  }
                ]
              },
              "requiredField": true
            }
          ]
        },
        "formDescription": "Upload an image to extract text via OCR.\nMax file size: 1 MB"
      },
      "typeVersion": 2.3,
      "alwaysOutputData": false
    },
    {
      "id": "815fc903-a65e-46a5-8177-a0cf8d40aa01",
      "name": "Prepare • Normalizar entradas",
      "type": "n8n-nodes-base.set",
      "position": [
        832,
        288
      ],
      "parameters": {
        "options": {
          "stripBinary": false
        },
        "assignments": {
          "assignments": [
            {
              "id": "c454bde2-a211-448e-ac21-e044044915f6",
              "name": "isTable",
              "type": "string",
              "value": "={{ ($json[\"Is it a table\"] ?? $json.Is_it_a_table) === \"Yes\" }}"
            },
            {
              "id": "07545925-b27a-4471-a5d0-93abc740acf6",
              "name": "File (Max 1MB)",
              "type": "object",
              "value": "={{ $json['File (Max 1MB)'] ?? $json.File__Max_1MB_ }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "baf07380-1179-4077-9c7f-07c92e65bee5",
      "name": "OCR.space • Analizar imagen",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1088,
        288
      ],
      "parameters": {
        "url": "https://api.ocr.space/parse/image",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "language",
              "value": "pol"
            },
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "File__Max_1MB_"
            },
            {
              "name": "OCREngine",
              "value": "2"
            },
            {
              "name": "isTable",
              "value": "={{ $json.isTable }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lqCRwWbcuW6VTaIz",
          "name": "ocr.space"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3e1fe87f-e776-469d-bae4-f76de5032ec3",
      "name": "Display • Mostrar texto OCR",
      "type": "n8n-nodes-base.form",
      "position": [
        1344,
        288
      ],
      "webhookId": "f85368ca-28f1-4c49-bc12-1801c5f8a6b7",
      "parameters": {
        "options": {
          "customCss": ".card {\n\tposition: relative;\n\tmax-width: 500px;\n\tmargin: 20px auto;\n\tpadding: 20px;\n\tbackground: #fefefe !important;\n\tborder-radius: 12px;\n\tbox-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n\tfont-family: 'Courier New', monospace;\n\tcolor: #1f2937;\n\tfont-size: 16px;\n\tline-height: 1.6;\n\twhite-space: pre-wrap;\n}\n\n.header p { text-align: left; }\n\n@media (max-width: 768px) {\n\t.card { margin: 10px !important; padding: 15px !important; font-size: 14px; }\n}\n",
          "formTitle": "OCR Result"
        },
        "operation": "completion",
        "completionTitle": "OCR Result",
        "completionMessage": "={{ $json.ParsedResults[0].ParsedText }}"
      },
      "typeVersion": 2.3
    },
    {
      "id": "ba102eff-44a3-48f3-bf37-2c4db27fa1a0",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        96
      ],
      "parameters": {
        "height": 176,
        "content": "### 📌 What this flow does  \nUpload a receipt image → select if it’s a table → OCR.space parses it → result displayed in a styled card."
      },
      "typeVersion": 1
    },
    {
      "id": "4c2f78c5-f0f1-40b8-a776-8fd846ec6922",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        96
      ],
      "parameters": {
        "height": 400,
        "content": "### 🔹 Trigger • Upload image for OCR  \nPublic form that collects the image (≤1 MB) and asks if the content is a table."
      },
      "typeVersion": 1
    },
    {
      "id": "f9d0e10c-466b-4456-9f89-2d50e4a1cf46",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        752,
        96
      ],
      "parameters": {
        "width": 256,
        "height": 400,
        "content": "### 🔹 Prepare • Normalize inputs  \nConverts the radio field (“Yes/No”) into a true/false `isTable` flag. Keeps the uploaded file attached."
      },
      "typeVersion": 1
    },
    {
      "id": "36621099-7926-463a-a36d-f185cbfb8b82",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1008,
        96
      ],
      "parameters": {
        "width": 256,
        "height": 400,
        "content": "### 🔹 OCR.space • Parse image  \nSends file + options to OCR.space API.  \nLanguage = `pol`, Engine = `2`, passes `isTable`.  \n⚠️ Needs API key (header auth)."
      },
      "typeVersion": 1
    },
    {
      "id": "70f2a795-2c1c-4265-b5d2-af8af703814c",
      "name": "Nota adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1264,
        96
      ],
      "parameters": {
        "height": 400,
        "content": "### 🔹 Display • Show OCR text  \nShows parsed text from `ParsedResults[0].ParsedText` inside a clean, monospace card for easy copy-paste."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "baf07380-1179-4077-9c7f-07c92e65bee5": {
      "main": [
        [
          {
            "node": "3e1fe87f-e776-469d-bae4-f76de5032ec3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "815fc903-a65e-46a5-8177-a0cf8d40aa01": {
      "main": [
        [
          {
            "node": "baf07380-1179-4077-9c7f-07c92e65bee5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0663af99-4977-4723-828d-d5e5725d036a": {
      "main": [
        [
          {
            "node": "815fc903-a65e-46a5-8177-a0cf8d40aa01",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Intermedio - Procesamiento de facturas, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos9
Categoría2
Tipos de nodos5
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34