AutomationFlowsData & Sheets › Auto Invoice & Receipt OCR to Google Sheets – Drive, Gmail, & Telegram Triggers

Auto Invoice & Receipt OCR to Google Sheets – Drive, Gmail, & Telegram Triggers

ByDaniel Ng @danielng on n8n.io

Automatically process invoices and receipts using Gemini OCR, extracting data directly into Google Sheets from multiple sources including Google Drive, Gmail, and Telegram. This powerful workflow ensures your bookkeeping is always accurate, organized, and efficient,…

Event trigger★★★★☆ complexity25 nodesHTTP RequestGoogle SheetsGoogle DriveTelegram TriggerGmail TriggerGoogle Drive Trigger
Data & Sheets Trigger: Event Nodes: 25 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #3618 — we link there as the canonical source.

This workflow follows the Gmail Trigger → Google Drive recipe pattern — see all workflows that pair these two integrations.

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
{
  "id": "qClJP4aIscQySnQK",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "(Tung) OCR invoice extract to spreadsheet copy",
  "tags": [],
  "nodes": [
    {
      "id": "ceb8fcc7-c733-4842-8988-2f19695658e4",
      "name": "Prompt",
      "type": "n8n-nodes-base.set",
      "position": [
        2320,
        -1340
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "7bba23a4-9ff4-4c0f-9702-6de444b8701e",
      "name": "Move file to base64 string",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        2020,
        -1340
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "df138485-9a6a-4d3e-a1ca-1c9568b5e76f",
      "name": "Gemini API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2620,
        -1340
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "e104546f-cf93-43c4-b5b4-5c66b046a72e",
      "name": "JSON to string",
      "type": "n8n-nodes-base.set",
      "position": [
        2900,
        -1220
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "182783f8-5285-4506-aa7b-d6f1fdbf5492",
      "name": "Parse string",
      "type": "n8n-nodes-base.code",
      "position": [
        3200,
        -1220
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "ca6d6fc1-8fce-48da-9de5-2395ff4ee3e8",
      "name": "Add to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3500,
        -1220
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "5b512370-b6e8-4cb7-b4d3-333ba15ac666",
      "name": "Google Drive Get Receipt",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1720,
        -1340
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "76c34c54-8666-4b3d-bb3f-ae79a6847cde",
      "name": "Telegram Trigger Image",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        1060,
        -60
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "9e8e821f-b6f7-4014-937e-9fe734c0e9c9",
      "name": "Gmail Trigger",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        1060,
        -720
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "d3a929a9-441f-4896-9a98-d32f374c8a83",
      "name": "Split Out Binary Files",
      "type": "n8n-nodes-base.code",
      "position": [
        1940,
        -480
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "db81d68b-d937-47bd-adfc-215bd4797754",
      "name": "Loop Over Attachments",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        2100,
        -740
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "2cbb56fc-eb6a-4f61-8204-bcde99c164c4",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        1640,
        -620
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "97c167d3-db62-48ae-b9ab-4add617e1258",
      "name": "Loop Over Emails",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1400,
        -720
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "c4c4193a-983b-4f46-9d61-03ecff3157be",
      "name": "Wait For Saving",
      "type": "n8n-nodes-base.wait",
      "position": [
        3020,
        -720
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "df28230d-7d7d-4817-8aba-615a9a266ad5",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1400,
        -1360
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "f3ee46f7-b3a8-4dfd-8b1f-da92613d5fe9",
      "name": "Create File Name",
      "type": "n8n-nodes-base.code",
      "position": [
        2420,
        -720
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "d7bde712-ece9-4613-9771-379f99a2300d",
      "name": "Create File Name For Telegram",
      "type": "n8n-nodes-base.code",
      "position": [
        1400,
        -60
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "f564d3b2-9be8-4119-9cc2-b4a61809af9f",
      "name": "Google Drive Trigger New Files",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        1060,
        -1360
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "3f4adb77-2ab4-4e7f-b9d4-4b030aaf1f68",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        -800
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "8a9de5a7-0314-49d0-b87f-513bbb5e9531",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        -140
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "7b9dc2de-464d-4c76-9ec0-44717bf29753",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        -1460
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "56c7a141-3265-4528-9f5c-ad3326bcf84e",
      "name": "Google Save Files 2",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1740,
        -60
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "e7b8fa1b-9510-450d-a35e-4a0338efa9f0",
      "name": "Google Drive Save Files",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2720,
        -720
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "95dc537f-75c1-47dc-b929-838b63f97e25",
      "name": "Wait For Saving Data",
      "type": "n8n-nodes-base.wait",
      "position": [
        3820,
        -1220
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "d40ea975-5a33-485c-9811-7444181209ca",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        -1480
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "errorWorkflow": "7XxwbKvr4yHpGpKg",
    "executionOrder": "v1"
  },
  "versionId": "a6b663dd-a23e-4e18-abb8-65c23310056a",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Split Out Binary Files",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Loop Over Emails",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prompt": {
      "main": [
        [
          {
            "node": "Gemini API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini API": {
      "main": [
        [
          {
            "node": "JSON to string",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse string": {
      "main": [
        [
          {
            "node": "Add to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gmail Trigger": {
      "main": [
        [
          {
            "node": "Loop Over Emails",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "JSON to string": {
      "main": [
        [
          {
            "node": "Parse string",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Google Drive Get Receipt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait For Saving": {
      "main": [
        [
          {
            "node": "Loop Over Attachments",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create File Name": {
      "main": [
        [
          {
            "node": "Google Drive Save Files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Emails": {
      "main": [
        [
          {
            "node": "Loop Over Attachments",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add to Google Sheets": {
      "main": [
        [
          {
            "node": "Wait For Saving Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait For Saving Data": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Attachments": {
      "main": [
        [],
        [
          {
            "node": "Create File Name",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out Binary Files": {
      "main": [
        [
          {
            "node": "Loop Over Emails",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram Trigger Image": {
      "main": [
        [
          {
            "node": "Create File Name For Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive Save Files": {
      "main": [
        [
          {
            "node": "Wait For Saving",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive Get Receipt": {
      "main": [
        [
          {
            "node": "Move file to base64 string",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Move file to base64 string": {
      "main": [
        [
          {
            "node": "Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create File Name For Telegram": {
      "main": [
        [
          {
            "node": "Google Save Files 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive Trigger New Files": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Automatically process invoices and receipts using Gemini OCR, extracting data directly into Google Sheets from multiple sources including Google Drive, Gmail, and Telegram. This powerful workflow ensures your bookkeeping is always accurate, organized, and efficient,…

Source: https://n8n.io/workflows/3618/ — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

This workflow is perfect for recruiters, HR professionals, and startup founders who receive job applications by email and want to automate the process of parsing, matching, and evaluating resumes. If

Gmail Trigger, Airtable, HTTP Request +2
Data & Sheets

OCR receipts from Google Drive. Uses httpRequest, googleDriveTrigger, googleDrive, googleSheets. Event-driven trigger; 10 nodes.

HTTP Request, Google Drive Trigger, Google Drive +1
Data & Sheets

This workflow allows you to recognize a folder with receipts or invoices (make sure your files are in .pdf, .png, or .jpg format). The workflow can be triggered via the "Test workflow" button, and it

HTTP Request, Google Drive Trigger, Google Drive +1
Data & Sheets

This workflow is perfect for operations teams, accountants, e-commerce businesses, or finance managers who regularly process digital invoices and need to automate data extraction and record-keeping.

Google Drive Trigger, Google Drive, HTTP Request +1
Data & Sheets

PCN. Uses googleSheets, httpRequest, @n-octo-n/n8n-nodes-json-database, itemLists. Event-driven trigger; 60 nodes.

Google Sheets, HTTP Request, @N Octo N/N8N Nodes Json Database +3