Time tracking is where you and your team log work hours against projects and tickets. The page combines a live timer (with pause, resume, and switch-task controls), a log of every entry past and present, six summary cards across the top, five filters, manual-entry support, and a CSV export. Categories color-code each log so you can see at a glance whether your team is in meetings, deep work, customer support, or anywhere else.
Getting started
Navigate to Project management > Time tracker from the sidebar.
How it works
Time tracking has three main areas:
- Active timer card at the top (only visible when a timer is running) with project, ticket, category, elapsed time, and Pause / Switch / Stop controls
- Analytics row of summary cards: Today, This week, This month, Active users, Projects, Tickets. When a date filter is applied, the time-period cards collapse into a single Total time card
- Time logs table listing every entry with project, ticket, category, user, duration, start / end times, and notes
Filters narrow what's shown in the logs table. The CSV export honors the active filters.
Step-by-step guide
Start a timer
Open Project management > Time tracker. If no timer is running, the Start tracking time button appears at the top. Click it to open the Start new time recording modal and fill in:
| Field | Required | Notes |
|---|---|---|
| Category | Yes | Multi-select with color-coded options. Configure categories from the toolbar three-dot menu |
| Project | No | Dropdown. Pick a project to scope the ticket dropdown below |
| Ticket | No | Dropdown of tickets in the selected project. Disabled when no project is picked |
| Set custom start time | No | Toggle. When on, lets you back-date the start time |
| Start Date | When custom time is on | Date picker |
| Start Time | When custom time is on | Time picker |
| Notes | No | Textarea for context (3 rows). Placeholder: "Enter any notes about this time entry..." |
Click Start tracking. The active timer card appears at the top and updates every second.
Pause and resume the timer
- While a timer is running, click Pause in the active timer card
- The card switches to PAUSED state with a ⏸ indicator
- Click Resume to continue
- Paused time isn't counted toward the duration
Switch to a new task
- While a timer is running, click Switch task in the active timer card
- The Switch to a new task modal opens
- The current task and elapsed time appear in a banner at the top so you can see what's stopping
- Pick the new category, project, ticket, and notes
- Click Switch task
- The previous timer is stopped (with the elapsed time captured) and the new one starts immediately
Stop the timer
- While a timer is running, click Stop in the active timer card
- The button briefly shows "Stopping..." while saving
- The timer ends and a new entry is added to the logs table
Add a manual entry
There's no separate "manual entry" button on this page. To add a manual past entry, start a fresh timer with Set custom start time turned on and pick a past date and time. Then stop the timer immediately, or update it via the Update flow below.
Edit an existing log
Find the log in the table. On the row, open the three-dot menu and click Update time log (requires the Update time logs permission). The Update time log modal opens with these fields:
| Field | Notes |
|---|---|
| Category | Required, multi-select with color indicators |
| Project | Optional, with change handler |
| Ticket | Optional, disabled when no project is picked |
| Start Date | Date picker |
| Start Time | Time picker (HH:mm) |
| End Date | Date picker |
| End Time | Time picker (HH:mm) |
| Notes | Textarea (3 rows) |
Click Save.
Delete a log
- On the log row, open the three-dot menu and click Delete time log (requires the Delete time logs permission)
- Confirm
- The log is removed permanently
Configure time tracking categories
- Open the toolbar three-dot menu (next to the Start tracking time button)
- Click Configure time tracking categories
- Add, edit, or archive categories. Each category has a name and a color
Categories are used by every team member; configuration applies group-wide.
Filter the logs table
The toolbar has five filter pills. Click any filter to open its popover:
| Filter | Popover header | Input type |
|---|---|---|
| Project | Filter by project | Multi-select dropdown ("Select projects") |
| Category | Filter by category | Multi-select with color indicators ("Select categories") |
| User | Filter by user | Multi-select dropdown ("Select users") |
| Date Range | Filter by date range | From / To date pickers |
| Status | Filter by status | Dropdown with Running and Completed |
Pick filter values and click Update. Click Reset in any popover to clear that one filter, or the reset icon at the end of the filter row to clear every filter at once. The total results badge updates: Total results: [N].
Change rows per page
- Use the per-page selector at the top right of the toolbar
- Pick 5, 10, 25, 50, or 100
Export to CSV
- Apply the filters you want to scope the export
- Click the cloud-download icon in the toolbar (next to the per-page selector)
- The file downloads as
time-logs.csvwith these nine columns:
| Column | Description |
|---|---|
| Start Time | Local timestamp |
| End Time | Local timestamp, or empty for running logs |
| Duration (minutes) | Total minutes |
| Project | Project name |
| Ticket | Ticket key |
| Category | Category name |
| User | Team member |
| Notes | Free-text notes |
| Status | "Running", "Paused", or "Completed" |
The export includes every log matching the filters, not just the current page.
Reference
Active timer card (when a timer is running)
| Element | Description |
|---|---|
| Elapsed time | Large clock-style display, updates every second |
| ⏸ indicator | Shown when the timer is paused |
| Started | Timestamp when the timer started |
| Working on | Project name and ticket key + title |
| Category | Colored badge for the category |
| Notes | Free-text notes from the start dialog |
| Pause / Resume | Toggles paused state |
| Switch task | Stops the current timer and opens the start dialog for a new one |
| Stop | Ends the timer and saves the log |
Toolbar
| Element | Description |
|---|---|
| Start tracking time | Top-left button shown when no timer is running |
| Three-dot menu | Includes Configure time tracking categories |
| Filters | Five filter pills: Project, Category, User, Date Range, Status |
| Reset all filters | Refresh icon clearing every filter |
| Total results | Live row count |
| Per-page selector | 5, 10, 25, 50, or 100 |
| Download CSV | Cloud-download icon at the top right |
Analytics cards
| Card | When shown | What it shows |
|---|---|---|
| Total time | When a date range filter is active | Total time for the filter window |
| Today | Default | Time logged today |
| This week | Default | Time logged this week |
| This month | Default | Time logged this month |
| Active users | Always | Count of distinct users with logs |
| Projects | Always | Count of distinct projects with logs |
| Tickets | Always | Count of distinct tickets with logs |
Logs table (desktop)
| Column | What it shows |
|---|---|
| Start Time | Local timestamp |
| End Time | Running logs show a green pulse "Running" badge; completed logs show timestamp; empty otherwise |
| Duration | Running with pause: warning icon + elapsed + "(Paused)". Running: green elapsed time. Completed: formatted duration |
| Project | Linked project name, or "No project" |
| Ticket | Linked ticket key, or "-" |
| Category | Colored badge, or "Uncategorized" |
| User | Team member name |
| Notes | First 30 characters with "..." if longer, or "-" |
| Actions | Three-dot menu with Update time log and Delete time log (only on completed logs, permission gated) |
Per-row three-dot menu
| Action | Permission |
|---|---|
| Update time log | Update time logs |
| Delete time log | Delete time logs |
The menu is hidden on running logs and only appears once a log is completed.
Filters
| Filter | Input type | Notes |
|---|---|---|
| Project | Multi-select | Pick one or more projects |
| Category | Multi-select | Color-coded chips |
| User | Multi-select | Pick one or more team members |
| Date Range | From / To date pickers | Both dates required |
| Status | Single-select | Running or Completed |
Each filter pill has its own Reset and Update buttons. The toolbar has a global Reset all filters icon.
Start tracker modal
| Field | Required | Notes |
|---|---|---|
| Category | Yes | Multi-select with color indicators |
| Project | No | Dropdown |
| Ticket | No | Dropdown, disabled until project is picked |
| Set custom start time | No | Toggle |
| Start Date | When custom is on | Date picker |
| Start Time | When custom is on | Time picker |
| Notes | No | Textarea (3 rows) |
The same modal opens in switch mode when you click Switch task on a running timer; in switch mode, a banner at the top shows what's currently being stopped, and Set custom start time is hidden.
Update time log modal
| Section | Fields |
|---|---|
| Category / Project / Ticket | Same as the start dialog |
| Start time | Start Date + Start Time (HH:mm) |
| End time | End Date + End Time (HH:mm) |
| Notes | Textarea (3 rows) |
| Buttons | Cancel and Save |
Empty state
| State | Copy |
|---|---|
| No logs match the current filters | Warning triangle icon + "No time logs found." |
Mobile layout
On a small screen the table collapses to one card per log showing duration (with pause indicator), category badge, project + ticket, started + ended timestamps, notes, user name, and a button group with pencil (edit) and trash (delete) actions. The filter pills move into a collapsible row toggled by a filter icon in the page card header.
CSV export
| Property | Value |
|---|---|
| Filename | time-logs.csv |
| Columns | Start Time, End Time, Duration (minutes), Project, Ticket, Category, User, Notes, Status |
| Scope | Every log matching the active filters (not just the current page) |
Good to know
- Only one timer at a time runs per user. Starting a new timer or using Switch task stops the current one. The platform doesn't allow overlapping timers.
- Pause is useful for short interruptions (e.g., a quick phone call). Paused time isn't counted toward the duration. The pause state persists if you close the tab and come back later.
- Switch task is the cleanest way to move between tickets without manually stopping and starting. It captures the current elapsed time and starts a fresh timer in one step.
- The Set custom start time toggle on the start dialog is the way to backdate a manual entry. There's no separate "manual entry" button; the workflow is start a timer in the past and stop it.
- Categories are configured group-wide. Anyone using time tracking sees and uses the same categories. Configure them from the toolbar three-dot menu.
- The Status filter is useful for finding running timers across the team. Pick Running to see who's actively tracking time right now.
- Date Range changes the analytics row from the four time-period cards to a single Total time card scoped to the filter window. This is the easiest way to answer "how much time did the team spend on X last month?"
- The Notes column truncates at 30 characters with "..." when longer. To see full notes, edit the log via the three-dot menu and view the full textarea, or click into the entry from the mobile view.
- The CSV export covers every log matching the filters, not just the current page. Filter to a date range or specific project before exporting if you want a scoped export.
- Time entries on a specific ticket also show up under the ticket's Time log tab. The two surfaces are the same data; the ticket tab is filtered to that ticket only.
FAQ
Q: Can I track time without a project or ticket?
A: Yes. The Project and Ticket fields are optional in both the start dialog and the update modal. Logs without a project show "No project" in the table; logs without a ticket show "-".
Q: Can two timers run at the same time?
A: No. Each user has at most one active timer. Starting a second one or using Switch task stops the first.
Q: I forgot to start the timer. Can I add a manual entry?
A: Yes. In the start dialog, toggle Set custom start time on, pick a past Start Date and Start Time, fill in the other fields, and click Start tracking. Then stop the timer immediately, or run it forward and stop later.
Q: What's the difference between the page-level time tracker and the time-log tab on a ticket?
A: The time tracker page shows every log across every project and ticket with the full filtering, analytics, and export experience. The Time log tab on a ticket shows only logs against that one ticket. They share the same underlying data.
Q: Can I see how much time someone else logged?
A: Yes, with the User filter. Pick any team member to scope the logs to their entries. The analytics row updates to reflect the filter.
Q: Do paused timers count against my hours?
A: No. Paused time is excluded from the duration. The duration column shows the running elapsed time minus any paused minutes.
Q: How does the CSV export handle running logs?
A: Running logs export with the elapsed time as their duration and a status of "Running". Their End Time column is empty.
Q: I deleted a log by accident. Can I restore it?
A: No. Deletion is permanent. If you need a record of the work, recreate the log via the start dialog with a custom start time matching the original.
Q: Can I bulk-edit logs?
A: There's no bulk-edit UI. Edit logs one at a time via the three-dot menu. For repetitive edits, use the API.