DOCUMENT OPS

OCR Dropbox receipts into a Postgres expense ledger

When a receipt PDF or scan hits Dropbox, OCRs it, extracts merchant, amount, tax, and date, writes a normalized ledger row to Postgres.

CategoryDocument Ops
Enginesim
Difficultyintermediate
Triggerevent
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerNew receipt in Dropbox /ReceiptsDropboxDropbox
  • ActionOCR and extract merchant, amount, tax, dateOpenAI
  • ActionInsert normalized row into Postgres ledgerPostgreSQLPostgres
  • LogicBranch: amount over approval threshold?
  • OutputPost over-limit receipts to Slack for approvalSlack

What it does

Turns receipt images and PDFs dropped into Dropbox into structured expense records. It OCRs each file, extracts merchant, total, tax, currency, and date, normalizes the amount, and writes a row to a Postgres expense ledger. Receipts above a configured threshold trigger a Slack alert so they get an approval before reimbursement.

When to use it

Use it when employees or vendors drop receipts into a shared Dropbox folder and finance has to retype them into a spreadsheet. Best when you want a clean ledger plus a spend-control check in one pass.

How it works

  1. 1A new receipt file in `/Receipts` triggers the run.
  2. 2The flow OCRs the image or PDF and extracts merchant, amount, tax, currency, and date via OpenAI.
  3. 3A normalization step standardizes currency and amount fields.
  4. 4A row is inserted into the Postgres expense ledger with the Dropbox file link.
  5. 5A branch checks the amount against the approval threshold and, if exceeded, posts the receipt details to Slack for sign-off.

Set it up

What you configure once, before turning it on.

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