Extract,Save Invoice Data from Google Drive and send to Sheets using AI

This workflow automates the extraction of structured invoice data from PDF files placed in a Google Drive folder and saves the results into a Google Sheet. It uses Dumpling AI's document extraction API to parse key fields like order number, line items, totals, and addresses. This is ideal for accounting teams, procurement departments, or anyone handling a high volume of supplier invoices.

Node Breakdown

  • Google Drive Trigger – Watch Folder for New Files (Google Drive Trigger) — OAuth2. Polls a specified Google Drive folder every minute and triggers the workflow when a new file is created.
  • Download Invoice File (Google Drive) — OAuth2. Downloads the newly created file from Drive using its file ID ($json.id).
  • Convert invoice File to Base64 (Extract From File) — No auth. Converts the downloaded file binary to a base64 string for API submission.
  • Send file to Dumpling AI for Data Extraction (HTTP Request) — Header Auth. Sends a POST request to https://app.dumplingai.com/api/v1/extract-document with a JSON body containing the base64 file and a prompt instructing the AI to extract order number, document date, PO number, shipping/sold-to details, line items, and total amounts. The API key is passed via an HTTP header credential.
  • Parse Dumpling AI JSON Response (Code) — No auth. Executes JavaScript to parse the results field from the API response (a JSON string) into a structured object.
  • Split line Items from Invoice (Split Out) — No auth. Splits the items array into separate items so each line item becomes a row in the spreadsheet.
  • Save Data to Google Sheet (Google Sheets) — OAuth2. Appends a row to the target sheet with all extracted fields mapped to columns (Order number, Document Date, PO number, Sold to/Ship to names and addresses, Model, Description, Quantity, Unit Price, Total Price).

Setup Instructions

  1. Google Services: You need a Google account with access to Google Drive and Google Sheets. Create a Google Drive folder for incoming invoices and a Google Sheet (with headers matching the column names above). In n8n, use OAuth2 credentials for both the Google Drive and Google Sheets nodes.
  2. Dumpling AI: Sign up for a Dumpling AI account and obtain an API key. In n8n, create an HTTP Header Auth credential with the key name (e.g., Authorization) and value (e.g., Bearer your-api-key).
  3. Workflow Configuration: Update the folder ID in the Google Drive Trigger node, the document ID and sheet name in the Google Sheets node, and ensure the Dumpling AI endpoint and prompt are correct. The prompt can be customized to extract different fields.

Use Cases and Variations

  • Accounts Payable Automation: Automatically capture invoice details and post them to accounting software like QuickBooks, Xero, or ERP systems.
  • Multi-format Support: Dumpling AI can handle PDFs, images, and other document types. Modify the prompt to extract data from purchase orders, receipts, or contracts.
  • Error Handling: Add an error workflow or a Slack notification if extraction fails, or route failed invoices to a separate review sheet.
  • Batch Processing: Replace the trigger with a scheduled poll or manual upload event to process existing invoices retroactively.
8 nodesmanual triggerFinance
Google DriveExtract From FileHTTP RequestCodeSplit OutGoogle SheetsSticky Note

Workflow JSON

{
  "id": "Q9K6tDu4TJpqtRQ1",
  "meta": {
    "instanceId": "a1ae5c8dc6c65e674f9c3947d083abcc749ef2546dff9f4ff01de4d6a36ebfe6",
    "templateCredsSetupCompleted": true
  },
  "name": "Extract and Save Invoice Data from Google Drive to Sheets with Dumpling AI",
  "tags": [],
  "nodes": [
    {
      "id": "4cdec8f8-9e08-433f-832d-18a9af3f4531",
      "name": "Google Drive Trigger – Watch Folder for New Files",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        -160,
        -180
      ],
      "parameters": {
        "event": "fileCreated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1Dquh3PguyBImKvHlbkp55NBvYoB8IKr5",
          "cachedResultName": "invoice-n8n"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "credential-id",
          "name": "googleDriveOAuth2Api Credential"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b67aea52-5f39-4fce-b476-d3b991b30519",
      "name": "Download Invoice File",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        60,
// ... truncated (copy to see full JSON)

How to Import This Workflow

  1. 1Copy the workflow JSON above using the Copy Workflow JSON button.
  2. 2Open your n8n instance and go to Workflows.
  3. 3Click Import from JSON and paste the copied workflow.

Don't have an n8n instance? Start your free trial at n8nautomation.cloud

Related Templates

AI-Powered Auto-Healing for Failed n8n Workflows

High-Level Summary This workflow automates the entire overdue invoice recovery process using an AI agent. It runs daily on a schedule, reads unpaid invoices from a Google Sheet, and for each invoice uses OpenAI's GPT-4o-mini to analyze the situation and generate a personalized, context-aware recovery email. The email is sent via Gmail, and if the AI determines the account requires escalation (legal or collections), an internal alert is emailed to your legal team. The workflow then updates the invoice sheet with the new escalation level and appends a detailed log row to a separate recovery sheet for full auditability. Slack alerts notify the team if no invoices are found or if the AI encounters an error. Nodes and Their Functions Below is every node in the workflow, listed in execution order, with its type, authentication method, and key configuration. Daily Invoice Check (Schedule Trigger, No auth) — Fires the workflow every 24 hours. Configured with an interval rule of 24 hours. Read Overdue Invoices (Google Sheets, OAuth2) — Reads all rows from the "invoices" tab of your Google Sheet. Requires a Google Sheets OAuth2 credential and the spreadsheet ID. Any Overdue Invoices? (If, No auth) — Checks if the field is not empty. If invoices exist, the workflow proceeds to the AI agent; otherwise, it triggers a Slack alert. Slack: No Invoices Found Alert (Slack, OAuth2) — Sends a message to a specified Slack channel when no overdue invoices are found. Uses Slack OAuth2 credential. AI Recovery Agent (LangChain Agent, uses OpenAI API key via sub-node) — The core AI node. It receives each invoice row and a system prompt instructing it to act as an AR recovery specialist. It outputs a JSON object with escalation level, subject, email body, payment plans, and escalation action. The agent is connected to the GPT-4o-mini Language Model node. GPT-4o-mini Language Model (OpenAI Chat Model, API Key) — Provides the language model for the AI agent. Uses the model. Requires an OpenAI API key credential. Parse & Structure AI Response (Code, No auth) — A JavaScript code node that cleans and parses the AI's raw output into a structured JSON object. It also merges the original invoice data (invoice number, client name, etc.) into the output. Send Recovery Email to Client (Gmail, OAuth2) — Sends the personalized recovery email to the client. Uses the and from the AI response. The recipient email is taken from the original invoice row. Requires a Gmail OAuth2 credential. Needs Escalation? (If, No auth) — Checks if the field from the AI response is not "none". If escalation is needed, the workflow sends an internal alert; otherwise, it skips directly to logging. Send Escalation Alert to Legal Team (Gmail, OAuth2) — Sends an HTML email to a predefined legal team address with details about the high-risk invoice. The email includes client name, invoice number, amount due, days overdue, escalation level, and AI summary. Requires a Gmail OAuth2 credential. Update Invoice Status in Sheet (Google Sheets, OAuth2) — Updates the original invoice row in the "invoices" tab with the new escalation level and AI summary. Uses the row number to match the correct row. Append Row to Recovery Log (Google Sheets, OAuth2) — Appends a new row to the "Recovery sheet" tab with a full log of the action taken, including invoice details, AI subject, summary, escalation level, and Gmail label IDs. Slack: AI Error Alert (Slack, OAuth2) — Triggered if the AI Recovery Agent node encounters an error. Sends a Slack message with the invoice number and a request to check execution logs. Additionally, there are several Sticky Notes (Overview, Section: Trigger, Section: AI Agent, Section: Email, Section: Logging, Section: Security) that serve as documentation and visual guides within the editor. Setup Instructions To use this workflow, you need the following accounts and credentials: Google Sheets — A spreadsheet with two tabs: - : Columns should include Invoice, Client, Email, Amount, Due Date, Days Overdue, Level, Reminders Sent, and optionally row_number. - : Columns for logging (Invoice, Client, Amount, Days Overdue, Level, Email, escalation_level, summary, subject, labelIds). Create a Google Sheets OAuth2 credential in n8n and connect it to both Google Sheets nodes. Gmail — A Gmail account for sending recovery emails and escalation alerts. Create a Gmail OAuth2 credential in n8n. Update the escalation email recipient address () to your legal or collections team's email. OpenAI — An OpenAI API key with access to the model. Create an OpenAI API credential in n8n. Slack — A Slack workspace and a channel for alerts. Create a Slack OAuth2 credential in n8n. Replace with the actual channel ID. After connecting credentials, update the Google Sheet ID in the "Read Overdue Invoices", "Update Invoice Status in Sheet", and "Append Row to Recovery Log" nodes. Also update the Slack channel IDs and the legal team email address. Then activate the workflow. Use Cases and Variations Custom Escalation Rules — Modify the AI prompt or the "Needs Escalation?" condition to use different criteria (e.g., amount threshold, client tier). Multi-language Support — Adjust the AI prompt to generate emails in different languages. Integration with Accounting Software — Replace the Google Sheets nodes with API calls to QuickBooks, Xero, or other invoicing platforms. Different AI Models — Swap the GPT-4o-mini model for another OpenAI model or use a different provider via the LangChain integration. SMS or Other Channels — Add Twilio or other nodes to send reminders via SMS in addition to email. Dashboard & Reporting — Extend the logging sheet to feed into a BI tool for real-time recovery metrics.

19 nodes

Ready to automate with n8n?

Get affordable managed n8n hosting with 24/7 support.