Recipe: Bill Hours Automatically

Turn the time your team logs on tasks into draft invoices, with no manual tallying. Two flavors: invoice a client the moment they cross an hours threshold, or invoice everything logged-to-date on a set day each month.

Draft, never sent: every invoice this creates is a draft for you to review (and tweak) before sending. Nothing goes to a client automatically.

What it does

When time is logged on a task marked Billable, ClientCove knows how many un-invoiced hours a client has accumulated. An automation watches that number and, when your rule says so, creates one itemized draft invoice — one line per task, priced at the rate of the person who did the work — then marks those hours as billed so they're never invoiced twice.

One-time setup

Three things make a task billable and priced.

  1. Mark tasks Billable. On a task, switch on Billable. Only billable tasks are ever picked up for invoicing.

  2. Set who bills at what rate. Rates follow the person doing the work. On a staff member's profile there's a Billable Rate ($/hour) field. When a task is invoiced, ClientCove uses the task author's rate.

    • Only Administrators, System Admins, and Tech Admins can see or set these rates (it's a per-role permission).
    • No rate on the person? It falls back to the client's Default Billable Rate (on the client record).
    • No rate anywhere? That task is skipped and reported — never billed at $0. Set a rate and the next run picks it up.
  3. Log time. Use the task's Time Spent (hours) field as usual. That's the number everything is built from.

Recipe A — Bill at a threshold

"When Acme hits 30 billable hours, draft an invoice for those hours."

  1. TriggerWhen something happensBillable hours are logged.
  2. Only run ifUninvoiced hours · is greater than or equal to · 30. (Add Client · equals · your client to scope it to one account, or leave it off to apply the rule to every client.)
  3. Action stepCreate Invoice From Billable Tasks
    • client_id → mapped from the trigger's Client.
    • minimum_hours30.
  4. (Optional) a second step → Send Notification to staff: Draft invoice #{steps.0.data.invoice_id} is ready for review.
  5. Tick Allow destructive steps and enable.

The moment logged hours push a client to 30+, you get a draft invoice for exactly those hours.

Recipe B — Bill monthly

"On the 1st of each month, invoice every client for the hours billed to date."

  1. TriggerOn a scheduleMonthly, day 1, at your preferred time.
  2. Action stepCreate Invoice From Billable Tasks
    • client_id → the client this automation bills. (In this release, use one scheduled automation per client — clone it and change the client. Billing every client from a single automation arrives with iteration in a later release.)
    • Leave minimum_hours empty to bill whatever has accumulated.
  3. (Optional) notify step as above, then enable.

A month with no un-invoiced hours simply creates nothing — no empty drafts.

How duplicates are prevented

Each task remembers how many of its hours have already been invoiced. An automation only ever bills the difference between hours logged and hours already billed. So:

  • Running the same automation twice in a row bills nothing the second time — there's no new un-billed time.
  • If a task was billed at 5 hours and later logs 3 more, the next run bills exactly those 3 — you never lose hours, and you never double-charge.

You don't have to think about any of this; it's automatic.

Good to know

  • It's a draft. Review it, adjust any one-off line, then send it from the invoice as usual.
  • Skipped tasks are reported. The run result lists any tasks it couldn't price so you can add a rate — they're never billed at $0.
  • Hours only, not dollars, drive the threshold. "30 hours" means 30 logged billable hours, regardless of rate.
  • Deleting a draft leaves those hours marked billed for now; re-open the tasks if you need to re-bill them.

Was this page helpful?