# Chase missing Brex receipts with one friendly Slack DM

> Every weekday, each person gets one private nudge listing only their own undocumented card spend, plus an aging report for finance.

- Workflow type: agent
- Services: Brex, Slack Bot, Google Sheets
- Categories: Finance, Operations
- Published: 2026-08-04

## What it does

- Checks recent Brex card spend every weekday afternoon for charges with no receipt attached or a blank memo, skipping anything under your minimum amount.
- Sends each person a single private Slack message listing only their own missing items, with the merchant, amount, and date for each one.
- Logs every outstanding charge to a Google Sheets tracker so finance keeps a running record of how long each item has been sitting.
- Posts one rollup to your finance channel that highlights anything still undocumented after 14 days.

## What you'll need

- A Brex account connected with admin or bookkeeper access, so the workflow can see company-wide card spend instead of just one person's.
- A Slack workspace where the assistant can send direct messages and post to your finance channel.
- A Google Sheets spreadsheet to act as the compliance tracker.
- Work emails that broadly match between Brex and Slack, so each reminder reaches the right person.

## Prompt

Every weekday at 4pm, chase employees for missing documentation on our Brex corporate card spend. Use a cron trigger on weekdays only.

Make these configurable at the top of the workflow: the minimum expense amount to chase (default $75), how far back to look (default 60 days), the escalation age (default 14 days), the Google Sheets spreadsheet ID and tab name for the compliance tracker, and the Slack channel for the finance rollup.

Step 1. Use the Brex "List expenses" operation to pull card expenses from the lookback window, paginating with the returned next_cursor until there are no more pages. Treat an expense as undocumented when it has no receipt attached, or its memo is empty or whitespace only. Ignore anything below the minimum amount. Brex returns money as integer minor units plus a currency code, so 7500 USD means $75.00. Convert before comparing to the threshold and before displaying amounts. The Brex connection must be an admin or bookkeeper, because regular users only see their own expenses. If the results look like they cover only one person, say so in the finance rollup rather than assuming the company is clean.

Step 2. Use the Brex "List users" operation to resolve each flagged expense to a cardholder name and work email. Group the flagged expenses by employee so each person is handled exactly once per run.

Step 3. Before messaging anyone, use the Google Sheets "Get Values" operation to read the existing tracker rows. Match on the Brex expense ID to find the date each item was first seen, and use that to compute how many days it has been outstanding. Items that are new to the tracker start at day zero today.

Step 4. Direct message each employee. For each person, use the Slack "Look Up User by Email" operation with their Brex work email, then "Open a Conversation" to get the DM channel ID, then "Send a Message" to that channel. The message should be short and friendly, not accusatory: a one line greeting, then a bullet per outstanding expense showing the merchant, the amount, the transaction date, and exactly what is missing (receipt, memo, or both). Flag anything already past the escalation age so the person knows it is urgent. Critically, each DM must contain only that person's own expenses. Never include another employee's name, merchant, or amount in someone else's message. If the email lookup finds no Slack account, skip the DM and record the person as unreachable for the rollup.

Step 5. Use the Google Sheets "Append Values" operation to append one row per outstanding item to the compliance tracker, every run, so finance keeps an aging record across days. Include: date logged, employee name, employee email, merchant, amount, expense date, what is missing, Brex expense ID, days outstanding, and whether a DM was delivered. Appending on every run is intentional, since it is what makes the day over day aging visible.

Step 6. Use the Slack "Send a Message" operation to post a single rollup to the finance channel. Include the total number of outstanding items and their combined dollar value, how many employees were nudged, and a clearly separated escalation section naming anything outstanding for more than the escalation age, grouped by employee and sorted oldest first. Also list anyone who could not be reached on Slack. The rollup may name employees because it goes to finance, but it should stay factual and brief. If nothing is outstanding, post a short all clear instead of skipping the message, so finance knows the check actually ran.

## How to customize

- Change the timing or the minimum amount, set to $75 by default, so you only chase spend that is worth chasing.
- Adjust the escalation window, set to 14 days by default, and choose which Slack channel receives the finance rollup.
- Reword the reminder message to match your team's tone, or add your own policy note and a link to your receipt upload instructions.

## FAQ

### How is this different from the receipt reminders Brex already sends?

Brex nudges people charge by charge as spending happens, which can mean several pings a day. This gathers everything into one friendly message per person, keeps a running Google Sheets record of how long each item has been outstanding, and gives finance a single escalation summary instead of asking them to chase people individually.

### Can employees see each other's spending?

No. Each direct message contains only that person's own expenses. The only place spending is summarized across the team is the rollup posted to your finance channel, and you control who is in that channel.

### What counts as missing documentation?

Any card charge above your minimum amount that has no receipt attached or has an empty memo. Both checks run together, and the message tells each person exactly which piece is missing. The default minimum is $75 and you can raise or lower it.

### Do I need admin access to Brex for this to work?

Yes. Brex only shows company-wide expenses to admins and bookkeepers. If you connect a regular user account, the workflow will only ever see that person's own charges.

### What happens if someone's Brex email does not match their Slack account?

The workflow lists anyone it could not reach in the finance rollup, so you can follow up manually or correct the email address in whichever system is out of date. It will not silently skip them.

Use this prompt in General Input: https://www.generalinput.com/prompts/chase-missing-brex-receipts-with-one-friendly-slack-dm