AutomationFlowsData & Sheets › Extract and Organize Receipt Data for Expense Tracking with Vlm Run and Google

Extract and Organize Receipt Data for Expense Tracking with Vlm Run and Google

ByShahrear @shahrear on n8n.io

Transform your expense tracking with automated AI receipt processing that extracts data and organizes it instantly. Monitors Google Drive for new receipt uploads (images/PDFs) Downloads and processes files automatically Extracts key data using verified VLM Run node (merchant,…

Event trigger★★★★☆ complexity9 nodesGoogle Drive TriggerGoogle Drive@Vlm Run/N8N Nodes VlmrunGoogle Sheets
Data & Sheets Trigger: Event Nodes: 9 Complexity: ★★★★☆ Added:

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

This workflow follows the Google Drive → Google Drive Trigger 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": "UzjlcNQAWoWPTBlh",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "My workflow",
  "tags": [],
  "nodes": [
    {
      "id": "6e82969f-c696-4544-805b-acf50b525894",
      "name": "\ud83e\uddfe Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -176,
        -16
      ],
      "parameters": {
        "color": 7,
        "width": 400,
        "height": 680,
        "content": "## \ud83e\uddfe AI Receipt Data Extraction Workflow\n\n**Overview:**\nAutomates receipt processing for expense management. Upload receipts to Google Drive \u2192 VLM Run extracts data \u2192 Saves to spreadsheet.\n\n**Key Features:**\n- \ud83d\udcc1 Auto-monitors Google Drive folder\n- \ud83e\udd16 Extracts merchant, amount, date, currency\n- \ud83d\udcca Saves structured data to Google Sheets\n- \ud83d\udcf1 Mobile-friendly uploads\n\n**Perfect for:**\n- Business expense reporting\n- Personal finance tracking\n- Accounting automation\n- Travel expenses\n\n**Requirements:**\n- VLM Run API\n- Google Drive & Sheets OAuth2"
      },
      "typeVersion": 1
    },
    {
      "id": "09152ec5-6101-441d-a58a-40b8644b2368",
      "name": "\ud83d\udcc1 Input Processing Documentation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        256,
        -16
      ],
      "parameters": {
        "color": 7,
        "width": 400,
        "height": 680,
        "content": "## \ud83d\udcc1 Input Processing\n\n**Monitors & downloads receipt files from Google Drive.**\n\n**Process:**\n1. Watches designated Drive folder\n2. Auto-triggers on new uploads\n3. Downloads files for AI processing\n\n**Supported Formats:**\n- Images (JPG, PNG, WEBP)\n- PDF documents\n- Mobile camera uploads\n- Scanned receipts"
      },
      "typeVersion": 1
    },
    {
      "id": "bec1401d-79b0-4192-b40a-0be5afe121f9",
      "name": "\ud83e\udd16 AI Extraction Documentation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        672,
        -16
      ],
      "parameters": {
        "width": 400,
        "height": 680,
        "content": "## \ud83e\udd16 VLM Run Receipt Extraction\n\n**Uses VLM Run node to extract structured data from receipt images/PDFs.**\n\n**Extracts:**\n- Merchant name\n- Customer info\n- Total amount\n- Currency\n- Transaction date\n\n**Features:**\n- Handles poor quality images\n- Various receipt formats\n- OCR text recognition"
      },
      "typeVersion": 1
    },
    {
      "id": "77f8bd06-a94c-407e-abf7-8a632c3cb847",
      "name": "\ud83d\udcca Storage Documentation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1088,
        -16
      ],
      "parameters": {
        "color": 7,
        "width": 420,
        "height": 680,
        "content": "## \ud83d\udcca Data Storage\n\n**Structures and stores extracted data in Google Sheets.**\n\n**Features:**\n- Clean, organized format\n- Centralized expense database\n- Auto-appends new entries\n- Analysis-ready data\n\n**Data Fields:**\n- Customer name\n- Merchant name\n- Amount & currency\n- Transaction date\n\n**Benefits:**\n- Real-time tracking\n- Easy exports\n- Mobile access"
      },
      "typeVersion": 1
    },
    {
      "id": "1546d13f-a9c4-44ba-a477-d3f62dc431f8",
      "name": "Monitor Receipt Uploads",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "notes": "Monitors Google Drive folder for new receipt uploads and triggers processing automatically.",
      "position": [
        304,
        464
      ],
      "parameters": {
        "event": "fileCreated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "list",
          "value": "1reWORwI1tMa-eGB75NCXq9eRw4CiQIhX",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1reWORwI1tMa-eGB75NCXq9eRw4CiQIhX",
          "cachedResultName": "n8n"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2d9461de-94cd-470f-866a-da37ea9b9e66",
      "name": "Download  Receipt File",
      "type": "n8n-nodes-base.googleDrive",
      "notes": "Downloads receipt files from Google Drive for AI processing.",
      "position": [
        512,
        464
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {
          "binaryPropertyName": "data"
        },
        "operation": "download"
      },
      "typeVersion": 3
    },
    {
      "id": "2aade65f-8084-4206-b87c-9378790c7c26",
      "name": "VLM Run Receipt Parser",
      "type": "@vlm-run/n8n-nodes-vlmrun.vlmRun",
      "notes": "Uses VLM AI to extract merchant name, amount, currency, and date from receipt images.",
      "position": [
        832,
        464
      ],
      "parameters": {
        "domain": "document.receipt"
      },
      "credentials": {
        "vlmRunApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "bfa34d27-9b1a-4084-ad73-fe51b355e61b",
      "name": "Format Receipt Data",
      "type": "n8n-nodes-base.set",
      "notes": "Transforms AI-extracted receipt data into clean, structured format for spreadsheet storage.",
      "position": [
        1152,
        464
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "Customer",
              "value": "={{ $json.response.customer_name }}"
            },
            {
              "name": "Merchant",
              "value": "={{ $json.response.merchant_name }}"
            },
            {
              "name": "Amount",
              "value": "={{ $json.response.total }}"
            },
            {
              "name": "Currency",
              "value": "={{ $json.response.currency }}"
            },
            {
              "name": "Date",
              "value": "={{ $json.response.transaction_date }}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 1
    },
    {
      "id": "689e122f-077d-4f53-96ab-4b9d76b42fe3",
      "name": "Save to Expense Database",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Automatically saves extracted receipt data to Google Sheets for expense tracking.",
      "position": [
        1328,
        464
      ],
      "parameters": {
        "columns": {
          "value": {
            "Date": "={{ $json.Date }}",
            "Amount": "={{ $json.Amount }}",
            "Currency": "={{ $json.Currency }}",
            "Customer": "={{ $json.Customer }}",
            "Merchant": "={{ $json.Merchant }}"
          },
          "schema": [
            {
              "id": "Customer",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Customer",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Merchant",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Merchant",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Amount",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Amount",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Currency",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Currency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Customer"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/11_VjMdhv_JN2eSRZiw_t0dIN-yShkn2jlCDwiG8eb14/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "11_VjMdhv_JN2eSRZiw_t0dIN-yShkn2jlCDwiG8eb14",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/11_VjMdhv_JN2eSRZiw_t0dIN-yShkn2jlCDwiG8eb14/edit?usp=drivesdk",
          "cachedResultName": "Receipt Data"
        }
      },
      "typeVersion": 4.6
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e051df12-21f0-4df9-bb0f-a98842e2c734",
  "connections": {
    "Format Receipt Data": {
      "main": [
        [
          {
            "node": "Save to Expense Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download  Receipt File": {
      "main": [
        [
          {
            "node": "VLM Run Receipt Parser",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "VLM Run Receipt Parser": {
      "main": [
        [
          {
            "node": "Format Receipt Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Monitor Receipt Uploads": {
      "main": [
        [
          {
            "node": "Download  Receipt File",
            "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

Transform your expense tracking with automated AI receipt processing that extracts data and organizes it instantly. Monitors Google Drive for new receipt uploads (images/PDFs) Downloads and processes files automatically Extracts key data using verified VLM Run node (merchant,…

Source: https://n8n.io/workflows/5051/ — 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 contains community nodes that are only compatible with the self-hosted version of n8n. Monitors Google Drive for new driver license image uploads Downloads and processes images using VLM

@Vlm Run/N8N Nodes Vlmrun, Google Drive Trigger, Google Sheets +1
Data & Sheets

Automatically process healthcare claims into structured Google Sheets entries with VLM Run extraction Monitors Google Drive for new files in a target folder Downloads the file inside n8n for processin

@Vlm Run/N8N Nodes Vlmrun, Google Sheets, Google Drive +1
Data & Sheets

Automatically process Construction Blueprints into structured Google Sheets entries with VLM extraction

@Vlm Run/N8N Nodes Vlmrun, Google Sheets, Google Drive +1
Data & Sheets

Process Physician Orders into Google Sheets with VLM Run AI Extraction

@Vlm Run/N8N Nodes Vlmrun, Google Sheets, Google Drive +1
Data & Sheets

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 ensu

HTTP Request, Google Sheets, Google Drive +3