[object Object]

If you bill customers by the hour or run an internal cost-recovery model, Freshdesk time tracking is the difference between accurate revenue and made-up estimates. Configuration decides whether agents actually log.

Auto-start timers

Enable: Admin, Time Tracking, “Start a timer when an agent opens a ticket.” This is the single biggest improvement to data quality. Without it, agents forget to start the timer 60 percent of the time and reconstruct from memory at end of week.

The timer pauses when the agent navigates away and resumes on return. Multiple open tickets each have their own timer; only one ticks at a time (whichever tab is active).

Manual entries for after-the-fact

Agents working in batch (resolving 30 tickets in an hour) should not start and stop timers individually. Allow manual time entries with a default duration. Train them to log after each ticket batch with notes on what was done.

The time entry form has fields for billable yes/no, billing rate, note. Make the note required via custom field validation; “1 hour” with no description is useless on the invoice.

Billable versus non-billable

Default billable status should be configured per group, not per ticket. Customer-facing groups default billable; internal IT or escalation groups default non-billable. Override per ticket when needed.

A common mistake: every ticket marked billable by default, then unbilling at month-end. Reverses the burden. Default to non-billable and require agents to mark billable, with billable rate inherited from the contract.

Rates per contract

Billing rates live in the contract custom field on the company record. Time entries pull the rate from the requester’s company. If a company has no rate set, time entries fall back to a default rate (set under Time Tracking settings).

For multi-rate contracts (different rates for engineering vs admin support), use a custom field on the time entry to select the rate type. The invoice script reads the rate type and applies the right number.

Approval workflow

Hours over a threshold (e.g., 4 hours on a single ticket) auto-trigger manager approval before invoicing. Build the workflow: on time_entry.created where duration > 4 hours, send approval request to group lead. The entry stays in “Pending approval” status, excluded from invoice exports.

This catches overcharges before they reach the customer.

Reporting and export

The standard time tracking report breaks down by agent, group, company, billable status. Export weekly to CSV and feed into your billing system. There is no native invoice generation; integrate with QuickBooks, Xero, or NetSuite via the marketplace.

For monthly invoicing, lock the period: a workflow that prevents editing time entries on closed tickets older than 30 days. Without this, late edits create invoice reconciliation pain.

SLA versus time tracked

These are separate clocks. SLA pauses based on status (waiting on customer); time tracking is what the agent actually worked. A ticket can have 2 hours of agent time over 5 days of SLA elapsed because the customer was slow to respond. Both are correct; do not conflate them in reports.

Mobile timer

The mobile app supports start/stop on the timer but not manual entries. Field agents should log manually back at desktop or use the start/stop pattern.

What to do this week

Enable auto-start timers if they are off. Pull last month’s time entries and check the percent with empty notes. If above 10 percent, make notes required and retrain the team.

[object Object]
Share