INVOICE PROCESSING

FX-Normalize and Route Large Foreign Invoices for Slack Approval

Receives invoices via webhook, normalizes the amount to base currency at the invoice-date rate.

CategoryInvoice Processing
Enginesim
Difficultyintermediate
Triggerwebhook
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerInvoice posted to webhookHTTP webhook
  • ActionFetch invoice-date FX rateHTTP webhook
  • LogicBase-currency total over threshold?
  • ActionPost to Slack approval channelSlack
  • OutputBook normalized invoice to PostgresPostgreSQLPostgres

What it does

Incoming invoices hit a webhook, get converted to your base currency using the rate effective on the invoice date, and are then gated by size. Small invoices book automatically; large ones (measured in normalized base currency, so a weak-currency invoice can't sneak past) wait for explicit Slack approval.

When to use it

Use this when approval thresholds must be enforced in a single currency across all vendors, regardless of what currency the invoice arrived in. It stops the loophole where a large foreign-currency bill slips under a native-currency limit.

How it works

  1. 1An invoice POST to the webhook fires the trigger with structured invoice fields.
  2. 2An HTTP call fetches the FX rate for the invoice's currency on its invoice date.
  3. 3A logic step computes the base-currency total and checks it against the approval threshold.
  4. 4Above threshold, a Slack message with vendor, original amount, rate-date, and normalized total is posted to the approvals channel.
  5. 5Once approved (or if below threshold), the normalized invoice is inserted into Postgres.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect HTTP webhookTrigger any URL on agent actions.
  2. 2
    Connect SlackChannels, DMs, threads, mentions.
  3. 3
    Connect PostgresAny Postgres URL — query, write, migrate.
  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.