Hours Approval
For services billing, hours are inventory. Hours Approval is a single cross-contract queue of pending drawdowns (hours submitted against a prepaid contract block), so someone accountable signs off before the block burns.
Key capabilities
- One queue of pending drawdowns across all contracts, searchable by customer, project, item, or note
- Hours arrive from three channels, shown in the Via column: Manual (the client portal or logged by hand), Slack (the
/hoursslash command), and Email (inbound replies) - A Revenue impact column shows hours times the order line's unit price when the entry is tied to a line (a dash otherwise)
- Approve (edit hours) opens an Approve hours window where you can correct the hours first; the submitted figure is kept on the entry as the original
- Return sends an entry back to the submitter without burning the block
- Select rows, then Approve selected or Return selected; the bar shows the selected count and total hours
- Approved drawdowns burn down the contract's prepaid hour block (bought / used / remaining) and recognize revenue by the hours percentage, drawing on Deferred Revenue
- An approval that uses up the block completes the contract
- An optional Hours approver role in O2C Settings restricts who can approve and return
How to use it
- Open Hours Approval in the Order to Cash workspace to see each pending drawdown with its date, customer and project, item or note, submitter (By), Via, hours, Revenue impact, and Status.
- Click the check icon on a row (Approve (edit hours)), adjust Hours if the submission was off, and click Approve. To reject, click the return icon (Return); the submitter sees it as returned.
- To clear many at once, tick the checkboxes and use Approve selected or Return selected. Only rows that can still be approved or returned are counted.
- Watch the contract's burndown update: used hours climb, remaining hours fall.
- For the full history, run the Hours ledger report from Order to Cash reports.
Why an approval can fail
| Message (in substance) | Cause and fix |
|---|---|
| Send the contract's first invoice before approving drawdowns | The prepaid amount is not yet booked to Deferred Revenue. On the contract click Draft invoices, then approve and send the draft from Invoice Review |
| Approved hours would exceed the hours remaining on the block | The corrected hours go past the block. Lower them, or raise a change order for more hours |
| Approved hours would exceed the hours bought on this order line | A drawdown tied to a specific prepaid line is capped at that line's quantity |
| This action requires an active contract | The contract is paused or already completed. Resume a paused contract first |
| Your role is not permitted to approve or return hours | O2C Settings restricts the gate to a role (Hours approver role); ask someone with that role, or change the setting |
| Approved hours must be greater than zero | The corrected hours were zero or negative |
Pro tips
- Encourage teams to log via Slack
/hoursas work happens; small, frequent drawdowns are easier to review than a month-end dump. - Check remaining hours before approving large drawdowns; a block near zero is your cue to send a change order rather than eat the overage.
- Leaving Hours approver role blank in O2C Settings keeps the gate open to any member of the business, so set it (for example to admin) when sign-off must be controlled.
- The queue shows pending entries only. A notice appears if it was too large to load fully; search and sort then cover just the rows shown.