Extracción y análisis automático de facturas con ChatGPT-4o-mini a través de Telegram

Intermedio

Este es unInvoice Processing, AI Summarizationflujo de automatización del dominio deautomatización que contiene 12 nodos.Utiliza principalmente nodos como If, Code, Telegram, HttpRequest, Agent. Extracción y análisis automatizados de facturas con ChatGPT-4o-mini en Telegram

Requisitos previos
  • Bot Token de Telegram
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Clave de API de OpenAI
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
{
  "id": "sBbL7CfgioXi9VJc",
  "meta": {
    "instanceId": "b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"
  },
  "name": "Automate invoice analysis via Telegram with ChatGPT-4o-mini extraction",
  "tags": [],
  "nodes": [
    {
      "id": "b6433fae-ab23-4504-bf1c-07d98177799e",
      "name": "Telegram Trigger",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -464,
        32
      ],
      "webhookId": "11b31e8e-4b0b-47a3-ba82-b4ffea5e34ae",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "e631a3ed-6930-4da7-a5dc-f33b4c852426",
      "name": "Verificar si es Documento",
      "type": "n8n-nodes-base.if",
      "position": [
        -304,
        32
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "1",
              "operator": {
                "type": "object",
                "operation": "exists"
              },
              "leftValue": "={{ $json.message.document }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "a22e54b3-e4e0-4b67-8e8f-ef9a5f163fdb",
      "name": "Obtener Archivo desde Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -128,
        -64
      ],
      "webhookId": "620221c5-ea8f-4c9e-bb04-b70114f27cb2",
      "parameters": {
        "fileId": "={{ $json.message.document.file_id }}",
        "resource": "file",
        "additionalFields": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "e93556dc-7af4-4e7d-9cb0-82aa0da39ed8",
      "name": "HTTP Request - Descargar Archivo",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        32,
        -64
      ],
      "parameters": {
        "url": "=https://api.telegram.org/file/bot{{ $credentials.telegramApi.accessToken }}/{{ $json.result.file_path }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "aebfd1a1-bb29-4dbe-af72-4a6e986d4f79",
      "name": "Extraer Datos de Factura",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        176,
        -64
      ],
      "parameters": {
        "operation": "extractFromPDF"
      },
      "typeVersion": 1
    },
    {
      "id": "c9bf8764-2bc9-4861-b477-bbb60d516f34",
      "name": "AI Agent - Analizar Factura",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        320,
        -64
      ],
      "parameters": {
        "text": "=Analyze the following invoice text and extract key information:\n\n{{ $json.text }}\n\nProvide the following details:\n1. Invoice Number\n2. Invoice Date\n3. Vendor/Supplier Name\n4. Total Amount\n5. Currency\n6. Due Date\n7. Line Items (if available)\n8. Payment Status\n9. Any discrepancies or issues found\n\nFormat the response in a clear, structured manner.",
        "options": {
          "systemMessage": "You are an expert invoice analyst. Extract accurate information from invoices and identify any potential issues or discrepancies."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "baead0ff-8676-4e77-9084-bd28484fc797",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        320,
        128
      ],
      "parameters": {
        "options": {
          "temperature": 0.2
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "OGYj7DgYv5GFLFZk",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c149851f-3c38-4827-b1e9-14dbdbdd9172",
      "name": "Formatear Respuesta",
      "type": "n8n-nodes-base.code",
      "position": [
        576,
        -64
      ],
      "parameters": {
        "jsCode": "const aiResponse = $input.first().json.output;\nconst originalMessage = $('Telegram Trigger').first().json;\n\nreturn {\n  json: {\n    chatId: originalMessage.message.chat.id,\n    analysis: aiResponse,\n    fileName: originalMessage.message.document?.file_name || 'Unknown',\n    timestamp: new Date().toISOString()\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "b6c9a341-c390-4d8e-8ab7-ef7896bf87b4",
      "name": "Enviar Análisis a Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        720,
        -64
      ],
      "webhookId": "c8fc2be4-fef6-4434-86a8-4630d8c9c3b4",
      "parameters": {
        "text": "=📄 *Invoice Analysis Complete*\n\n*File:* {{ $json.fileName }}\n*Analyzed at:* {{ $json.timestamp }}\n\n*Results:*\n{{ $json.analysis }}\n\n✅ Analysis completed successfully!",
        "chatId": "={{ $json.chatId }}",
        "additionalFields": {
          "parse_mode": "Markdown"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "267e3223-6e60-432e-bb6d-980c2821b0e5",
      "name": "Enviar Mensaje de Error",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -128,
        112
      ],
      "webhookId": "b419141c-c0cc-42ba-a2af-6ff60bfa6ba6",
      "parameters": {
        "text": "❌ Please send a document file (PDF or image) to check the invoice.",
        "chatId": "={{ $json.message.chat.id }}",
        "additionalFields": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "2f8e4a85-0db5-421a-93c1-b5a5cc8c701c",
      "name": "Nota Adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1024,
        -256
      ],
      "parameters": {
        "width": 544,
        "height": 624,
        "content": "## Introduction\nUpload invoices via Telegram, receive structured data instantly. Perfect for accountants and finance teams.\n## How It Works\nTelegram bot receives invoices, downloads files, extracts data using OpenAI, then returns analysis.\n## Workflow Template\nTelegram Trigger → Document Check → Get File → HTTP Download → AI Extract → Format Response → Send to Telegram\n## Workflow Steps\n1. **Telegram Trigger:** Listens for uploads.\n2. **Document Check:** Validates files; routes errors.\n3. **Get File:** Retrieves metadata.\n4. **HTTP Download:** Fetches content.\n5. **AI Extract:** OpenAI parses invoice fields.\n6. **Format Response:** Structures data.\n7. **Send Analysis:** Delivers to chat.\n## Setup Instructions\n1. **Telegram Bot:** Create via BotFather, add credentials.\n2. **OpenAI Agent:** Add API key and extraction prompt.\n3. **HTTP Node:** Set authentication.\n4. **Parser:** Define invoice schema.\n5. **Error Handling:** Configure fallbacks.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "80d92c1c-d7b6-47ae-8f9d-8520e61708a8",
      "name": "Nota Adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        112
      ],
      "parameters": {
        "color": 4,
        "width": 320,
        "height": 288,
        "content": "## Prerequisites\n- n8n instance\n- Telegram Bot Token\n- OpenAI API key\n## Customization\n- Database storage\n- Accounting software integration\n## Benefits\n- Eliminates manual entry\n- Reduces errors"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8c2bf80d-d1f6-4b32-bd5a-cf0b88f24786",
  "connections": {
    "c149851f-3c38-4827-b1e9-14dbdbdd9172": {
      "main": [
        [
          {
            "node": "b6c9a341-c390-4d8e-8ab7-ef7896bf87b4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b6433fae-ab23-4504-bf1c-07d98177799e": {
      "main": [
        [
          {
            "node": "e631a3ed-6930-4da7-a5dc-f33b4c852426",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e631a3ed-6930-4da7-a5dc-f33b4c852426": {
      "main": [
        [
          {
            "node": "a22e54b3-e4e0-4b67-8e8f-ef9a5f163fdb",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "267e3223-6e60-432e-bb6d-980c2821b0e5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "baead0ff-8676-4e77-9084-bd28484fc797": {
      "ai_languageModel": [
        [
          {
            "node": "c9bf8764-2bc9-4861-b477-bbb60d516f34",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "aebfd1a1-bb29-4dbe-af72-4a6e986d4f79": {
      "main": [
        [
          {
            "node": "c9bf8764-2bc9-4861-b477-bbb60d516f34",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a22e54b3-e4e0-4b67-8e8f-ef9a5f163fdb": {
      "main": [
        [
          {
            "node": "e93556dc-7af4-4e7d-9cb0-82aa0da39ed8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c9bf8764-2bc9-4861-b477-bbb60d516f34": {
      "main": [
        [
          {
            "node": "c149851f-3c38-4827-b1e9-14dbdbdd9172",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e93556dc-7af4-4e7d-9cb0-82aa0da39ed8": {
      "main": [
        [
          {
            "node": "aebfd1a1-bb29-4dbe-af72-4a6e986d4f79",
            "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, Resumen de IA

¿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 nodos12
Categoría2
Tipos de nodos9
Descripción de la dificultad

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

Autor
Cheng Siong Chin

Cheng Siong Chin

@cschin

Prof. Cheng Siong CHIN serves as Chair Professor in Intelligent Systems Modelling and Simulation in Newcastle University, Singapore. His academic credentials include an M.Sc. in Advanced Control and Systems Engineering from The University of Manchester and a Ph.D. in Robotics from Nanyang Technological University.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34