Finance playbook · AI Employee: Fin

Expense Submission & Approval

Expense cycle time < 3 days

The problem

Expense approval is a tax on velocity. Employees submit a receipt, wait days for approval, chase managers who forgot, resubmit after policy rejections. Managers approve blindly to clear queues. Finance discovers policy violations in month-end reconciliation, weeks after the money is spent. Nobody enjoys any of it.

At a glance
Trigger
Chat + form
Approvals
Manager per amount threshold
What it does
Writes to your systems
Systems
Ramp · Brex · Expensify · NetSuite
How it feels in production

An hour-by-hour walkthrough.

12:38pm Wednesday. Priya just paid $87 for a client lunch. She snaps the receipt, DMs Fin in Slack: "Lunch with Acme yesterday, $87." Fin OCRs the receipt, extracts merchant + amount + date, matches it to Priya's calendar (yes, she had an Acme lunch), and drafts the expense entry: merchant, amount, category (business meal), tax breakdown, project code (auto-inferred from the Acme opportunity in Salesforce). 12:39pm. Fin checks policy: $87 is under the $100 per-person meal limit; tip is reasonable; date matches an active client meeting. Passes. Routes to Priya's manager Alex with a one-tap approval card. 12:52pm. Alex approves in one tap. Fin posts the entry to Expensify / Ramp / Brex, updates the GL cost centre, notifies payroll for the next reimbursement cycle. Priya gets confirmation and an estimated payout date. Two weeks later, month-end close: zero surprises. Every expense passed policy at intake, every approval is on record, every write went to the right cost centre. Finance runs the close a day earlier than usual. When a submission fails policy — an $250 dinner with a $200 dinner limit, or a personal charge accidentally on the corporate card — Fin surfaces the exception in the submission flow with the specific rule + amount. Employee corrects or writes a justification; manager decides with full context.
How it works

Step by step.

  1. 01

    Collect receipt + coding

    Employee submits via Slack / Teams / email / expense-app. Fin OCRs the receipt (merchant, amount, date, tax), infers the category from merchant + context, matches against calendar / CRM to attach the right project code.

    Slack · Teams · Email · OCR · Salesforce · Google Calendar
  2. 02

    Check policy

    Match against your T&E policy: per-person meal limit, hotel-rate cap by city, receipt-required threshold, corporate-card-only categories. Policy violations return with the specific rule; edge cases ("is this an entertainment expense?") go to the manager for judgement.

    Policy KB · Expensify · Ramp · Brex
  3. 03

    Route to manager

    Approval card to the manager with expense details + policy check + past-similar-approvals context. One-tap Approve / Decline / Request more info. Deadline set (default 5 days); escalation to skip-level if untouched.

    Slack · Teams · Email
  4. 04

    Post to GL

    On approval, write the expense entry to your expense-management platform (Expensify / Ramp / Brex / Concur), tag with cost centre + project code, mark for the next reimbursement cycle.

    Expensify · Ramp · Brex · SAP Concur · NetSuite
Systems and wiring

What you connect to make this run.

Ramp · Brex · Expensify · SAP Concur

write

OAuth credential with expense-create + approval scopes. Every write idempotent by receipt-hash to prevent double-submission.

NetSuite · QuickBooks · Xero

write

GL integration for cost-centre + project-code tagging. Writes match your chart of accounts.

Policy KB (Knowledge Studio)

read

T&E policy indexed in Knowledge Studio. Fin cites the exact policy paragraph on any rejection so the employee sees the reason, not just "denied."

What changes

Before and after, honestly.

Time from receipt to approved
Before
3-7 business days
After
Under 24 hours; most under 1 hour
Manager time per expense
Before
~5 minutes across coding-checking + policy-checking
After
One tap on a pre-checked approval card
Month-end policy violations discovered late
Before
5-15% of expenses
After
Under 1% (violations caught at intake)
Employee reimbursement time
Before
2-4 weeks from expense to payout
After
Next payroll cycle, always
Frequently asked

Answers about this playbook.

What if a receipt is missing?

Fin surfaces the missing receipt at submission ("you told me a $200 lunch but no attachment") rather than at month-end. Employee has 7 days to upload; escalation to manager after. Configurable: some teams allow up to $25 without a receipt per policy.

How does Fin handle expenses across currencies?

OCR extracts the receipt currency and amount. Fin converts to your base currency at the transaction-date FX rate (from your ERP's rate table). Reimbursement pays out in the employee's local currency using the same rate table.

Can we auto-approve small expenses?

Yes. Configurable per policy — many teams auto-approve receipts under $25 that pass every policy check. Auto-approvals still write to audit; managers see the summary in their weekly digest.

What about split expenses (my colleague and I shared a cab)?

Split flow supported. Submit once with the split percentages; Fin creates parallel expense entries for each attendee. Attendees confirm in Slack; approvals route per each person's manager.

Does this work with our existing expense tool?

Yes — Expensify, Ramp, Brex, SAP Concur, Airbase, Zip are all supported. Fin is the intake + policy layer; the underlying tool stays as the system of record.

See it run on your data.

Free plan, no credit card. Connect the systems this playbook needs and run it against a past event first.