The "did I log that?" question costs MSPs money every week. A tech jumps onto a ticket, fixes it, closes it, never opens the timecard tool. Or opens eBillity at the end of the day and tries to remember what they worked on. Or remembers most of it but misses the 20 minutes spent on a side conversation. By the end of the month, the gap between actual labor and submitted hours is real money.
Morton Command Center turns time tracking into something that happens automatically as you work. The timer is part of the ticket. The submission is part of the resolve flow. The classification is part of the engine — configured around your contract types, your plan rules, and how your team actually invoices. Not a generic add-on, not a blank-page dev project: a proven platform core shaped to your stack.
Per-ticket, per-agent timers
- Open a ticket — your timer starts. Switch tickets — old timer pauses, new timer starts. Resolve — captured time submits in a batch.
- Per-agent KV records (v2404+ schema) — four techs on the same emergency ticket each have their own independent timer. No stomping, no merge conflicts.
- Pause / resume manually if you need to step away. Edit captured time inline before submitting.
- Resolve-and-submit lets the resolving agent submit captured time for the whole team at once (gated by RBAC) OR each agent submits their own — tenant-configurable.
Unsubmitted Time tab — the safety net
The Timecards page has a third tab beside Timecards and AutoFix Actions: Unsubmitted Time. Every chunk of time currently tracked but not yet submitted to eBillity (or the native sink) shows here. Ticket link, tech, elapsed, ticket subject, started-at, client.
RBAC scopes the view: techs see their own rows by default; admins / finance see everyone's. Inline submit clears chunks before they age. The tab auto-refreshes every few seconds while it's open so timer state stays current.
End-of-month "wait, what did Mitch work on last Wednesday?" stops happening.
Automatic billable vs included classification
Every time entry resolves to a labor type (onsite / remote / onsite_project / remote_project) per the per-tenant classRules taxonomy. The labor type + the customer's contract type + plan rule + per-tenant fallback config decides whether the entry is billable, included, or non-billable. The "Standard Rate" entry for a Managed customer where the plan says remote-labor-is-included automatically falls out of billable revenue. The same entry for a T&M customer automatically counts as billable.
Manual overrides exist for the edge cases — explicit "Remote - Billable" class on the line tells the engine to honor that regardless of plan rule.
Native timecards + a sync to your time tool
- Time-tracking sync (custom-built for your time tool) — canonical activities + clients pulled from your time-tracking system's API (cached + single-flight refresh lock; rebuilt hourly or on manual Sync); time entries submitted back as completed entries. Your time tool stays exactly where it is — Command Center reads your existing clients, activities, and classes directly. No data migration, no new tool for your team to learn. We build this integration to fit your stack as part of your engagement. Because the platform is API-driven, any time-tracking system with an API (eBillity, Harvest, Toggl, or anything else) gets the same treatment: an adapter built custom to your workflow.
- Native timecards — for tenants who don't run a separate time tool, full native storage in Cloudflare KV with the same UI affordances. The native timecard module is part of the product, included out of the box. Each sink is a separate, self-contained path chosen per tenant — native timecards work from day one, and your external time tool is wired in custom during your build.
- Multi-employee alias mapping — Greg-Morton ↔ Gregory-Morton ↔ Greg Morton — short-name variants in eBillity collapse to one canonical agent.
AutoFix Actions tab
Some MSPs run automated remediation from their RMM — autofix scripts, self-healing jobs — that log time to a dedicated time-tracking employee account so it stays separate from real tech labor. Enable the AutoFix tab in Settings, pick the employee, and a separate tab on the Timecards page surfaces those entries with their own filters. The regular Timecards tab stays focused on human labor. The RMM feed is a custom integration we build for your stack — because the platform is API-driven, any RMM with an API (NinjaOne, Datto, or anything else) can feed AutoFix the same way, with that adapter built custom as part of your engagement.
Built to fit your exact stack
This is the advantage over rigid all-in-one suites that force you onto their pre-built integrations and their idea of how you should work. Every external integration in Morton Command Center is custom-built around your tools and your workflow as part of your engagement. Whatever time tool your team runs — eBillity, Harvest, Toggl, your PSA's native time API, or anything else — we build that connection to fit. Proven patterns stand up faster, but each integration is still built custom to your stack. If your tool has an API, we build the integration for it.
The product's own modules — ticketing, timecards, billing, the customizable dashboard, the customer portal, and the rest — come included out of the box. The integrations to your outside tools are where we tailor everything to you.
Pricing
Flat monthly pricing — no per-seat fees, no per-vendor surcharge. Add ten techs and your bill doesn't move. See current pricing on the homepage →
Ready to talk?
The first call is a 30-minute discovery — we map your timecard workflow, your contract types, and which plan rules decide billable vs included. No commitment, no sales pressure.
Questions first? Email [email protected] or read the FAQ.