Time Tracking
Composer-first timer, three views over the same week, calendar import, profitability, multi-level approvals, goals — Workestra's all-in-one replacement for Toggl, Harvest, and Clockify.
Time Tracking
Time Tracking is always-on infrastructure in every Workestra workspace. The free tier covers the timer, three views over your week (Calendar / List / Timesheet), goals, idle detection, calendar import, and the browser extension — enough to replace a standalone tracker like Toggl or Clockify entirely. Time Pro unlocks profitability, multi-level approvals, period locking, payroll export, and a few automation conveniences. Everything else surfaces in CRM, Support, Projects, Recruiting, Finance, and People when you have those modules.
Screenshot needed — /time/timer with composer bar pinned at top, week navigator, and the Calendar view filled with colored time blocks.
What you can do
- Run a timer from anywhere — the running pill lives in the top bar of every page, shows the live elapsed clock + entity icon, click to jump to the timer page, click stop to stop in place.
- Open
/time/timerfor the composer-first experience: huge "What are you working on?" input, project chip, tag chips, billable toggle, giant clock, and three views over the same week — Calendar, List, Timesheet. - Drag time blocks onto the calendar to create entries with start/end times, just like Google Calendar.
- Convert calendar events into time entries with one click — Google Calendar and Microsoft 365 events appear as ghost blocks; "+ convert" turns the meeting into a tracked entry, optionally suggesting a CRM deal if any attendee matches a contact.
- Set goals like "10h/week on Acme" or "<5h/week on internal admin", with a progress ring on the composer.
- Stay focused — built-in Pomodoro mode with audible cue + browser notification. Idle detection prompts to keep / discard / split if you walk away.
- Submit your weekly timesheet — review, click submit. Multi-level approval routes (Pro) walk it through team-lead → manager → finance.
- See profitability (Pro) — revenue minus cost minus expenses, per project, with margin %.
- Pull approved billable hours onto an invoice — preview, group, convert in one step.
- Track everything from your browser — Chrome / Firefox extension that injects a Start-timer button into Jira, Linear, Asana, Notion, GitHub, etc.
The four-contract API
Time Tracking is designed to be extractable later as a standalone product. Other modules (and integrations) talk to it through exactly four contracts:
| Contract | Where | Used for |
|---|---|---|
| React component barrel | @/modules/time | Embed <TimeOnRecord>, <TimerComposer>, <TimeEntryQuickAdd> on your detail pages |
| Public REST API | /api/v1/time/*, /api/v1/time-entries, /api/v1/timesheets | Browser extension, Zapier, custom scripts |
| Webhooks | 9 events on time_entry.*, timer.*, timesheet.* | Pipe approvals into Slack, hours into payroll, etc. |
| AI tools | start_timer, log_time_entry, get_utilization, convert_time_to_invoice_lines, … | Cmd+K and conversational AI ("log 45 min on Acme renewal") |
How it integrates with other modules
Time is the connective tissue between everything that touches billable / payable hours.
| Where you see it | What you can do | Module |
|---|---|---|
| CRM contact | Right-rail "Time on this contact" — totals, recent entries, Start timer button | CRM |
| CRM deal | Right-rail with projected cost + projected margin if the deal closes at current value | CRM + Time Pro |
| Project task | Estimate vs. actual progress bar; one-click Start timer | Projects |
| Support ticket | Time-to-resolution clock + SLA budget remaining | Support |
| Recruiting candidate | Cost-to-hire breakdown by stage | Recruiting |
| Calendar event | "Convert to time entry" header action | Scheduling / Calendar |
| Inbox thread | "Log time on this conversation" | Inbox |
| Finance invoice form | "Pull from time" → preview + convert approved billable hours into invoice line items | Finance |
| People employee profile | Read-only utilization tab | People |
| Dashboard top bar | Always-visible running-timer pill | Platform |
Sub-pages
| Page | What it covers |
|---|---|
| Timer | Composer, three views, header pill, Pomodoro, idle prompt, browser tab title |
| Weekly Timesheet | The 7-day grid, daily totals, submit-the-whole-week |
| Calendar Import | Connect Google / M365, ghost-block events, one-click convert |
| Goals | Per-user / per-project hour targets, progress rings on composer |
| Approvals | Multi-level routes, period locking, rejection feedback |
| Rates & Billing | Bill rate vs. cost rate, profitability, the invoice bridge |
| Reports | Five tabs (Summary / Detailed / Weekly / Profitability / My Reports) |
| Integrations | Webhooks, AI tools, public REST API |
| Settings | Workspace defaults, week start, rounding, idle minutes, Pomodoro durations, auto-submit |
| Browser Extension | Chrome MV3 + Firefox WebExtension — inject the timer into 100+ apps |
| Time Pro | What unlocks with the paid tier |
Quickstart — your first 60 seconds
- Open
/time— the Overview shows an onboarding checklist + this-week summary. - Click Open timer (or press
Cmd+Kthen "Log time…"). - In the composer, type what you're working on, pick an entity (or skip for internal time), hit ▶.
- Switch to the Calendar view — your block appears at "now".
- The header pill follows you across every page; the browser tab title shows the live clock.
- End of week: open Timesheet view, click submit. Approver gets notified.
That's the whole loop.
Free vs. Time Pro
Free (always-on for every workspace): Timer + composer + 3 views, calendar import, goals, idle detection, Pomodoro, browser extension, public REST API (rate-limited), bill rates (when Finance is subscribed).
Time Pro (paid add-on): Profitability tab, multi-level approval chains, period locking after approval, payroll export, auto-submit timesheets, weekly digest emails, runaway-timer auto-stop, higher REST API quotas. See Time Pro for the full split.
The Pro gates appear as a friendly upgrade card with a contextual message — no broken pages or sudden paywalls mid-flow.