Clear your missing Brex receipts and memos in one place

By General Input

Everyone opens one screen, sees only their own undocumented card spend oldest first, and attaches a receipt and memo to clear each row.

Integrations

  • Brex
  • Slack

Type

App

Categories

  • Finance
  • Operations

Build me an internal app my team opens to clear their own undocumented Brex card spend, so we can retire the receipt chasing spreadsheet. There are two views: a personal cleanup queue that every employee works out of, and a finance rollup for admins and bookkeepers.

The main screen is My Undocumented Expenses. Load the signed in person's card expenses with the Brex List expenses operation, paging through with the cursor until you have the full set, and keep only the ones missing a receipt, missing a memo, or missing both. Sort oldest first. Each row shows the merchant, the transaction date, the formatted amount, and a chip for what is missing: Needs receipt, Needs memo, or both. Put an aging badge on every row driven by days since the transaction, for example green under 7 days, amber 7 to 29, and red at 30 or more. Show a header summary with the count of open rows and the person's total undocumented dollars. Use Get expense to pull full detail when someone expands a row, so the list request stays light.

On each row the person can do two things without leaving the list. First, attach a receipt through a file picker wired to Upload receipt to expense, accepting photos and PDFs, with an inline uploading state and a clear error message on failure. Second, edit the memo and pick a category, saved with Update card expense. Save optimistically, then refresh just that row with Get expense. The moment a row has both a receipt and a memo it clears out of the queue with a brief confirmation and the header counts drop.

The second view is Finance Rollup, for admins and bookkeepers. It reads the same expense data alongside List users and List departments, then groups it two ways: by person and by department. Each person row shows name, department, outstanding item count, total undocumented dollars, and the age of their oldest outstanding item, sorted by dollars descending. Department rows roll their people up the same way. Include a search box and a filter for items older than a chosen number of days.

Every person row in the finance view gets a Nudge button that sends one private Slack DM to that person. Match the Brex user to a Slack account by email using Slack List Users and the email on the Slack profile, open the direct message with Open a Conversation, and post it with Send a Message. Keep the message short and friendly: their outstanding count, their total, and the two or three oldest items. It goes to that one person only, never to a channel. Show a sent confirmation and prevent double sending the same nudge in a session.

Two things to bake in. Brex already scopes List expenses by role, so an ordinary user's connection returns only their own expenses while admins and bookkeepers get everything. The per person view therefore falls out of the connected credential and must not do manual filtering by user; the finance view should degrade gracefully with an explanatory empty state if someone without the right role opens it. Second, Brex returns money as integer minor units plus a currency code, for example an amount of 1000 with currency USD meaning $10.00, so convert and format with the currency everywhere you display it, including the rollup totals and the Slack nudge.

Keep this self service. It is the surface where people fix expenses in place, not a scheduler. Do not build recurring reminders or background jobs; the only outbound message is the manual nudge a finance user clicks.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredChat quality review board for LiveChat support leadsWin back no-show and cancelled appointments every morningLive Loop returns analytics with product-level drill-downNewsletter pre-flight and approval board for Mailjet sendsTurn a prospect spreadsheet into personalized sequence enrollmentsMailjet email delivery lookup console for support teamsCatch feature flags that never got switched on in productionKajabi customer support console for member access fixes