🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Drive to Google Sheets, expense claims logged

Lisa Granqvist Partner Workflow Automation Expert

Expense claims fall apart in the boring parts. Receipts get buried in inboxes, totals don’t match what’s on the PDF, and finance ends up chasing people for missing fields.

If you run ops or finance, you already feel it. Team admins cleaning up after trips feel it too. This Drive Sheets expenses setup turns “send me the receipt” into a clean log and a clear summary, without the endless follow-ups.

Below you’ll see the exact automation, what it fixes, and how to roll it out without turning your reimbursement process into a new project.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Drive to Google Sheets, expense claims logged

The Problem: Expense Claims Create Busywork (and Errors)

Manual expense claims feel simple until you do them at scale. One person submits three PDFs, another sends a blurry screenshot, and someone else forgets the trip dates entirely. Then finance has to interpret receipts, retype totals, guess tax, and reconcile it all against company policy. That’s not “admin.” It’s a recurring data-entry job with real consequences: wrong reimbursements, messy audit trails, and a constant drip of Slack pings and email threads that never quite die.

It adds up fast. Here’s where it usually breaks down.

  • Receipts arrive in different formats, so someone must normalize them before they’re usable.
  • Totals and tax get typed by hand, which means small mistakes become awkward reimbursement conversations.
  • There’s no single source of truth, so finance ends up building a “shadow spreadsheet” anyway.
  • Missing context (purpose, dates, department) forces follow-ups that delay payouts and reporting.

The Solution: Auto-Save Receipts, Extract Totals, Log to Sheets, Notify Finance

This workflow turns a trip claim into a repeatable, trackable intake process. An employee submits a form with trip details (name, department, purpose, dates) and uploads one or more receipt PDFs. Each file gets stored in a dedicated Google Drive folder for record-keeping. Then the workflow reads the PDF text and sends it to an AI agent (powered by an OpenAI chat model) that extracts structured fields like vendor, date, total, and tax. Finally, n8n formats the data into a clean claim record, appends one row per receipt into Google Sheets, and generates a readable HTML summary that gets emailed to finance so they can approve and pay without hunting for context.

The workflow starts at the form submission. It splits multiple uploads into individual receipts, processes each PDF, then merges the results into two outcomes: a tidy spreadsheet log and a finance-ready email summary. No extra tools for employees to learn, and no manual rekeying for finance.

What You Get: Automation vs. Results

Example: What This Looks Like

Say a consultant submits one trip with 6 receipt PDFs. Manually, finance usually spends about 8 minutes per receipt to open the file, find the total and tax, and type it into a sheet, plus another 10 minutes emailing questions. That’s roughly an hour per claim. With this workflow, the employee submits the form in about 5 minutes, n8n processes the PDFs in the background, and finance gets a single email summary and a pre-filled Google Sheet log. The “finance time” often drops to a quick review.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Drive for storing uploaded receipt PDFs.
  • Google Sheets to log one row per expense.
  • OpenAI API key (get it from the OpenAI dashboard)

Skill level: Intermediate. You’ll connect Google credentials, add an API key, and tweak a couple of mapping fields to match your sheet columns.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

Form submission kicks everything off. An employee enters trip details and uploads one or more receipt PDFs via the n8n form trigger.

Receipts are split and stored. If multiple files are uploaded, n8n breaks them into individual items, then saves each PDF into the right Google Drive folder so nothing gets lost later.

The workflow reads each PDF and extracts the numbers. It pulls text from the file, then the AI agent (using an OpenAI chat model plus a structured output parser) returns consistent fields like vendor, total, tax, and date.

Two outputs are produced for finance. One path appends a clean row into Google Sheets per receipt. The other compiles the trip context and receipt breakdown into an HTML email and sends it to the finance inbox.

You can easily modify the fields captured on the form to match your policy, then adjust the sheet columns to fit your reporting. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Form Trigger

Set up the intake form that captures employee trip details and receipt uploads.

  1. Add and open Form Intake Trigger.
  2. Set Form Title to Business Trip Claim Submission.
  3. Set Form Description to Submit your business trip expense claim by providing trip details and uploading all related invoices or receipts..
  4. Confirm the form fields include Employee Name, Department, Trip Purpose, From Date, To Date, and a file upload labeled Receipts / Invoices restricted to .pdf.
  5. Connect Form Intake Trigger to Split Uploaded Files.

Step 2: Connect Google Drive and Sheets

Store uploaded receipts in Drive and log metadata in Sheets.

  1. Open Store File to Drive and set Name to =invoice-{{ $now.toFormat("yyyyLLdd-HHmmss") }}-{{$binary.data.fileName}}.
  2. Choose the target Drive and folder in Store File to Drive (the folder ID currently uses [YOUR_ID]).
  3. Credential Required: Connect your googleDriveOAuth2Api credentials in Store File to Drive.
  4. Open Append Sheet Record, set Operation to append, and select the spreadsheet and sheet (currently [YOUR_ID] and Sheet1).
  5. Credential Required: Connect your googleSheetsOAuth2Api credentials in Append Sheet Record.

Split Uploaded Files outputs to both Store File to Drive and Parse PDF Text in parallel.

Step 3: Set Up File Processing and Mapping

Split multiple uploads, map Drive metadata into a sheet row, and ensure receipt text extraction is enabled.

  1. In Split Uploaded Files, keep the JavaScript that filters binary keys starting with Receipts___Invoices_ and outputs one file per item.
  2. In Parse PDF Text, set Operation to pdf.
  3. In Map Claim Row, keep Mode as runOnceForEachItem and map fields like EmployeeName, Department, and TripPurpose from Form Intake Trigger.
  4. Ensure Store File to Drive connects to Map Claim Row, then to Append Sheet Record.

Step 4: Configure AI Receipt Extraction and Summary Build

Extract structured receipt data with AI, assemble claim data, and build an HTML summary.

  1. In Receipt Analysis Agent, keep the prompt text and ensure Has Output Parser is enabled.
  2. Open Structured Parsing Helper and verify the JSON schema example used for structured outputs (do not add credentials here).
  3. Open OpenAI Mini Model and confirm the model is set to gpt-4.1-mini.
  4. Credential Required: Connect your openAiApi credentials in OpenAI Mini Model.
  5. In Assemble Claim Data, keep the JavaScript that builds the employee object and expenses array from the AI output.
  6. In Build HTML Summary, keep the HTML generator script that formats the summary tables.

OpenAI Mini Model is connected as the language model for Receipt Analysis Agent — ensure credentials are added to OpenAI Mini Model, not the agent or Structured Parsing Helper.

Step 5: Configure the Email Output

Email the finance team a formatted summary after the HTML is built.

  1. Open Email Finance Summary and set HTML to ={{ $json.html }}.
  2. Set Subject to =Expense Claim Request - {{ $('Assemble Claim Data').item.json.employee.name }} – {{ $('Assemble Claim Data').item.json.employee.department }} - {{ $('Assemble Claim Data').item.json.employee.tripPurpose }}.
  3. Credential Required: Connect your smtp credentials in Email Finance Summary.
  4. Confirm Build HTML Summary connects to Email Finance Summary.

Step 6: Test and Activate Your Workflow

Validate the end-to-end process before turning it on for production use.

  1. Click Test workflow and submit a sample form through Form Intake Trigger with one or more PDF receipts.
  2. Verify the workflow runs both branches: files are uploaded by Store File to Drive and parsed by Parse PDF Text.
  3. Confirm a new row appears in the spreadsheet from Append Sheet Record and the email is sent by Email Finance Summary.
  4. When satisfied, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Drive credentials can expire or need specific permissions. If things break, check the Google connection inside n8n Credentials and confirm the Drive folder is accessible to that account first.
  • PDF text extraction can be messy when receipts are scans. If the AI output looks wrong, the issue is often the “Parse PDF Text” step returning incomplete text, not the model itself.
  • Default AI prompts are generic. Add your expense categories, tax rules, and preferred date format early or you will keep “fixing” rows in Google Sheets by hand.

Frequently Asked Questions

How long does it take to set up this Drive Sheets expenses automation?

About 30–60 minutes if your Google accounts are ready.

Do I need coding skills to automate Drive Sheets expenses logging?

No. You’ll mostly connect accounts and paste in an API key. You might do light field mapping if your Google Sheet columns differ.

Is n8n free to use for this Drive Sheets expenses workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API usage, which is usually small per receipt but depends on how long your PDFs are.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Drive Sheets expenses workflow for manager approval before finance?

Yes, and it’s a common tweak. You can route the “Build HTML Summary” output to a manager first, then only send “Email Finance Summary” if the manager approves. Teams also customize the agent prompt to auto-tag categories (travel, meals, accommodation) and to enforce policy rules like “no alcohol” or max daily meal totals.

Why is my Google Drive connection failing in this workflow?

Usually it’s permissions. The Google account connected in n8n must have access to the target Drive folder, and the OAuth consent can lose scope if the credential was edited. Reconnect the Google Drive credential in n8n, then retry with a single test receipt to confirm the folder path is correct.

How many receipts can this Drive Sheets expenses automation handle?

Plenty for normal business use. On n8n Cloud, your limit is mainly your monthly execution allowance, and each submitted claim can trigger multiple executions if there are multiple PDFs. If you self-host, there’s no execution cap, but throughput depends on your server and how quickly the AI and Google APIs respond.

Is this Drive Sheets expenses automation better than using Zapier or Make?

Often, yes, because this workflow benefits from multi-file handling, structured parsing, and custom code/mapping in the middle. n8n also gives you self-hosting, which keeps costs predictable when volume grows, and branching logic without making every extra step feel “premium.” Zapier or Make can still be fine for very simple receipt logging, but AI extraction plus email summaries gets complex fast. If you want a second opinion on tool choice, Talk to an automation expert.

Once this is running, receipts land where they should, numbers show up where you need them, and finance gets a summary that’s actually actionable. Set it up once, then let the workflow do the clerical work.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal