Expense Report Automation

Most expenses do not need a manager's eyes. The ones over policy still do.

Unmeshed runs expense report automation end to end. Each submission gets checked against policy limits and receipt requirements the moment it comes in. Clean expenses get approved and queued for reimbursement on their own. Anything over a limit or missing a receipt routes to a manager instead of sitting in a shared inbox.

Policy checks run automaticallyManager only sees real exceptionsFree tier available

Built By

The team behind Netflix Conductor.

Now orchestrating workflows for teams across

  • SGSingapore
  • CACanada
  • UKUnited Kingdom
  • USUnited States

What Changes

Every expense gets checked the same way. Only a real exception needs a manager.

An expense approval process does not need a manager reading every line item, it needs a manager reading the lines that actually broke policy.

Before
A manager opens every expense report to check it against policy by hand
Clean expenses sit in the same queue as the ones that actually need a decision
A missing receipt gets caught days later, after the employee has moved on to something else
Reimbursement timing depends on when someone gets around to approving it
After
Policy limits and receipt requirements get checked automatically the moment the report is submitted
Clean expenses get approved and queued for reimbursement on their own
A missing receipt or an over limit expense gets flagged before it reaches a manager's queue
Reimbursement gets queued the moment an expense clears, automatically or by approval

Submit

An expense comes in, parsed before anything else

The expense report gets parsed into a structured record the moment an employee submits it, no manual data entry into a spreadsheet.

  • RULE

    Parse the submitted expense into a structured format

  • RULE

    No AI call needed, this step is pure logic

  • RULE

    Every submission gets logged before the policy check runs

Submit Path

Expense Submitted

app or API

Parse Expense

# parse_expense

Log Expense

logged, free step

Parallel Check

Parsed Expense

fan out

parallel

Check Policy

# check_policy_limits

Check Receipt

# check_receipt_attached

Check

Policy limits and receipts, checked at the same time

Before anything gets approved, the workflow checks the expense against policy limits and confirms a receipt is attached, both running at once instead of one after the other.

  • RULE

    Check the expense against policy limits

  • RULE

    Confirm a receipt is attached where one is required

  • RULE

    Both run in parallel, zero model cost

Decide

The policy check decides the path

An expense that clears policy and has its receipt attached moves straight to reimbursement. Anything over the limit or missing a receipt branches to manager review instead.

  • RULE

    Clean expenses inside policy branch to auto approval

  • RULE

    Reimbursement gets queued the moment an expense clears

  • HUMAN

    Over limit or missing receipt branches to manager review

Decision Path

Policy Decision

# check_policy_decision

inside policyover limit

Auto Approve

# auto_approve

Manager Review

# manager_review

Review Path

Manager Decision

# manager_review_wait

approve

Queue Reimbursement

# queue_reimbursement

Log Decision

logged with the expense

Review or reimburse

A held expense waits for a real decision, not a timer

An expense held for review sits with a manager, with the policy check and the exact reason it was flagged already attached. Once they decide, the workflow resumes and queues reimbursement or declines it.

  • HUMAN

    Manager approves, adjusts, or declines the expense

  • RULE

    An approval resumes the workflow and queues reimbursement

  • RULE

    Every decision gets logged with the expense record

What this workflow is built to do
Most expenses do not need a manager's eyes. The policy check runs on every submission, free. The review only runs on the ones that actually broke policy.

Checked automatically

Zero model cost, every submission

Policy based routing

Not a blanket review queue

Full trace

Submission to reimbursement in one record

Connects to your stack

Works with the expense and finance tools you already run.

SAP ConcurNetSuiteQuickBooksAny finance system via APISlack

Inside the workflow

Four steps, one policy check.

Parse for free

Structuring an expense report does not need a model, and does not cost one either.

Check in parallel

Policy limits and receipts get checked at the same time, zero model cost.

Approve automatically

Clean expenses move straight to reimbursement, only a real exception reaches a manager.

Full trace

Every check, decision, and reimbursement is logged in one record.

Why It Holds Up in Production

Built so a policy violation never slips through.

Policy based

Routing depends on what actually broke policy, not a guess.

Context attached

Managers see exactly why an expense was flagged, already pulled.

Full run history

Every check, decision, and reimbursement is logged and readable.

Resumable waits

Held expenses wait on a real decision, no custom polling code.

Frequently asked questions

Still have questions? Talk to us.

See which expenses actually need a manager's attention.

Connect your expense and finance tools, and this workflow handles the parse, the policy check, and the routing automatically.

Free tier, no credit card required