FINANCE

Slack-Triggered Expense Approval with FX Normalization and Snowflake Write-Back

An approver submits an expense ID in Slack; the workflow looks up the charge, converts it to base currency, re-checks policy, and on approval writes the normalized.

CategoryFinance
Enginesim
Difficultyintermediate
Triggerevent
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerReviewer submits expense ID in SlackSlack
  • ActionFetch original charge from Stripe and convert to base currencyStripeStripe
  • LogicRun final policy check against limits
  • LogicBranch: fail blocks approval and replies in Slack
  • OutputWrite approved normalized record to SnowflakeSnowflakeSnowflake

What it does

This turns a Slack message into a controlled approval action. When a reviewer submits an expense ID, the workflow re-fetches the original Stripe charge, normalizes it to base currency, runs a final policy check, and — only if it passes — records an approved, FX-normalized row in Snowflake so downstream payroll can reimburse it.

When to use it

Use this when approvals happen conversationally in Slack but you need a guarded, auditable write to your warehouse. It stops out-of-policy items from being approved by accident and guarantees every reimbursement row carries a consistent base-currency amount.

How it works

  1. 1A reviewer submits an expense ID via a Slack trigger.
  2. 2The original charge is fetched from Stripe and converted to base currency at its transaction-date rate.
  3. 3A final policy check confirms the expense is still within limits.
  4. 4A branch blocks approval and replies in Slack if the check fails.
  5. 5On pass, the approved normalized record is written to Snowflake for reimbursement.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect SlackChannels, DMs, threads, mentions.
  2. 2
    Connect StripeCustomers, subscriptions, payments.
  3. 3
    Connect SnowflakeWarehouses, queries, shares.
  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.