INVOICE PROCESSING

Compare Emailed Vendor Invoice PDFs Against the Stored Baseline

When a vendor invoice PDF lands in Gmail, this extracts its line items, compares them to the vendor's last stored invoice in Postgres.

CategoryInvoice Processing
Enginesim
Difficultyintermediate
Triggerevent
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerNew vendor invoice PDF in Gmail inboxGmailGmail
  • LogicExtract line items and quantities from PDF
  • ActionLoad vendor baseline invoice from PostgresPostgreSQLPostgres
  • LogicDiff parsed invoice against baseline; branch on changes
  • OutputPost flagged differences to AP Slack channelSlack

What it does

It watches a billing inbox for incoming vendor invoice PDFs, parses the line items and quantities out of each one, and diffs them against the most recent invoice on file for that vendor in Postgres. Differences in items, rates, or counts are flagged before the bill is entered for payment.

When to use it

Use this when vendors bill by emailed PDF rather than through a portal or API, and you want to catch creep at the moment of receipt instead of after manual entry. It removes the need for someone to eyeball each PDF against last month's.

How it works

  1. 1A new email with a PDF attachment arrives in the monitored Gmail inbox.
  2. 2The flow extracts line items, quantities, and totals from the PDF.
  3. 3A Postgres query loads the vendor's last stored invoice as the baseline.
  4. 4A diff step compares the parsed invoice to the baseline.
  5. 5A branch proceeds only when meaningful changes are found.
  6. 6A Slack message posts the flagged differences to the AP channel for review.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GmailRead, draft, send, label.
  2. 2
    Connect PostgresAny Postgres URL — query, write, migrate.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.