Skip to content

On a schedule

Hear when a project uses 80% of its budget

You get one email for each project that crosses 80% of its budget, early enough to talk to the client.

Runs
On a schedule
Apps
Harvest
AI
Not needed
Access
read (admin)

Send this to your assistant

Create a ClickRuntime automation: every morning at 8am, check my Harvest project budgets and email me any project that has gone over 80% for the first time.

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

Fixed-fee and capped projects have a budget in Harvest, and the dangerous moment is not when it is spent but when it is two-thirds spent and the work is only half done. A project manager running six projects cannot watch six budget bars daily, so the first warning is often the invoice showing the project is 110% over. At that point the conversation with the client is about an overrun that has already happened.

On a schedule, the project budget report is read, projects over 80% of their budget are identified and, if they have not been flagged before, an email lists them with hours or dollars used, the budget and the percentage. Each project is flagged once, so the email is a signal and not a nag.

It suits agencies, consultants and in-house teams that deliver against fixed budgets and need time to renegotiate scope.

What you get out of it

  • Overruns are discussed before they happen

    At 80% you can still agree a scope change, a change order or a reprioritization with the client. At 110% you can only explain what went wrong. Early talks about scope are usually friendlier than late ones about overruns.

  • Margins are protected

    Unbilled overrun hours come straight out of profit on a fixed-fee job. An early warning gives you the chance to cut scope or add budget before the loss is locked in.

  • Project managers stay in control of many projects

    Instead of checking every budget bar daily, the manager is told about the ones that need attention, which makes a long project list manageable. With a list of risky projects each cycle, attention goes where it is needed most.

  • Clients hear it from you first

    A proactive message about budget status builds trust. Clients who are surprised by an overrun on the invoice rarely respond well, however good the work was. Proactive updates tend to be received as professionalism, not as bad news.

  • Estimates improve over time

    Seeing which projects hit 80% early, and why, gives you data to improve estimates on the next proposal, so the same mistakes do not recur. Over a year that history makes proposals more realistic and reduces repeat overruns.

  • Agreed scope changes get documented

    An early warning is the natural moment to write a change order. When it is sent at 80% and not after the budget is gone, clients are more willing to approve it and you have a paper trail for the extra work.

How it works

What happens, step by step

  1. Every morning at 8, ClickRuntime pulls the budget report for your Harvest projects.

  2. It picks out projects that have used 80% or more of their budget and that you have not already been warned about.

  3. You get one email listing each project with the share of budget used and how much is left, for example "Acme / Website relaunch: 83% used".

Before it runs live

  • Connect Harvest

What you get

RunsOn a schedule
Hear when a project uses 80% of its budgettoday, 9:00Succeeded
Email · 1 Harvest project over 80% of budgetAcme / Website relaunch: 83% used (34.0 left)

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 Harvest 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.
project_budget_threshold_alert.pyexample
from clickruntime import on_trigger, state, notify, http, credentials

@on_trigger
def run(event):
    headers = {"Authorization": "Bearer " + credentials.secret("HARVEST_TOKEN"),
               "Harvest-Account-Id": credentials.secret("HARVEST_ACCOUNT_ID"), "User-Agent": "ClickRuntime"}
    results = http.get("https://api.harvestapp.com/v2/reports/project_budget", headers=headers, params={"is_active": "true"}).json()["results"]
    alerted = set(state.get("alerted") or [])
    over = [p for p in results if p.get("budget") and p["budget_spent"] / p["budget"] >= 0.8 and p["project_id"] not in alerted]
    if over:
        lines = [f"{p['client_name']} / {p['project_name']}: {p['budget_spent'] / p['budget']:.0%} used ({p['budget_remaining']:,.1f} left)" for p in over]
        notify.email_me(f"{len(over)} Harvest projects over 80% of budget", "\n".join(lines))
        state.set("alerted", list(alerted | {p["project_id"] for p in over}))
    return {"over": len(over)}

FAQ

Common questions

Can I change the 80% threshold?
Yes. The percentage is a simple setting, so you could use 70% for tight projects or add a second alert at 100%. Ask for the change in plain words and approve the new version before it runs.
Does it cover both hours-based and fee-based budgets?
It works from Harvest's project budget report, which tracks whichever budget type you set on the project. Projects without any budget are skipped because there is nothing to compare against. Projects without any budget configured are ignored.
Will it keep alerting while the project stays above 80%?
No. A project is flagged once when it crosses the line and remembered afterward. If you want a second warning at 100%, that can be added as its own threshold so you are told at both points.
What permissions does it need?
read (admin). 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 (on a schedule). 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 “Hear when a project uses 80% of its budget” from your assistant

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