Finance & Ops · n8n

Route Expense Requests to the Right Manager for Approval in Slack

An n8n workflow that takes each submitted expense, routes it to the correct approver based on amount and department, and posts interactive Approve/Reject buttons in Slack — so reimbursements get decided in minutes instead of living in an email thread for a week.

difficulty Intermediatesetup 55 minresult Expenses land in front of the right approver in Slack with one-click decisions, logged automatically
  1. 1

    Receive the expense

    A Webhook node catches submissions from your form or expense tool. Capture submitter, amount, category, department and a receipt link.

  2. 2

    Pick the approver

    A Switch node routes by amount and department to the correct approver's Slack ID — team lead, finance, or CFO for large amounts.

  3. 3

    Ask in Slack

    A Slack node posts the expense with interactive Approve and Reject buttons, mentioning the approver so it hits their notifications.

  4. 4

    Record the decision

    A second Webhook receives the button action, appends the outcome to a Google Sheets ledger, and DMs the submitter the result — closing the loop without a single email.

Frequently asked questions

How does routing decide the approver?

A Switch/IF node reads the amount and department: small expenses go to the team lead, larger ones escalate to finance, and anything over a threshold to the CFO. You define the thresholds once; every expense then finds its correct approver automatically.

How do the Approve/Reject buttons work?

The Slack message uses interactive buttons whose actions call back to a second n8n webhook. That webhook records the decision, notifies the submitter, and updates your log. It's the standard Slack interactivity pattern and keeps the whole loop inside chat.

About this recipe. Recipes on FlowRecipesHub are written for business owners, not developers, and are tested before publishing — how recipes get made. Some ingredient links are affiliate links that cost you nothing — full disclosure.