Skip to main content
Finance & Accounting

Naming the rule is what makes a rejection defensible

Nobody wants to do an expense review, and most people do it badly. Checking each claim against the policy document takes longer than the claims are worth.

A rejection that does not name a rule becomes an argument. The claimant thinks it was allowed. The reviewer vaguely remembers the policy. The argument costs more than the claim.

Borderline is a real category and needs its own path. A claim just above a limit, an atypical category, or a missing receipt on an otherwise normal expense still needs judgment. That is why reviewers stop reading once they hit the clear cases.

Patterns matter more than each claim. One claim over the limit does not matter. The same person over the limit every month is a pattern. Only the log reveals that.

How the ActionFlow runs on the canvas

The policy lives in a table, not in the prompt. Each rule sits in a Google Sheets or Airtable node as a structured condition: category, limit, receipt requirement, and approval level. A finance lead can edit the policy without changing the flow.

A Webhook trigger receives the claim. A Document Upload node captures it. A PDF4me node extracts it from the PDF it arrived in.

A Generate Object node reads the claim and the receipt. It returns the category, the amount, whether the receipt supports the claim, a decision band, and the specific rules applied.

A Switch node handles the band. Compliant claims go to an HTTP Request node for processing and to a Slack notification for the claimant. Clear breaches go to a Generate Text node that writes the explanation naming the rule.

Borderline claims go to a reviewer through a Slack node in the Human in the Loop category, with the rule text and the claim side by side.

A Google Sheets node logs each decision with the claimant, the rule, and the band. That log is what reveals patterns. Reviewing it monthly changes behavior. It does not make claims faster to process.

Nodes this ActionFlow uses

  • Webhook (Trigger): receives the expense claim.
  • Airtable (Integration): holds policy as structured rules. Google Sheets fits the same slot.
  • Document Upload (Data) plus PDF4me (Data): take the receipt and extract its contents.
  • Generate Object (AI Core): returns category, receipt support, decision band, and the rules applied.
  • Switch (Control): separates compliant, borderline, and clear breaches.
  • Generate Text (AI Core): writes the explanation naming the specific rule.
  • Slack (Human in the Loop): sends borderline claims to a reviewer with the rule text attached.
  • Google Sheets (Integration): logs decisions so repeated patterns become visible.

Frequently asked questions

Start building AI workflows

Create a free account, open a template or a blank canvas, and run your first ActionFlow.

Newsletter

Get product updates

New nodes, agents, and product notes. We send mail only when we have something worth opening.

Unsubscribe at any time.