Extraer texto de recibos usando el reconocimiento de tablas de OCR.space
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
- •Pueden requerirse credenciales de autenticación para la API de destino
Nodos utilizados (9)
{
"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
}
]
]
}
}
}¿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.
Flujos de trabajo relacionados recomendados
Arkadiusz
@akadiuszCompartir este flujo de trabajo