Skip to content

Time tracking ​

Time tracking in OpsMerge captures how long your team spends on each ticket. Billable time feeds into invoices once the timesheet it sits on has been approved; non-billable time still gets recorded for reporting and capacity planning.

Two ways to log time ​

  1. The active timer. Start/stop button on each ticket; runs in real time.
  2. Manual entry. Add a time entry after the fact — describe what you did and how long.

Most operators use a mix — the timer for sustained work, manual entry for short interactions ("answered a quick question, 5 minutes").

The active timer ​

On any ticket header:

  • Start timer begins counting.
  • A timer pill appears in the OpsMerge nav bar showing the running clock.
  • The timer survives page navigation — open another tab in OpsMerge, the timer keeps running. It's server-side, so it also survives closing the browser.
  • You can have several timers open at once (one per ticket you're juggling). Pause and Resume each independently from the pill's timer menu. By default, starting or resuming one pauses your others — turn that off under Preferences in the timer menu.
  • Stop opens the Stop Timer & Save dialog.

The stop dialog shows the elapsed time, lets you edit the Notes (they become the entry's description) and, if you started the timer on the wrong ticket, reassign the Ticket. Both are saved onto the timer before it stops. Then:

  • Save Entry commits the elapsed time as a time entry.
  • Discard drops the timer with no entry created.

Two things the dialog does not decide, so it's worth knowing what they default to:

  • Billable. Time committed from a timer is always recorded as billable. If it shouldn't be, edit the entry afterwards on your timesheet while it's still in draft.
  • Service. Timer-stop entries carry no service of their own, so the org's Default T&M service (see below) is applied. Without that default set, a billable entry has no service, and time with no service never reaches an invoice.

Elapsed time is rounded using your org's rounding rules, and a single entry is capped at 24 hours — a timer left running over a weekend commits 24h, not 60. Correct it on your timesheet if the real span differs.

Stop the timer to commit the time

Only Stop → Save Entry turns a running timer into a time entry. Closing a ticket that still has timers on it is refused with a "ticket has active timers" prompt; if you confirm the discard, that time is destroyed, not billed. Rule-driven and resolved-ageing closes discard silently. A forgotten timer discarded on close = lost billable work.

You may only discard your own timers this way. If a colleague has a timer on the ticket, the close is refused and the prompt names them — ask them to stop or discard it themselves. A customer closing their own ticket from the portal never destroys your timer either; it's paused and left for you.

Passive timer (auto-start) ​

There is a per-user Auto-start a timer when I open a ticket preference in the timer menu's Preferences dialog. It is currently disabled while the passive-timer flow is reworked — the toggle is greyed out, and the auto-start does not fire even for users who previously turned it on. Start timers manually for now.

Manual entries ​

Two places, for two different jobs.

On the ticket — the Time entries panel has a quick-add row: type a duration (15m, 1h, 1h30m, or a bare number for hours), optionally add notes, set the billable toggle, Log. Built for the "answered a quick question" case; it takes seconds.

From your timesheet — Time → Timesheet → Log Time opens the fuller dialog: pick the Ticket, set Start and End (the duration is computed from them), Billable, and Notes. Use this when the span matters.

Billable entries created without a service pick up the org's Default T&M service, same as timer-stop entries.

Manual entries are good for short interactions that didn't justify timer overhead, and for retroactively logging time when you forgot the timer.

Billable vs internal ​

TypeWhat it means
BillableOnce the timesheet is approved, aggregates onto the client's Time-and-materials contract line and bills on the next invoice.
InternalRecorded but not billed — for reporting and capacity.

Every entry defaults to billable. There is no per-contract override of that default: the contract decides whether billable time bills (a client with no time-entries contract line simply never gets invoiced for it), not what the technician's entry defaults to.

Rounding and minimums ​

Settings → Time Tracking controls how logged time converts to billable time, for the whole org:

  • Timesheet period — weekly (Mon–Sun) or biweekly.
  • Rounding increment — 6 / 10 / 15 / 30 minutes.
  • Rounding direction — always round up, or round to nearest.
  • Minimum billing increment — entries shorter than this bill at this minimum.
  • Default T&M service — the service applied to billable time logged without one. The same page warns you how many billable, unbilled entries currently have no service, and offers to apply the default to them in bulk.

The raw duration is always kept; rounding only affects the billable duration, which is the figure that reaches an invoice.

Timesheets and approval ​

Every time entry — timer, manual, or one created by a remote-session bridge — lands on your timesheet for the period it falls in. There is no way to log time outside a timesheet, and approval is not optional:

  1. Draft. Your current period. Entries can be added, edited and deleted here, and only here.
  2. Submitted. Time → Timesheet → Submit for Approval. The sheet locks — you can't edit entries, add entries, or stop a timer into that period.
  3. Approved or Rejected. A reviewer (someone with the approve time entries permission) acts on it from Time → Time Approvals. Rejection carries a required reason, which you'll see; Edit & Resubmit returns the sheet to draft so you can fix and resend it.

Only approved time bills. An entry sitting on a draft, submitted or rejected timesheet is invisible to invoice generation, however billable it is. If time isn't showing up on an invoice, an unapproved timesheet is the first thing to check.

You cannot approve your own timesheet, even if you hold the approve permission — approval is the gate that releases billable hours onto a client's invoice, so it always takes a second person.

Editing time ​

An entry can be edited or deleted while both of these hold:

  • its timesheet is still in draft, and
  • it has not yet been billed onto an invoice.

Otherwise the edit is refused. To correct approved-but-unbilled time, a reviewer can reject the timesheet so its owner can reopen and fix it. To correct time that has already been invoiced, void the invoice first — that releases the entries.

You can edit your own entries. Editing a colleague's requires the approve time entries permission — the same reviewers who sign off timesheets.

One sharp edge worth knowing: changing an entry's duration recomputes its billable duration through the rounding rules, but changing its start or end time does not. If you're correcting a span, set the duration too.

Time on closed tickets ​

Closing a ticket does not close its time:

  • Entries already logged stay exactly as they are, and follow the timesheet rules above — a closed ticket does not lock its entries, and an open one does not unlock them.
  • Time can still be logged against a closed ticket (useful for late paperwork). Backdating is allowed up to 400 days.
  • Timers still attached at close are never committed. Depending on who closed it they are discarded (destroyed) or paused and kept — see the warning above.

How time hits invoices ​

Time bills through a contract line on the client's contract:

  • Add a line with quantity source = Time entries and pick the service it bills. That line's unit price is the hourly rate.
  • At invoice time, OpsMerge sweeps every time entry that is billable, not yet billed, stamped with that service, on a ticket belonging to that client, and on an approved timesheet. Those hours become one line on the invoice, and the entries are stamped as billed so they can never be invoiced twice.
  • A client with no time-entries line never gets invoiced for time, however much is logged — the time is still recorded and still reportable.

There's no lower date bound on the sweep, so time logged late or backdated is picked up on the next run rather than being orphaned.

Voiding an invoice releases the time entries it consumed, so a corrected invoice picks them up again.

Reports ​

There is no canned time-reports page. Time is a first-class data source in the report builder instead: Reports → Queries → new query → Time entries, which can join through to tickets and clients. Fields available include ticket, user, start/end, duration, billable duration, billable flag and source.

Save a query to re-run it, and schedule it from Reports → Schedules if you want it emailed on a cadence.

Common patterns ​

"Always log time" ​

Make it a team rule: every ticket gets time logged before closing. Use the active timer for sustained work, manual entry for short interactions.

OpsMerge does not enforce this — closing a ticket with no time logged is allowed and silent. The nearest guard rail is the active-timer prompt on close, which only fires when a timer is actually running.

"Forgotten timer" ​

If you realise you forgot to start the timer halfway through, don't start one now and try to backdate it — the stop dialog can't change the start time, and editing the start afterwards won't recompute what you bill.

Instead: log a manual entry from Time → Timesheet → Log Time with the correct start and end, and note in the description that it covers work that began before the timer.

"Bulk-logging time at end-of-day" ​

Some operators prefer this. Open the ticket, type 30m and a note into the Time entries panel, Log. Repeat for each ticket. Faster than starting/stopping timers, slightly more error-prone.

Common issues ​

Time entries are missing from an invoice I expected them on. Work through, in order: is the parent timesheet approved? Is the entry marked billable? Does it carry a service, and does that service match the contract line? Is the entry on a ticket whose client is the one being invoiced? Does the contract even have a time-entries line? The invoice's detail view shows which entries it picked up.

A batch of billable time has no service. Settings → Time Tracking counts these and offers to apply the org's default T&M service to them in one action. Until then they will not invoice.

My timesheet won't let me add an entry. It's been submitted. Ask a reviewer to approve or reject it; a rejected sheet can be reopened with Edit & Resubmit.

A ticket won't close — "ticket has active timers". Someone still has a timer on it. Stop it (commits the time) or discard it (destroys the time) from the timer menu, then close. If the timer is a colleague's, the prompt names them; only they can clear it.

Timer keeps running after I closed the tab. That's by design — the timer is server-side. Open OpsMerge again and you'll see it ticking. Stop it. The pill warns you when a timer has been running for over 8 hours.

Next ​

Lovingly Created in the UK
OpsMerge is a product of Brindleford Technologies Ltd, company number 16871436, registered in England and Wales.