DocSumo-Rechnungsparser

Fortgeschritten

Dies ist ein Invoice Processing, AI Summarization-Bereich Automatisierungsworkflow mit 7 Nodes. Hauptsächlich werden Code, FormTrigger, HttpRequest, ConvertToFile und andere Nodes verwendet. Mit DocSumo Rechnungsdaten extrahieren, strukturieren und in Excel exportieren

Voraussetzungen
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "5s26gAyizRhbNI15",
  "meta": {
    "instanceId": "2d34387799014884b6bb4a0dc8b683ee92ad2bcf5aadb21177a0062d65f47540"
  },
  "name": "DocSumo Invoice Parser",
  "tags": [],
  "nodes": [
    {
      "id": "a35d21e3-7139-4a75-9deb-04a61e21ab20",
      "name": "Bei Formularübermittlung",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        40,
        -100
      ],
      "webhookId": "468f964f-3060-4d4d-a0f0-225e1d6eddac",
      "parameters": {
        "options": {},
        "formTitle": "file",
        "formFields": {
          "values": [
            {
              "fieldType": "file",
              "fieldLabel": "file",
              "multipleFiles": false
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "c5ebb140-2292-424a-81e9-3438d7142673",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        260,
        -100
      ],
      "parameters": {
        "url": "https://app.docsumo.com/api/v1/eevee/apikey/upload/",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {
              "followRedirects": false
            }
          }
        },
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "type",
              "value": "invoice"
            },
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "file"
            },
            {
              "name": "skip_review",
              "value": "true"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {}
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b76f3d26-c582-4c87-b2f7-9f973ecf6dd0",
      "name": "HTTP Request1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        440,
        -100
      ],
      "parameters": {
        "url": "=https://app.docsumo.com/api/v1/eevee/apikey/documents/detail/{{ $json.data.document[0].doc_id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "78a90dab-233f-42f9-9d97-2a8220c77ceb",
      "name": "HTTP Request2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        620,
        -100
      ],
      "parameters": {
        "url": "=https://app.docsumo.com/api/v1/eevee/apikey/data/simplified/{{ $json.data.document.doc_id }}/",
        "options": {
          "response": {
            "response": {}
          }
        },
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "accept",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d5f56d5b-b7e6-41f1-9e7a-81c97eb2c191",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        780,
        -100
      ],
      "parameters": {
        "jsCode": "// Process each document item\nconst processInvoice = (doc) => {\n  // Extract header information (excluding Document Title and Processed At)\n  const headerData = {\n    \"Invoice Number\": doc?.data?.[\"Basic Information\"]?.[\"Invoice Number\"]?.value || \"\",\n    \"Issue Date\": doc?.data?.[\"Basic Information\"]?.[\"Issue Date\"]?.value || \"\",\n    \"Order ID\": doc?.data?.[\"Basic Information\"]?.[\"Order Id/Tracking No\"]?.value || \"\",\n    \"Payment Terms\": doc?.data?.[\"Basic Information\"]?.[\"Terms\"]?.value || \"\",\n    \"Buyer Name\": doc?.data?.[\"Buyer Detail\"]?.[\"Name\"]?.value || \"\",\n    \"Buyer Address\": doc?.data?.[\"Buyer Detail\"]?.[\"Address\"]?.value || \"\",\n    \"Buyer GST\": doc?.data?.[\"Buyer Detail\"]?.[\"GST/ VAT Number\"]?.value || \"\",\n    \"Seller Name\": doc?.data?.[\"Seller Detail\"]?.[\"Name\"]?.value || \"\",\n    \"Seller Address\": doc?.data?.[\"Seller Detail\"]?.[\"Address\"]?.value || \"\",\n    \"Seller GST\": doc?.data?.[\"Seller Detail\"]?.[\"GST/ VAT Number\"]?.value || \"\",\n    \"Subtotal\": doc?.data?.[\"GST & Amount\"]?.[\"Subtotal\"]?.value || 0,\n    \"Tax Total\": doc?.data?.[\"GST & Amount\"]?.[\"Tax Total\"]?.value || 0,\n    \"Total Due\": doc?.data?.[\"GST & Amount\"]?.[\"Total Due\"]?.value || 0\n  };\n\n  // Process line items with all original columns\n  return doc?.data?.Table?.[\"Line Items\"]?.map(item => ({\n    ...headerData,  // Include all header fields\n    \"Sr No.\": item?.[\"Sr No.\"]?.value || \"\",\n    \"Item Code\": item?.[\"Item Code\"]?.value || \"\",\n    \"Item Desc\": item?.Description?.value || \"\",\n    \"HSN/SAC Code\": item?.HSN?.value || \"\",\n    \"Qty\": item?.Quantity?.value || 0,\n    \"Unit Price (INR)\": item?.[\"Unit Price\"]?.value || 0,\n    \"Per\": item?.[\"Per\"]?.value || \"\",\n    \"UoM\": item?.UoM?.value || \"\",\n    \"Net Amount (INR)\": item?.[\"Subtotal Line\"]?.value || 0,\n    \"Tax Rate\": item?.[\"Tax Rate Line\"]?.value || \"\",\n    \"TGST\": item?.TGST?.value || 0,\n    \"CGST\": item?.CGST?.value || 0,\n    \"SGST\": item?.SGST?.value || 0,\n    \"TCS\": item?.TCS?.value || 0,\n    \"Gross Amt (INR)\": item?.[\"Gross Amount\"]?.value || 0,\n    \"Delivery Date\": item?.[\"Delivery Date\"]?.value || \"\"\n  })) || [];\n};\n\n// Main processing\nconst allResults = [];\nfor (const item of items) {\n  try {\n    const doc = Array.isArray(item.json) ? item.json[0] : item.json;\n    if (doc?.data) {\n      allResults.push(...processInvoice(doc));\n    }\n  } catch (error) {\n    console.log(`Error processing item: ${error.message}`);\n  }\n}\n\n// Return formatted results\nreturn allResults.length > 0 \n  ? allResults.map(result => ({ json: result }))\n  : [{ json: { error: \"No valid data processed\", raw: items[0]?.json }}];"
      },
      "typeVersion": 2
    },
    {
      "id": "ca39a45f-5ea1-40a2-a68f-49e62ead1973",
      "name": "In Datei konvertieren",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        980,
        -100
      ],
      "parameters": {
        "options": {},
        "operation": "xls",
        "binaryPropertyName": "="
      },
      "typeVersion": 1.1
    },
    {
      "id": "01c14879-d3f3-4185-a30c-609de127c0d7",
      "name": "Haftnotiz",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        40
      ],
      "parameters": {
        "height": 100,
        "content": "PLease adjust Code ou can customize header or line item extraction by editing the Code node as needed."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2c8d10c9-6226-47ef-ad9d-9690fed6df9b",
  "connections": {
    "d5f56d5b-b7e6-41f1-9e7a-81c97eb2c191": {
      "main": [
        [
          {
            "node": "ca39a45f-5ea1-40a2-a68f-49e62ead1973",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c5ebb140-2292-424a-81e9-3438d7142673": {
      "main": [
        [
          {
            "node": "b76f3d26-c582-4c87-b2f7-9f973ecf6dd0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b76f3d26-c582-4c87-b2f7-9f973ecf6dd0": {
      "main": [
        [
          {
            "node": "78a90dab-233f-42f9-9d97-2a8220c77ceb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "78a90dab-233f-42f9-9d97-2a8220c77ceb": {
      "main": [
        [
          {
            "node": "d5f56d5b-b7e6-41f1-9e7a-81c97eb2c191",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a35d21e3-7139-4a75-9deb-04a61e21ab20": {
      "main": [
        [
          {
            "node": "c5ebb140-2292-424a-81e9-3438d7142673",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Fortgeschritten - Rechnungsverarbeitung, KI-Zusammenfassung

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes7
Kategorie2
Node-Typen5
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34