Expense policy checker
By Toolspoke
Reads the day's Brex expenses each weekday evening and posts one Slack list of missing receipts, over-limit spend and duplicates.
Needs a Toolspoke account. You choose which project it installs into.
- Brex + Slack
- Required integrations
- Runs on a schedule
- Weekdays at 5pm by default
- Post one message
- What its last step does
- Some actions can delete
- 1 of 31 actions in its tools
On this page
The short version
- What it is
- A ready-made Toolspoke agent that checks each day's Brex spend against your expense policy.
- What it reads
- Today's expenses and settled card transactions, older expenses still missing a receipt, and your users, budgets and spend limits.
- Where it posts
- One Slack channel for the finance team, chosen when you set it up.
- What it flags
- Missing receipts or memos after a set number of days, spend over your limits, possible duplicates and spend outside a budget.
- How often
- Every weekday at 5pm once you switch it on. If nothing was flagged it posts nothing.
- What it never does
- Lock, unlock or terminate a card, edit an expense, or message an employee.
- What you need
- A Toolspoke account, a Brex user token and a Slack workspace.
What Expense policy checker does
Expense policy checker is an AI agent that reads the day's Brex spend every weekday evening and posts one list of expenses that break your policy, grouped by employee, for the finance team.
Expense problems are cheap to fix on the day and expensive at month end. By then the receipt is lost, the person has forgotten what the dinner was for, and finance spends a week chasing.
Brex can enforce some rules itself, but the ones that need judgement are left for a person to spot: a dinner above the limit for that category, the same taxi charged twice, a team spending past its budget.
Expense policy checker reads the day's expenses and card transactions, checks them against the limits you set, and posts one list grouped by employee. Finance can then ask each person one short question while they still remember.
In practice, each weekday evening you get one list, or nothing:
- Expenses still missing a receipt or memo after the days you choose
- Spend above your limit for its category or for that person
- Possible duplicate charges
- Spend that takes a budget or spend limit past its amount
How it works
Expense policy checker works in four steps each weekday evening: it reads your rules, reads the day's spend, checks it, and posts one list. All of it comes from the agent's written instructions, which you can read and edit after you install it.
Step 1: Read the rules
It reads users, budgets and spend limits.
Step 2: Read the spend
It reads today's expenses and card transactions, and older ones still missing receipts.
Step 3: Check the policy
It applies four checks and drops the rest.
Step 4: Post one list
It posts the flags grouped by employee, largest first.
It reads today, and what has waited
Today's spend comes from list_expenses and list_card_transactions, so a settled charge with no expense yet is not missed. It reads the last 30 days again to find expenses still without a receipt or memo after the chosen number of days, which is 3 if you do not set one.
It uses the limits you set
At install you give a maximum per expense for each category, and any per-person limits that differ. If you give none, it checks receipts, memos, duplicates and budgets only, and says no limits were given.
It says possible, not fraud
Two charges to the same merchant for the same amount by the same person within two days are flagged as a possible duplicate. A second coffee is not a fraud, and the post never says it is.
It never touches a card
It does not lock, unlock or terminate a card, and does not edit a memo. Those decisions belong to someone in finance. The limits are listed under what it will never do.
What a daily list looks like
A message from Expense policy checker is a single Slack post. It opens with the count, then lists each employee's flags with the merchant, amount, date and reason.
Bluefinch
Channels
- # finance-ops
- # finance
- # ops
- # general
# finance-ops
Tuesday. 5 flags across 3 people. Receipt grace period 3 days, set at install.
Leo Marsh (3)
- Over limit: Harbour Grill, 410, today. Meals limit is 250.
- Possible duplicate: Uber, 38, today and yesterday.
- Over budget: Marketing events is at 104% of its November amount.
Dana Kim (1)
- No receipt: Delta, 612, 4 days ago.
Ravi Shah (1)
- No memo: Figma, 180, 5 days ago.
Checked
64 expenses and 71 card transactions.
- Over a limit or budget
Spend above a category or personal limit, or that takes a budget past its amount. These usually need an answer from the person.
- Missing paperwork
Expenses still without a receipt or memo after the grace period, and possible duplicates. These are usually a quick fix.
- Checked
How many expenses and transactions were read, so a short list is clearly a clean day and not a failed read.
Why it sometimes says nothing
If nothing broke the policy, Expense policy checker posts nothing. A daily all clear teaches people to ignore the channel.
A failed run is different. If Brex cannot be read, it posts that once, so a silent evening is never a missed one.
Who uses Expense policy checker
Expense policy checker suits any company on Brex where finance reviews spend after the fact. The examples use made-up names.
A controller closing the month
Grace Liu used to chase receipts in the last week of the month. Now each one is flagged a few days after the purchase, when it is easy to find.
A finance lead enforcing limits
Tomasz Kowal set a meals limit nobody remembered. The list shows each dinner above it, so he can ask about the ones that matter.
A budget owner in marketing
Amara Obi owns the events budget. The over budget line tells her the day it is passed, not at the quarterly review.
A small finance team of one
Pete Novak does finance alone. One grouped list each evening replaces opening Brex and filtering by hand.
What Expense policy checker connects to
Expense policy checker connects to two tools: it reads Brex and posts to Slack. You connect each one yourself, and Toolspoke stores the connection encrypted, so the agent never sees the credential.
Brex
RequiredRead expenses, card and cash transactions, cards, users, departments, budgets and spend limits.
Authentication: User token
Slack
RequiredSearch conversations and send messages to your workspace.
Authentication: Bot token
| Tool | What Expense policy checker does | What it cannot do |
|---|---|---|
| Brex | Reads expenses, card transactions, users, budgets and spend limits (list_expenses, get_expense, list_card_transactions, list_users, list_budgets, list_spend_limits). | Move money or issue a card: the connector has no action for either. It can lock, unlock and terminate cards and edit an expense memo, which this agent's instructions forbid. |
| Slack | Posts one message with send_message, to a channel. | Delete messages: the connector has no delete action. |
The Brex connection cannot move money, which is a property of the connector. It can lock, unlock and terminate cards, and terminating a card cannot be undone. The agent is told never to, but that is an instruction, not a lock.
We strongly recommend switching off the Brex lock_card, unlock_card and terminate_card actions, and update_expense_memo, in your project before you switch the schedule on. Then no agent in the project can call them. The access control guide explains how.
The activity log records each call, but Brex reads that name a person keep only that the call happened. The message posted to Slack is stored.
What Expense policy checker will never do
Expense policy checker is told never to lock, unlock or terminate a card, never to edit an expense, and never to message an employee. It reads Brex and tells finance what it found.
- Lock, unlock or terminate a card.
- Edit an expense memo, or change any expense, card, budget or limit.
- Message an employee directly.
- Call an expense fraud, or accuse anyone.
- Post a full card number, a home address or a bank detail.
Why it does not touch cards
Locking someone's card mid-trip is a decision about a person, and terminating one cannot be undone. That belongs to a named person in finance, not an agent reading a list of charges.
Why it does not accuse anyone
Most flags have an innocent answer: a client dinner, a split bill, a receipt in someone's inbox. The agent says which rule an expense broke, never why.
Why you should still switch the card actions off
No instruction is a perfect lock. Switching off the Brex card actions and the memo action in your project means no agent can call them, whatever it is told.
If something goes wrong
If Brex cannot be read, post that once. If budgets or limits cannot be read, check receipts, memos and duplicates, and say which checks were skipped. If an expense has no user attached, list it under "No employee recorded".
These are written into Expense policy checker's instructions. They guide the agent, but they are not a permission. What it is allowed to touch is set by the access you grant.
Expense policy checker reads Brex and reports what it finds. Every card decision and every conversation with an employee stays with a person.
When Expense policy checker runs
Expense policy checker runs every weekday at 5pm, but only after you switch its schedule on. It arrives switched off, so nothing runs and nothing is charged until you decide.
- Each run reads the day's expenses and card transactions.
- It also rechecks the last 30 days for missing receipts and memos.
- When nothing is flagged, it posts nothing.
- If Brex cannot be read, it posts that once.
Each run uses model credit from your workspace balance, even when nothing is flagged, so it makes about five runs a week. The Brex and Slack calls themselves are free.
Your copy is an ordinary agent in your project. You can pause its schedule there, run it once on demand, change the days and time and edit its instructions. The agent's page lists recent runs and their cost.
How to set up Expense policy checker
To check expenses every day, add Expense policy checker to a Toolspoke project, connect Brex and Slack, set your limits and switch on the schedule. It takes a few minutes, and nothing runs until the last step.
Step 1: Create a Toolspoke account or sign in
Choose Use this agent. If you are new, you will be asked to sign up first, and you come straight back to this agent afterwards.
Step 2: Add it to a project
Pick the project it should live in. You get your own editable copy, and you can see the two tools it brings before anything connects.
Step 3: Connect Brex
Create a user token in the Brex dashboard with read access to expenses, transactions, team and budgets, and paste it. It is stored encrypted.
Step 4: Switch off the card actions
In the project's access settings, switch off the Brex lock, unlock and terminate card actions and the memo action.
Step 5: Connect Slack
Choose Sign in with Slack and approve the Toolspoke app. For a private channel, add the Toolspoke bot to it first.
Step 6: Set the channel, grace period and limits
Put the channel, the days before a missing receipt is flagged, and your limits per category and per person in the instructions.
Step 7: Switch on the schedule
The schedule arrives switched off. Run it once to see a list, then switch it on.
Make Expense policy checker fit your policy
Expense policy checker's instructions are plain English and you can edit them after you install it. Installing copies the agent, so your edits stay with your copy. Open the agent in Toolspoke and tell the builder what to change, and it rewrites the instructions.
Paste any sentence below into the builder chat, or say the same thing in your own words.
Flag a missing receipt only after 7 days.
The limit for meals is 75 per person per expense.
Do not flag a missing receipt on anything under 25.
When a budget goes over, mention its owner in Slack.
Run on Fridays at 4 PM and cover the whole week.
This changes when the agent wakes up, so the builder edits its schedule as well as the instructions.
None of these edits needs more access or touches the Never rules. They change what Expense policy checker is told, not what the connections allow.
How it compares to other options
Expense policy checker beats the alternatives when you want one daily list of policy breaks by person, and loses to them when you want a rule enforced at the moment of purchase.
| Compared on | Expense policy checker | Brex's built-in policies | A month-end review | An expense audit service |
|---|---|---|---|---|
| One list, grouped by employee | Yes, daily | Per expense | Yes, monthly | Yes |
| Catches it within days | Yes | Yes, at purchase | No | Depends |
| Spots possible duplicates | Yes | Partly | If you look | Yes |
| Blocks a purchase | No | Yes | No | No |
| Can lock a card | Told not to; switch it off | Yes | Up to you | Depends on access |
| Setup effort | Connect two accounts | Set up in Brex | Time each month | A contract |
Brex's own policies are the better choice for a hard rule: they can decline a purchase or require a receipt before it is submitted. Expense policy checker catches what slips past them.
A month-end review is still worth doing. With a daily list, there is less left for it to find.
Frequently asked questions
Can Expense policy checker lock or cancel a card?
It is told never to. The Brex connection does have lock, unlock and terminate card actions, so switch them off in your project if you want that enforced (how access works).
Can it move money?
No. The Brex connector has no payment, transfer or card-creation action, so the connection cannot move money.
Does it edit expense memos?
No. It is told never to, and the memo action can be switched off in your project.
Does it message employees?
No. The list goes to the finance channel you choose, and finance decides who to ask.
What if I do not set any limits?
It checks missing receipts and memos, possible duplicates and budgets, and says no limits were given.
How long before a missing receipt is flagged?
Three days by default. You can set your own number at install or later.
Is Expense policy checker free?
It has no price of its own, and every Toolspoke plan includes agents. Tool calls cost nothing, but each run draws on your usage balance. Pricing has the details.
Catch expense problems the day they happen
Connect Brex and Slack, set your limits, switch off the card actions and switch on the schedule. Your first list lands at 5pm on the next weekday.