INVOICE PROCESSING

Three-Way Match Exception Router by Variance Type

When a new invoice fails three-way match against its PO and receiving record, this workflow classifies the mismatch (price, quantity, or missing receipt) and routes each variance…

CategoryInvoice Processing
Enginesim
Difficultyintermediate
Triggerevent
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerNew invoice row insertedPostgreSQLPostgres
  • ActionJoin PO + goods-receipt recordsPostgreSQLPostgres
  • LogicClassify variance: price / quantity / missing receipt
  • LogicRoute to the owner of that variance type
  • ActionDM approver with line-level diffSlack
  • OutputWrite resolution status back to PostgresPostgreSQLPostgres

What it does

Every invoice that clears OCR but breaks three-way match gets stuck. This workflow pulls the matching PO and goods-receipt rows, computes the exact variance, and sends it to the one person allowed to clear that kind of exception instead of dumping everything in a shared inbox.

When to use it

Use it when AP holds invoices for manual reconciliation and the bottleneck is figuring out who should look at each one. Best when your PO, receipt, and invoice data already live in Postgres or an ERP mirror.

How it works

  1. 1A new invoice row lands in the `invoices` table and fires the trigger.
  2. 2The workflow joins the invoice to its PO and receiving record in Postgres.
  3. 3Logic compares unit price, line quantity, and receipt status to classify the variance.
  4. 4A router branches: price variance to the category buyer, quantity variance to the warehouse lead, no-receipt to the requesting manager.
  5. 5Each owner gets a Slack DM with the line-level diff and an approve/dispute link.
  6. 6The invoice status is written back to Postgres so it leaves the unmatched queue.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect PostgresAny Postgres URL — query, write, migrate.
  2. 2
    Connect SlackChannels, DMs, threads, mentions.
  3. 3
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  4. 4
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  5. 5
    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.