Case study  ·  Documents & Finance

An invoice pipeline that reads emailed PDFs and files the numbers without anyone typing

Email an invoice in and it pulls out the vendor, invoice number, date, amount, tax and currency, files them in a sheet, posts a confirmation to Slack, and flags incomplete invoices for review.

The problem

Every business gets invoices by email, and someone has to open each PDF, read off the vendor, amount, tax and invoice number, type it into a sheet or accounting system, and spot anything odd. It is slow, dull work, and it is where people make mistakes: a swapped digit, a missed invoice, a wrong total.

Across dozens of invoices a month, that is hours spent copying numbers from one place to another.

How it works

The pipeline watches an inbox. When an email with a PDF arrives, it checks the attachment really is a PDF, extracts the text, and asks the AI for six fields: vendor, invoice number, date, amount, tax and currency.

It then checks the essentials are present. A complete invoice is filed as a new row and a success message goes to Slack. An incomplete one is flagged for review instead of being filed as bad data.

n8n workflow: new invoice email Gmail trigger, has PDF attachment check, extract PDF text, AI extract fields, parse and validate, save to sheet, needs review check, then Slack review alert or Slack success
The pipeline in n8n. The review check keeps bad data out of the sheet.

A real run

An invoice arrived from a managed IT services vendor. The pipeline read the PDF and pulled out the vendor, invoice number INV-2048, the date, an amount of $3,041.83, tax of $231.83 and the currency, USD. Nothing was missing, so the invoice was filed and the confirmation posted to Slack. From email to filed took seconds.

The invoice PDF from BrightServe Solutions open in Gmail, showing invoice number INV-2048, the bill to company, dates and line items, with addresses and contact details blurred
The incoming invoice. Addresses and contact details are blurred.
Slack message Invoice processed with vendor BrightServe Solutions, invoice INV-2048 and amount $3,041.83 USD
The confirmation in Slack.
Google Sheet named Invoices with vendor, invoice number, date, amount, tax, currency, needs review, review reason and received columns filled for INV-2048
The invoice filed as a row, with needs review set to false.

What a person still handles

  • Invoices flagged as incomplete or unreadable. The Slack alert says which one and why.
  • Approving and paying invoices.
  • Anything that looks wrong even when every field is present.

Built with

  • n8n
  • Gmail
  • OpenAI
  • Google Sheets
  • Slack

n8n, Gmail as the inbox, GPT-4o-mini to read the fields, Google Sheets for the record and Slack for notifications. The destination can be an accounting system such as QuickBooks or Xero instead of a sheet. The same approach works for purchase orders, receipts and other documents that arrive by email.

Your build starts with the arithmetic.

Bring a week of real examples to the free audit. We come back with the three worth doing first, what each is worth, and a fixed price. If a cheaper tool already covers it, we say so.

Book the free audit →