INVOICE PROCESSING
Build a BigQuery FX gain/loss ledger from normalized invoice payments
When an invoice is marked paid, it compares the posting-date rate to the payment-date rate, computes the realized FX gain or loss.
How it runs
The automated pipeline, trigger to output.
- TriggerInvoice-paid webhook receivedHTTP webhook
- ActionLoad posting-date rate and amount from PostgresPostgres
- ActionFetch FX rate on payment dateHTTP webhook
- LogicCompute realized FX gain or loss
- OutputAppend entry to BigQuery FX ledgerBigQuery
What it does
This workflow closes the loop on FX accounting. The moment a foreign invoice is settled, it captures the realized currency gain or loss between when the invoice was booked and when it was paid, then records a structured entry in BigQuery for analytics and month-end close.
When to use it
Use it when finance needs an auditable realized-FX trail rather than ad hoc spreadsheets, or when analysts want to query gains and losses by vendor, currency, or period. It pairs naturally with a normalizer that already stored the posting-date rate.
How it works
- 1A webhook fires when an invoice status changes to paid, carrying the invoice id and payment date.
- 2A Postgres action loads the original amount, currency, and posting-date rate for that invoice.
- 3An HTTP action fetches the FX rate on the payment date.
- 4A logic step computes the realized gain or loss and classifies it as gain, loss, or flat.
- 5A BigQuery output appends the attributed ledger row for reporting.
Set it up
What you configure once, before turning it on.
- 1Connect HTTP webhookTrigger any URL on agent actions.
- 2Connect PostgresAny Postgres URL — query, write, migrate.
- 3Connect BigQueryDatasets, queries, schemas.
- 4Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
- 5Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
- 6Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.
More Invoice Processing workflows
Nightly audit that flags duplicate payments already made
Runs every night to scan the last 90 days of Stripe payments against your Postgres invoice ledger.
Agent that codes Front invoices to GL accounts and drafts a bill
An agent reads each Front vendor invoice, assigns GL account codes per line item using your chart of accounts and past coding history.
AI agent that investigates suspected duplicate invoices
When a new invoice can't be cleared by exact-match rules, an AI agent reviews paid history for near-duplicates (split bills, renamed vendors, rounding) and recommends pay, hold…
Gate invoice approvals on a duplicate cross-check
When an approver clicks Approve in your AP system, a webhook re-validates the invoice against paid history in Postgres and Stripe charges.
Catch duplicate invoices as they hit your AP inbox
Watches your accounts-payable Gmail inbox for incoming invoice emails, fingerprints each one, and routes likely duplicates to a review label instead of into the approval queue.
Block duplicate Stripe payouts before they send
When a new vendor invoice is queued for payment in Stripe, cross-check it against your paid-invoice history in Postgres and halt any payout that matches an already-paid invoice.
Run it inside a business
This workflow drops into a full company template. Import the org, and this is one of the playbooks its agents run.

Run this workflow in your colony.
14-day trial. No DevOps. No Sales call. Provisioned in under a minute.
