Use “Pull hours into pending items” in Recued. Turn unbilled time entries into pending billable items, priced at a rate you give.
Pull hours into pending items
Use “Pull hours into pending items” in Recued. Turn unbilled time entries into pending billable items, priced at a rate you give.
Complete workflow
Use Invoice Book in Recued for invoicing, receivables, getting paid, and freelance. It includes 18 built-in actions and 11 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 “Issue an invoice” in Recued. Turn the entries you picked into an invoice: lines frozen at issue time, total computed once from minutes, and a balance that payments come off.
Use “Record a payment” in Recued. Take a payment off an invoice's balance. Part payments are supported; overpayment is refused rather than absorbed, and the invoice settles when the balance reaches zero.
Use “Who owes you” in Recued. Every open invoice with what is outstanding, which are overdue, and the oldest one still unpaid.
Use “What each client owes” in Recued. One line per client: what is outstanding, across how many invoices, and how long the oldest has been due.
Use “Records runtime” in Recued. It helps you complete this workflow using the connections and settings you choose.
Show all 12 recipes
Use “Add something billable” in Recued. Anything you can charge for that is not logged time — a fixed fee, materials, a call-out. A negative amount is a credit.
Use “Delete a pending item” in Recued. Remove something from the pending list. If it came from logged hours, you choose whether those hours go back on the unbilled list or get deleted with it.
Use “What could go on an invoice” in Recued. Everything billable and not yet invoiced — hours you pulled across and fees you typed in — each with its id, so you can choose.
Use “Carry a balance forward” in Recued. Close a part-paid invoice and issue a new one for exactly what is left, with the VAT carried in proportion. The new invoice takes no items.
Use “One invoice” in Recued. Open one invoice from the list that names it, and read everything recorded about that invoice on one page.
Use “One billable item” in Recued. Open one billable item from the list that names it, and read everything recorded about that billable item on one page.
The bridge
This is the one recipe in invoice-book that reads another pack, and the pack declares that dependency rather than reaching across quietly.
⛔⛔ AN HOUR CANNOT BECOME TWO BILLABLE ITEMS. Every item this creates carries the time entry's id in source_ref, and a second pull skips anything already carried across. It looks each candidate up by that id (source_ref in the candidates' ids), never by reading a page of every item ever pulled: until 2026-10-11 it read 200 items in id order, which is no order at all, so once more than 200 existed the check could miss the one item that mattered. Without that, pulling the same range twice would put the same hour on two invoices — the exact failure bill-period's never-bill-twice guard exists to stop, arriving through a side door that guard cannot see.
⛔⛔ PULLED HOURS ARE MARKED CLAIMED IN billable-hours, with invoice_ref set to item:<id> so the claim points at what made it. This is deliberate and it is the opposite of what an earlier version did.
⚠ Two packs write that flag, and that is correct — because they write it with the SAME meaning: this hour has been claimed for billing. bill-period claims by invoicing directly; this claims by turning the hour into a pending item. A single guard then covers both paths. The version that left the entries untouched had the opposite property: neither path could see the other, so an hour pulled here could still be billed there, and keeping the two ledgers straight was left to whoever remembered.
⚠ A claim is not an invoice. Delete the pending item and the hour stays claimed — the same as running bill-period and never sending the invoice. invoice_ref carries the item id so you can see what happened.
⚠ If a claim fails the card says so loudly. An hour that became an item but was not claimed is exactly the double-billable state, and it must not be reported as a clean run. Running it again finishes the job: an unclaimed hour that already has an item is claimed against that item, and no second item is made. (Until 2026-10-11 the re-run skipped it, claimed nothing and said nothing, so the hour stayed billable.)
⚠ One run pulls at most limit entries (200), oldest first from the start of the range. The range is read upward from its start, so older unbilled hours cannot fill the page and hide it (they did until 2026-10-11: 200 unbilled hours before the range pulled nothing in it). When a run reaches the limit the card says there may be more; run it again.
⚠ Pricing happens here, once, at the rate you give. Items carry money; hours carry minutes. Changing the rate afterwards does not reprice an item that already exists, which is correct — you decided a price.
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
to date
setting
=
from date
setting
=
engagement id
setting
=
[object Object]
rate per hour
setting
=
0
client contact
setting
=
Uses (4 operations)
recued-core.billable-hours.entry.search
recued-core.invoice-book.billable_item.search
recued-core.invoice-book.billable_item.create
recued-core.billable-hours.entry.update
Trust & control
What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.
What it's allowed to do
2 more aren't listed here. You'll see them at install.