Skip to content

The moment it happens

Get emailed about large new expenses

Any expense over your limit reaches your inbox the moment it is logged, so nothing big slips by.

Runs
The moment it happens
Apps
FreshBooks
AI
Not needed
Access
user:expenses:read

Send this to your assistant

Create a ClickRuntime automation: when a new expense over $500 is added in FreshBooks, email me the vendor, category, amount and who logged it.

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 freelancer, a small business owner and a bookkeeper all share the same worry about expenses: something unexpected gets logged, and no one catches it until the month-end review. A staff member books a four-figure software subscription, a card payment is entered under the wrong vendor, or a personal purchase slips into the business books. By the time the books are reconciled, the money is spent and the chance to question it has passed.

When an expense is logged in FreshBooks, the app sends a callback to ClickRuntime, which checks the amount against the threshold you choose and emails you if it is above. Small everyday expenses stay quiet, so the message appears only when the amount is worth a look.

It works best for owners who approve spending but do not enter it themselves.

What you get out of it

  • Question large purchases while reversible

    An email about a large expense arrives the day it is logged. You can ask what it was for while a refund or cancellation is still possible. Small leaks add up over a year.

  • Keep personal spending out of the books

    Seeing unusual items soon after they are entered discourages mistakes and helps staff learn what belongs in the business ledger. Mistakes are corrected while they are still easy to explain.

  • Reduce month-end surprises

    The reconciliation at month-end no longer holds unwelcome discoveries. You have already seen anything large, so the review is faster and calmer. Fewer reviews end with an awkward question about old spending.

  • Strengthen control without bureaucracy

    A threshold alert is a light form of approval for small teams. It adds oversight without forms, sign-offs or a purchasing system. Owners keep control without slowing anyone down or adding paperwork.

  • Spot errors in amounts or vendors

    A figure with an extra zero or a vendor you do not recognize stands out in a short alert. Fixing a typo is easy now and awkward after tax filings. Correcting a bad figure now avoids confusion when taxes are prepared later.

How it works

What happens, step by step

  1. When an expense is logged in FreshBooks, FreshBooks tells ClickRuntime straight away.

  2. ClickRuntime checks the amount against the limit you set and ignores anything below it.

  3. Expenses over the limit reach your inbox with the amount, vendor and category.

Before it runs live

  • Connect FreshBooks
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Get emailed about large new expensesjust nowSucceeded
Email · Large expenseNew expense: 1,280.00 at Acme Office Supply Category: Office Supplies

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

  • Act only on the items that match your own rules, and skip the rest
  • 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 FreshBooks 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.
new_expense_alert.pyexample
from clickruntime import on_event, credentials, http, notify

FB = "https://api.freshbooks.com"

def fb():
    token = credentials.connection("freshbooks", "work")
    headers = {"Authorization": f"Bearer {token}"}
    me = http.get(f"{FB}/auth/api/v1/users/me", headers=headers).json()["response"]
    return headers, me["business_memberships"][0]["business"]["account_id"]

@on_event
def handle(event):
    data = event.json or {}
    headers, account = fb()
    if "verifier" in data:  # one-time callback verification
        http.put(f"{FB}/events/account/{account}/events/callbacks/{data['callback_id']}", headers=headers,
                 json={"callback": {"verifier": data["verifier"]}})
        return {"verified": True}
    if data.get("name") != "expense.create":
        return {"skipped": data.get("name")}
    base = f"{FB}/accounting/account/{account}/expenses"
    exp = http.get(f"{base}/expenses/{data['object_id']}", headers=headers).json()["response"]["result"]["expense"]
    amount = float(exp["amount"]["amount"])
    if amount <= 500:
        return {"skipped": "under 500"}
    cat = http.get(f"{base}/categories/{exp['categoryid']}", headers=headers).json()["response"]["result"]["category"]
    notify.email_me(f"New expense: {amount:,.2f} at {exp['vendor']}",
                    f"Vendor: {exp['vendor']}\nCategory: {cat['category']}\nAmount: {amount:,.2f} {exp['amount']['code']}\nLogged by staff #{exp['staffid']}")
    return {"expense_id": data["object_id"]}

FAQ

Common questions

How do I set the amount threshold?
You tell the assistant a number, such as 500 dollars, and the flow emails only for expenses above it. You can also set different thresholds by category, such as travel versus software. Both options are easy to adjust later.
Does it include the receipt?
The email contains the expense details FreshBooks returns, such as vendor, category, date and amount, and a link to open the expense. Receipt images stay in FreshBooks, where you can view them from the link.
Will edits to an expense trigger another alert?
The flow reacts to new expenses. A change to an existing expense is a different event, so it is not reported unless you ask for an alert on updates too, which can create more emails.
What permissions does it need?
user:expenses: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 for each event the app sends.
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 emailed about large new expenses” from your assistant

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