AutomationFlowsAI & RAG › Automated Petroleum Billing (local Files + Pdfco + Gemini)

Automated Petroleum Billing (local Files + Pdfco + Gemini)

Automated Petroleum Billing (Local Files + PDFco + Gemini). Uses readBinaryFile, spreadsheetFile, httpRequest. Manual trigger; 10 nodes.

Manual trigger★★★★☆ complexity10 nodesRead Binary FileSpreadsheet FileHTTP Request
AI & RAG Trigger: Manual Nodes: 10 Complexity: ★★★★☆ Added:

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": "Automated Petroleum Billing (Local Files + PDFco + Gemini)",
  "nodes": [
    {
      "parameters": {
        "filePath": "/Users/neeraj.g4/Desktop/NeerajWorkspace/docker/data/finance_usecase/Customer_PO_data_for_SO_creation.xlsx"
      },
      "name": "ReadSOExcel",
      "type": "n8n-nodes-base.readBinaryFile",
      "typeVersion": 1,
      "position": [
        -600,
        150
      ]
    },
    {
      "parameters": {
        "sheetName": "SalesOrders"
      },
      "name": "ParseSOExcel",
      "type": "n8n-nodes-base.spreadsheetFile",
      "typeVersion": 1,
      "position": [
        -400,
        150
      ]
    },
    {
      "parameters": {
        "filePath": "/Users/neeraj.g4/Desktop/NeerajWorkspace/docker/data/finance_usecase/Signed Purchase Order 4510888536.PDF"
      },
      "name": "ReadPDFFile",
      "type": "n8n-nodes-base.readBinaryFile",
      "typeVersion": 1,
      "position": [
        -600,
        0
      ]
    },
    {
      "parameters": {
        "authentication": "headerAuth",
        "headerAuth": {
          "name": "x-api-key",
          "value": "guptneer09@gmail.com_Er1yw6qEmaDJCbL1GMqDK5R2nbW1kFS9QSXoWX5HRO0YPYL7eWHjewtX64h1ByBP"
        },
        "url": "https://app.pdf.co/",
        "method": "POST",
        "jsonParameters": true,
        "bodyParametersJson": "{}",
        "options": {},
        "binaryData": [
          {
            "propertyName": "file",
            "binaryPropertyName": "data"
          }
        ]
      },
      "name": "PDFco Convert to Text",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 1,
      "position": [
        -400,
        0
      ]
    },
    {
      "parameters": {
        "requestMethod": "POST",
        "url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent",
        "authentication": "headerAuth",
        "jsonParameters": true,
        "bodyParametersJson": "{\"contents\":[{\"parts\":[{\"text\":\"Extract customer, PO number, items, quantity, BOM info, PO date from this text:\\n{{ $json[\\\"body\\\"] }}\"}]}]}",
        "options": {}
      },
      "name": "GeminiPOParser",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 1,
      "position": [
        -200,
        0
      ],
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "functionCode": "// This is a placeholder for SO validation logic\n// Ideally compare Gemini output with Excel SO data\nreturn items;"
      },
      "name": "ValidateSO",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [
        0,
        75
      ]
    },
    {
      "parameters": {
        "functionCode": "// Placeholder for billing request validation\nreturn items;"
      },
      "name": "ValidateBillingRequest",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [
        200,
        75
      ]
    },
    {
      "parameters": {
        "functionCode": "// Simulate RPA invoice generation in Navision\nreturn items;"
      },
      "name": "NavisionRPABot",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [
        400,
        75
      ]
    },
    {
      "parameters": {
        "functionCode": "// Simulate IRN wait and invoice signing\nreturn items;"
      },
      "name": "IRNSignAndEmail",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [
        600,
        75
      ]
    },
    {
      "parameters": {
        "functionCode": "// Update billing tracker dashboard\nreturn items;"
      },
      "name": "UpdateDashboard",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [
        800,
        75
      ]
    }
  ],
  "connections": {
    "ReadSOExcel": {
      "main": [
        [
          {
            "node": "ParseSOExcel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ParseSOExcel": {
      "main": [
        [
          {
            "node": "ValidateSO",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ReadPDFFile": {
      "main": [
        [
          {
            "node": "PDFco Convert to Text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "PDFco Convert to Text": {
      "main": [
        [
          {
            "node": "GeminiPOParser",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GeminiPOParser": {
      "main": [
        [
          {
            "node": "ValidateSO",
            "type": "main",
            "index": 0
          },
          {
            "node": "ValidateBillingRequest",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ValidateBillingRequest": {
      "main": [
        [
          {
            "node": "NavisionRPABot",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "NavisionRPABot": {
      "main": [
        [
          {
            "node": "IRNSignAndEmail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IRNSignAndEmail": {
      "main": [
        [
          {
            "node": "UpdateDashboard",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

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

Automated Petroleum Billing (Local Files + PDFco + Gemini). Uses readBinaryFile, spreadsheetFile, httpRequest. Manual trigger; 10 nodes.

Source: https://gist.github.com/codelord09/67230776f83d7520885f069de84b2fd2 — 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

Use cases Auto-generate subtitles for training or educational videos Translate videos into multiple languages for global reach Create accessibility-friendly content with minimal effort Build a backend

HTTP Request, Execute Command, Read Binary File +2
AI & RAG

Gemini Prompt Pre-Processor (Pro V2). Uses start, httpRequest, returnJson. Manual trigger; 10 nodes.

Start, HTTP Request, Return Json
AI & RAG

Gemini Prompt Pre-Processor (Pro V3). Uses start, httpRequest, returnJson. Manual trigger; 10 nodes.

Start, HTTP Request, Return Json
AI & RAG

Gemini Prompt Pre-Processor. Uses start, httpRequest, returnJson. Manual trigger; 6 nodes.

Start, HTTP Request, Return Json
AI & RAG

This comprehensive n8n automation template orchestrates a complete end-to-end workflow for generating engaging short-form Point-of-View (POV) style videos using multiple AI services and automatically

HTTP Request, OpenAI, Google Drive +4