Use “Bill a period” in Recued. Group a period's unbilled billable hours by task, stamp each entry with your invoice reference, and produce invoice lines whose amounts add up to the total. Entries already carrying an invoice reference are left alone, so running it twice cannot charge the same hour twice.
Bill a period
Use “Bill a period” in Recued. Group a period's unbilled billable hours by task, stamp each entry with your invoice reference, and produce invoice lines whose amounts add up to the total. Entries already carrying an invoice reference are left alone, so running it twice cannot charge the same hour twice.
Complete workflow
Use Billable Hours in Recued for time tracking, invoicing, freelance, and consulting. It includes 11 built-in actions and 4 ready-to-run workflows. Actions that change data use Recued's approval controls.
You are viewing one recipe in this workflow. Installing it opens the complete pack so its other recipes and background automations arrive together.
Use “Open an engagement” in Recued. Record a client and the hourly rate you bill them. Keyed on the label, so re-running with the same one converges instead of opening a second engagement at a different rate.
Use “Log hours” in Recued. Record one block of work against an engagement. It uses the connections and settings you choose when you run it.
Use “Show unbilled hours” in Recued. What you have worked and not yet billed, per task. Hours and entry count come from the store over every matching row; the per-task money breakdown covers the entries fetched, and the card says when those differ.
Use “Records runtime” in Recued. It helps you complete this workflow using the connections and settings you choose.
Billing
Give a month and your invoice reference. Every billable, not-yet-invoiced entry in that month is stamped with it, and you get the line items and the total to put on the invoice.
⛔⛔ AN HOUR CANNOT BE BILLED TWICE, and that is the one thing this recipe must get right. An entry is selected only if it is billable, not flagged invoiced, and carries no invoice reference — two independent signals, both of which must say never-billed. Either one alone would do under this recipe's own writes, which set both together; the pair is there so that a hand-edited row, a half-applied migration, or a future recipe that sets one and not the other still cannot produce a second charge. Re-running the same month bills nothing further and says so; re-running with a DIFFERENT reference also bills nothing, because selection is on the entry's own state and never on the reference matching.
⚠ The flip side is deliberate: an entry you have hand-annotated with an invoice reference will never be billed by this recipe. It is counted under "already billed" so it is visible rather than silently missing.
⚠ This does not create, send, or reconcile an invoice. It stamps your time records and hands you the lines. Putting them on an invoice — and getting paid — is the seller packs' job, or your accountant's. Nothing here talks to a payment provider.
⚠ Non-billable entries are never stamped and never appear in the lines. They stay unbilled forever by design.
⛔⛔ THE INVOICE FOOTS: money is rounded PER TASK GROUP, and the total is the SUM OF THE ROUNDED GROUP AMOUNTS. This is deliberately not the same as rounding once at the end — the two can differ by a penny or two, and when they do, the footing one is correct. A client checking your invoice with a calculator adds up the printed lines; a total that disagrees with them is a defect they will find and you will have to explain. ⚠ The consequence: list-unbilled-hours groups the same way for the same reason, so the preview and the bill agree.
⚠ Hours are still derived from whole MINUTES, once per group. Minutes are what is stored; money is computed from them at the group level and never per entry, so no single line's rounding can drift.
⚠ Entries with no task reference group together into ONE blank-labelled line — whether the field was left empty or was never set at all. Those are different values in storage and would otherwise become two lines, the second one labelled null on an invoice you send a client. That is a real line on your invoice, not an error — it is the work you did not tag.
⚠ Stamping is per entry and not transactional across the set. If the run dies part-way, some entries carry the reference and some do not; re-running stamps the remainder under the same reference rather than starting again, which is why the reference is yours to supply rather than generated.
How it works
Inspect the data fetches, transforms, gates, and output this recipe runs.
Settings
Configurable at install. Defaults shown — change them anytime in Recued.
limit
setting
=
200
period
setting
=
[object Object]
invoice ref
setting
=
[object Object]
engagement id
setting
=
[object Object]