INVOICE PROCESSING

Three-Way Match: Invoice, PO, and Goods Receipt Validation

On a scheduled batch, validates unprocessed Outlook invoices against both their purchase order and the recorded goods receipt in Postgres.

CategoryInvoice Processing
Enginesim
Difficultyadvanced
Triggerschedule
Steps6
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerScheduled batch of pending invoices
  • ActionLoad PO and goods-receipt rows from PostgresPostgreSQLPostgres
  • ActionNormalize line descriptions with AIOpenAI
  • LogicBranch: quantities and prices agree across all three?
  • ActionMark invoice ready-to-pay in PostgresPostgreSQLPostgres
  • OutputOpen ClickUp task for each varianceClickUpClickUp

What it does

Runs a periodic batch over invoices that have been parsed but not yet cleared. For each one it performs a full three-way match: invoice versus purchase order versus the goods-receipt record. It confirms that ordered, received, and billed quantities agree and that unit prices match the PO. Only invoices that pass all three checks are marked ready to pay; partial receipts, over-billing, or price drift are escalated to ClickUp with the specific failing field called out.

When to use it

Use this when you receive goods against POs and need stronger control than a simple PO lookup — for example to catch suppliers billing for more than was delivered, or invoicing at a price above the agreed PO rate.

How it works

  1. 1A schedule fires and pulls pending invoices from Postgres.
  2. 2For each invoice the flow loads the linked PO and goods-receipt rows.
  3. 3An LLM normalizes line descriptions so receipt and invoice lines align.
  4. 4A branch evaluates quantity and price agreement across all three documents.
  5. 5Full matches are flagged ready-to-pay in Postgres.
  6. 6Discrepancies become ClickUp tasks naming the variance.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect PostgresAny Postgres URL — query, write, migrate.
  2. 2
    Connect OpenAIModels, embeddings, files.
  3. 3
    Connect ClickUpDocs + tasks + chats in one workspace.
  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.