AutomationFlowsAI & RAG › Invoice Verification and Validation with Gmail, Drive, Sheets and OCR AI

Invoice Verification and Validation with Gmail, Drive, Sheets and OCR AI

ByDhrumil Patel @itechdp on n8n.io

Tired of manually verifying purchase order invoices every single day? This plug-and-play n8n automation template saves your accounts team hours of work by automatically downloading, storing, extracting, and validating invoice data against your master item sheet — all without…

Cron / scheduled trigger★★★★★ complexityAI-powered47 nodesOpenRouter ChatAgentGoogle SheetsGoogle DriveGmail
AI & RAG Trigger: Cron / scheduled Nodes: 47 Complexity: ★★★★★ AI nodes: yes Added:

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

This workflow follows the Agent → Gmail 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": "WAoelkm3KLBC3HS5",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Invoice Process & Validation - n8n Template",
  "tags": [
    {
      "id": "1z2CftJo81tuGP80",
      "createdAt": "2025-04-22T11:45:54.057Z",
      "updatedAt": "2025-04-22T11:45:54.057Z"
    }
  ],
  "nodes": [
    {
      "id": "1d22cbef-a424-4c22-9365-9b5925de2dd5",
      "name": "Extract from File",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -1240,
        320
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5ed93d14-2ccf-4608-af7e-0de45c8a8b4f",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        -800,
        300
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "801a89a2-1033-46ce-a514-da48581ad7aa",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        20,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "13284bb7-9e59-42b8-ac39-d1a0a3694a5a",
      "name": "Post-Processing",
      "type": "n8n-nodes-base.code",
      "position": [
        -380,
        60
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "e7e86334-ac7b-43d0-b518-68111c358ad6",
      "name": "Text Extractor",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -820,
        140
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 1.8
    },
    {
      "id": "320d2a1f-92b3-46b7-ae9e-6b025c50393e",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        -200,
        60
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "14320290-f059-4e23-a9b3-dac08dee0038",
      "name": "Send Raw Text Again",
      "type": "n8n-nodes-base.set",
      "position": [
        0,
        240
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "a482f4f6-02c5-4dc5-8101-355e44870a14",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -1000,
        260
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "2b8174d9-6ea3-4b54-a556-856b8bf2ce01",
      "name": "Send Invoice Data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        480,
        0
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "de512a48-39b7-49f8-a149-c50a188f3067",
      "name": "Fetch Master Data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        680,
        0
      ],
      "parameters": {},
      "executeOnce": true,
      "typeVersion": 4.5
    },
    {
      "id": "9edf61a4-5675-4497-9101-a3971f643f7c",
      "name": "Update Results",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1120,
        0
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "3afe5d8b-71a1-4678-a84a-038820b172ae",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1760,
        260
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "cd7afab5-1834-44d0-b7d7-8be7ca6e927d",
      "name": "Update Totals",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1540,
        0
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "aee40f65-662f-468f-b78b-d21a7ba1e35e",
      "name": "Get last Index",
      "type": "n8n-nodes-base.code",
      "position": [
        1320,
        0
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "eaccc050-0cb9-4c0a-b51c-a65519543e28",
      "name": "Generate Unique Key",
      "type": "n8n-nodes-base.set",
      "position": [
        220,
        0
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "52b6e590-13aa-43de-b926-73ba35119749",
      "name": "Validation",
      "type": "n8n-nodes-base.code",
      "position": [
        940,
        0
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "d16d5797-7edb-4a8a-bd87-37318a262635",
      "name": "Upload Invoices",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1240,
        60
      ],
      "parameters": {},
      "executeOnce": false,
      "retryOnFail": true,
      "typeVersion": 3
    },
    {
      "id": "7ff71799-9511-420f-8e5d-d2bedee65435",
      "name": "Get Attachments",
      "type": "n8n-nodes-base.code",
      "position": [
        -1480,
        160
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "08a26b26-40a6-40a3-9b24-d4213c5ac99d",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        -1700,
        160
      ],
      "parameters": {},
      "notesInFlow": false,
      "typeVersion": 3.1
    },
    {
      "id": "4b04705c-41bd-4e72-b82b-e45ed81ed421",
      "name": "Create Month Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -3020,
        180
      ],
      "parameters": {},
      "executeOnce": true,
      "typeVersion": 3
    },
    {
      "id": "57fe45ba-46d0-4523-9898-98e1c4d06771",
      "name": "Create Day Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -2140,
        160
      ],
      "parameters": {},
      "executeOnce": true,
      "typeVersion": 3
    },
    {
      "id": "c345741a-4b01-4c59-98ff-4d671e0ee6b2",
      "name": "Search Month Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -3440,
        180
      ],
      "parameters": {},
      "executeOnce": true,
      "typeVersion": 3,
      "alwaysOutputData": true
    },
    {
      "id": "64fecc15-e87b-41f0-ad3d-7c9aae9089f6",
      "name": "Month Folder Found?",
      "type": "n8n-nodes-base.if",
      "position": [
        -3240,
        180
      ],
      "parameters": {},
      "executeOnce": true,
      "typeVersion": 2.2
    },
    {
      "id": "d1ff1737-5edb-4c48-95a1-31a3b6158658",
      "name": "Search Day Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -2800,
        180
      ],
      "parameters": {},
      "executeOnce": true,
      "typeVersion": 3,
      "alwaysOutputData": true
    },
    {
      "id": "7a119c08-83f3-4cfa-b5af-6a2c6eb96db2",
      "name": "Day Folder Found?",
      "type": "n8n-nodes-base.if",
      "position": [
        -2580,
        180
      ],
      "parameters": {},
      "executeOnce": true,
      "typeVersion": 2.2
    },
    {
      "id": "ed86ba5d-6c46-4c9e-bfdc-c3f3a0ff1bb2",
      "name": "Get Parent Folder ID",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -2360,
        160
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "9299234c-fbe3-4b8d-a4f1-c2be9e3e8475",
      "name": "Get Day Folder ID",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1920,
        160
      ],
      "parameters": {},
      "executeOnce": true,
      "typeVersion": 3
    },
    {
      "id": "d06008eb-b173-41b6-8750-01482ae99978",
      "name": "Today's Date",
      "type": "n8n-nodes-base.code",
      "disabled": true,
      "position": [
        -4340,
        260
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "a0c8c338-0db6-4136-8ec6-61be5026a071",
      "name": "Date & Time",
      "type": "n8n-nodes-base.dateTime",
      "disabled": true,
      "position": [
        -4560,
        260
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "cb7c60c4-7754-4a58-a93f-8c7e38910317",
      "name": "Read Message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -3680,
        180
      ],
      "parameters": {},
      "executeOnce": true,
      "typeVersion": 2.1
    },
    {
      "id": "42702132-3f06-4013-912e-8e203e751a4f",
      "name": "Date From Email Subject",
      "type": "n8n-nodes-base.code",
      "position": [
        -3900,
        180
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "f462ff4f-d8e5-4055-b154-b27da3c05810",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -4780,
        160
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "fb3658be-c114-45e3-8277-265fca27bdf7",
      "name": "Gmail Trigger",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -4100,
        260
      ],
      "parameters": {},
      "executeOnce": true,
      "typeVersion": 2.1
    },
    {
      "id": "d5f01e22-2920-4763-ad33-cf5af192ef8e",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -4720,
        260
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "cb99d7e4-2f71-4553-8636-5cb29b9f5ba7",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -4140,
        120
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "3577a2e3-5c6b-4871-bf50-568eda532e71",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3480,
        120
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "aede2ed7-98c0-4f4c-853f-adfb6c7c7379",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2820,
        120
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "02652793-e97c-4125-af9e-9dcdc115adc1",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1960,
        100
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "55392a23-4ee8-404e-b316-4f693a28679c",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1300,
        0
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "d908e128-4ce2-433c-8d07-7a45a43f9d66",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1300,
        260
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "79afcd7b-c925-418a-a076-1186a6f5f95e",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1040,
        60
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "4a071404-9e78-4d11-baee-ef19b9b91323",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -420,
        0
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "e1a063cc-b1cf-492e-b395-b051786bde66",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -20,
        -60
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "a3d4be55-4ff6-413f-9b83-d22d7fa7e946",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        -80
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "f9d7132f-c9a3-49f6-9a7b-c7a6851bbb06",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        -80
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "e7e7b9e0-3fdf-45e3-9ae1-4979ba55a028",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1300,
        -80
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "ee01bd07-ab06-4ab2-812d-f0ea1fb77c72",
      "name": "Notify",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -980,
        -120
      ],
      "parameters": {},
      "typeVersion": 2.1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "532de742-f619-4951-8521-541dbd3b8f81",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Send Raw Text Again",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Get Attachments",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Generate Unique Key",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validation": {
      "main": [
        [
          {
            "node": "Update Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Date & Time": {
      "main": [
        [
          {
            "node": "Today's Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Message": {
      "main": [
        [
          {
            "node": "Search Month Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Today's Date": {
      "main": [
        [
          {
            "node": "Gmail Trigger",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gmail Trigger": {
      "main": [
        [
          {
            "node": "Date From Email Subject",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Update Totals": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get last Index": {
      "main": [
        [
          {
            "node": "Update Totals",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Text Extractor": {
      "main": [
        [
          {
            "node": "Post-Processing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Results": {
      "main": [
        [
          {
            "node": "Get last Index",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Attachments": {
      "main": [
        [
          {
            "node": "Upload Invoices",
            "type": "main",
            "index": 0
          },
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Notify",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Text Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Post-Processing": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Date & Time",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Day Folder": {
      "main": [
        [
          {
            "node": "Get Day Folder ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Day Folder Found?": {
      "main": [
        [
          {
            "node": "Get Parent Folder ID",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get Day Folder ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Master Data": {
      "main": [
        [
          {
            "node": "Validation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Day Folder ID": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search Day Folder": {
      "main": [
        [
          {
            "node": "Day Folder Found?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Invoice Data": {
      "main": [
        [
          {
            "node": "Fetch Master Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Month Folder": {
      "main": [
        [
          {
            "node": "Search Day Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Unique Key": {
      "main": [
        [
          {
            "node": "Send Invoice Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Month Folder Found?": {
      "main": [
        [
          {
            "node": "Create Month Folder",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Search Day Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search Month Folder": {
      "main": [
        [
          {
            "node": "Month Folder Found?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Raw Text Again": {
      "main": [
        [
          {
            "node": "Text Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Parent Folder ID": {
      "main": [
        [
          {
            "node": "Create Day Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Text Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Date From Email Subject": {
      "main": [
        [
          {
            "node": "Read Message",
            "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

Tired of manually verifying purchase order invoices every single day? This plug-and-play n8n automation template saves your accounts team hours of work by automatically downloading, storing, extracting, and validating invoice data against your master item sheet — all without…

Source: https://n8n.io/workflows/4860/ — 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

This workflow automates the creation, rendering, approval, and posting of TikTok-style POV (Point of View) videos to Instagram, with cross-posting to Facebook and YouTube. It eliminates manual video p

OpenAI Chat, Output Parser Item List, HTTP Request +10
AI & RAG

2-Utility-SaveInvoices_template. Uses agent, googleSheets, httpRequest, googleDrive. Scheduled trigger; 26 nodes.

Agent, Google Sheets, HTTP Request +4
AI & RAG

This n8n template demonstrates how to use AI to fully automate the generation and scheduling of X (formerly Twitter) content based on a specific, predefined persona.

OpenRouter Chat, Agent, Output Parser Structured +4
AI & RAG

This n8n automation workflow automates the creation, scripting, production, and posting of YouTube videos. It leverages AI (OpenAI), image generation (PIAPI), video rendering (Shotstack), and platform

Agent, OpenAI Chat, Airtable Tool +7
AI & RAG

The Multi-Model Agency Content Engine is a high-performance editorial system designed for agencies. It solves the "blank page" problem by alternating between real-world social proof and strategic expe

Google Sheets, Gmail, Google Drive +6