Skip to content

Daily

Get yesterday's card spend in Slack each morning

Your finance channel starts the day with every Brex card charge from yesterday and a total, with anything over $500 marked.

Runs
Daily
Apps
Brex
AI
Not needed
Access
transactions read

Send this to your assistant

Create a ClickRuntime automation: every weekday at 8am, post yesterday's Brex card transactions to #spend in Slack with cardholder, merchant and amount, a total at the bottom, and a flag on anything over $500.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A finance lead whose company issues Brex cards gets spending information too late to matter. Card statements are reviewed at month end, by which time a team has already blown a software budget, a subscription renewed at triple price and someone has paid for a conference ticket that should have gone through approval. Questions about expenses are then asked weeks after the details are forgotten. Small amounts add up too, and nobody sees them in a monthly statement.

Each day, ClickRuntime lists the Brex card transactions since yesterday, adds up the total and posts a summary to Slack, calling out large transactions that cross the amount you set. The team sees what was spent while the purchase is still fresh in the cardholder's mind.

Finance teams, operations managers and founders who want light oversight without approving every purchase will find it useful.

What you get out of it

  • Overspending is noticed within a day

    A surprise charge appears in tomorrow's post, not next month's statement. You can query the cardholder while they still remember what the purchase was for. A surprise charge appears in tomorrow's post, not next month's statement, so you can ask the cardholder what it was for while they still remember the purchase clearly.

  • Large transactions get flagged

    Highlighting transactions over a threshold draws attention to the few that matter. Reviewing three flagged items takes a minute, where scanning a hundred lines takes an hour. Reviewing a handful of flagged items takes a minute, where scanning a long statement takes an hour, and the important ones are not buried.

  • Budgets stay under control

    Daily totals show the pace of spending against a monthly budget. A team approaching its limit can be told before it goes over. Daily totals show the pace of spending against a monthly budget, and a team approaching its limit can be told before it goes over rather than after.

  • Unexpected subscriptions are caught

    A software renewal at a higher price or an unknown vendor stands out in a short daily list. Canceling it the same week saves months of charges. A software renewal at a higher price or an unfamiliar vendor stands out in a short daily list, and canceling it the same week saves months of charges.

  • Month-end close is quicker

    Questions were asked and answered during the month, so the reconciliation has fewer open items. Accountants spend less time chasing receipts. Questions get asked and answered during the month, so reconciliation has fewer open items and accountants spend less time chasing missing receipts at the deadline.

How it works

What happens, step by step

  1. Every morning, ClickRuntime lists all Brex card charges posted yesterday.

  2. It looks up the name of each card and adds up the day's total.

  3. A message appears in your #spend Slack channel listing each charge by card and merchant, with anything over $500 marked and the total at the bottom.

Before it runs live

  • Connect Brex

What you get

RunsDaily
Get yesterday's card spend in Slack each morningtoday, 9:00Succeeded
Slack · #spendBrex card spend 2026-10-18 ⚠️ Sam's card · ACME CLOUD · $640.00 Total: $1,218.45

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Run it at a different time, more or less often, or only on weekdays
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other Brex steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
card_spend_alert_daily_digest.pyexample
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, http, notify

API = "https://platform.brexapis.com/v2"

@on_trigger
def run(event):
    h = {"Authorization": f"Bearer {credentials.secret('BREX_TOKEN')}"}
    day = (date.today() - timedelta(days=1)).isoformat()
    items = http.get(f"{API}/transactions/card/primary", headers=h,
                     params={"posted_at_start": day + "T00:00:00Z", "limit": 100}).json()["items"]
    items = [t for t in items if t["posted_at_date"] == day]
    cards, lines, total = {}, [], 0
    for t in items:
        if t["card_id"] not in cards:
            cards[t["card_id"]] = http.get(f"{API}/cards/{t['card_id']}", headers=h).json()["card_name"]
        amt = t["amount"]["amount"] / 100
        total += amt
        lines.append(f"{'⚠️ ' if amt > 500 else ''}{cards[t['card_id']]} · {t['merchant']['raw_descriptor']} · ${amt:,.2f}")
    notify.slack(f"Brex card spend {day}\n" + "\n".join(lines) + f"\n*Total: ${total:,.2f}*", channel="#spend")
    return {"transactions": len(items), "total": total}

FAQ

Common questions

How is a large transaction defined?
You set a dollar threshold, and any transaction at or above it is flagged in the digest. Amounts below the threshold still count in the total. Pick a value that highlights only the purchases you would want to ask about.
Does it include transactions that are still pending?
It lists card transactions available from Brex for the period. Brex distinguishes pending and settled items, and what is returned depends on its API. Pending items can change before they settle, so treat the daily total as an early view.
Can the digest go to a private channel?
Yes. The Slack destination can be a private channel or a direct message to the finance lead. Choose the audience carefully, because card transactions can show employee names and vendors. Ask your AI assistant to point it where you want.
What permissions does it need?
transactions read. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it runs (daily). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Get yesterday's card spend in Slack each morning” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.