If you sell time, the money leaks in the gap between the work happening and the invoice going out. Hours nobody wrote down. A budget that was passed three weeks ago. A customer disputing a line six weeks after the person who worked it has forgotten the day.
This closes that gap by keeping the budget, the hours, the approval and the invoice on one thread.
What you can do
- Set up a project as time and materials, a fixed fee, or non-billable.
- Give it a budget in hours or in money, for the project as a whole, per task, or per person.
- Get warned before the budget is gone, at a percentage you choose, rather than afterwards.
- Track time in a day, week or month view, or by starting a timer and forgetting about it.
- Copy last week rather than re-entering a schedule that barely changes.
- Keep two sets of notes on an entry: one for your team, one the customer will see.
- Send timesheets to the customer for approval, and have them sign them off.
- Invoice the approved hours, grouped the way that customer expects to see them.
- Set rates per person, per task or per project, and let the most specific one win.
- Pull in worklogs from Jira where the time is already being tracked there.
How it works in practice
Set the project up once (Operations → Projects → New). Choose the customer and the contact, give it a code, and decide how it’s billed. That last choice matters more than it looks, because it decides whether hours are billable by default and how they’ll be grouped when you come to invoice them.
Decide what “over budget” means. A budget can be hours or money, and it can sit on the whole project, on each task, or on each person. Set the notification threshold wherever gives you time to do something about it - eighty percent is the usual answer - and choose whether the team can see the budget they’re working against. Some businesses want that visible. Some very much don’t.
Log time the way the person actually works (Operations → Timesheets). The week view is a grid of
projects and tasks against seven days, edited in place. The day view is a list with a start and stop
timer, for people who work in blocks. The month view is for whoever fills it all in on the last
Friday, and there’s a phone-sized day view for the ones who never open a laptop. Type 2:45 or 165
- both mean the same thing.
Don’t retype a repeating week. Copy a recent day, week or month and adjust it. Most consulting weeks are the last one with two cells different.
Get it approved by the person who pays (Operations → Projects → Approvals). Select the timesheets and an email goes to the approver with the hours grouped by week, team, project and task, rather than as a spreadsheet attachment. They approve or reject from the email and sign it, and the entries are marked accordingly. Every send is logged on the approval, so “we never received it” has an answer.
Invoice what was approved. The approved hours become document lines grouped by whatever the project says: one line per project, per task, per person, or one line per individual entry for a customer who wants to see every hour. From there it’s an ordinary invoice, which means it posts to your accounts like every other invoice.
Let the rate sort itself out. A person can have their own rate, a task can have one, and the project can have one. The most specific applicable rate wins, so the senior contractor on a discounted project bills correctly without anyone doing arithmetic.
Good to know
- You’ll need the Operations extension switched on (Settings → Extensions). Projects, timesheets and HR arrive together on one switch, because they share the same people and the same permissions, and splitting them would mean maintaining the same employee twice.
- Approval is email-based and needs its own setup. An approval carries a sender address, a recipient and the message they receive. Fill those in before the first send rather than during it.
- Timesheet permissions are granular. Viewing, creating, editing, running the timer and deleting are separate rights. A team where everyone logs their own time but only a lead can edit somebody else’s is a normal setup, not a workaround.
- A running timer is a live entry, not a draft. It appears in the week’s totals as it runs, which is on purpose: an unfinished day shouldn’t look like an empty one.
- Jira worklog sync needs the Jira connector configured, and it’s one link per task. Where time is already tracked in Jira this stops it being tracked twice. Where it isn’t, none of this applies.
- Non-billable is a real option. Internal projects tracked for capacity rather than revenue behave the same way everywhere else. They just never reach an invoice.