Time Management Tools
The Time Management actions let an AI clock people in and out, record and correct shifts, lock them for payroll, delete a shift, and pull hours-and-pay reports for your whole team.
Overview
From Copilot or a connected AI app, an AI can do what you'd normally do on the My Shifts and All Shifts pages — clock in and out, record a shift for a teammate, fix times, change one shift's pay rate, finalize shifts for payroll — and get the Reports page's hours and pay totals in a single call. It looks the actions up with find_actions and runs each one with the run tool for its kind (see MCP Server).
In the dashboard this feature is called Shifts, and it sits under a menu group called Team — look for Team → Shifts, with All Shifts, My Shifts, Shift Types and Reports inside it. Behind the scenes it goes by Time Management: the permission is spelled Time Management, the action names start with shifts., and the web addresses say /dashboard/time-management/….
Shift data is also readable through the Data Access Tools — list_records and get_record accept shifts and shift_types as resource types.
Time Management for every action except the report; the report needs the Reports sub-permission (TimeManagement.Reports). Seeing or changing anyone else's shifts additionally needs the All Shifts sub-permission (TimeManagement.AllShifts) — the same split as the dashboard pages. The person the connection runs as also needs the Copilot permission.copilot:time_management) ticked on the login screen.All Shifts sub-permission you only ever see and change your own shifts — a colleague's shift answers exactly the same as a shift that doesn't exist. With it, the whole organization is visible, including pay rates and the shift log.Actions
| Action | Level | What it does |
|---|---|---|
shifts.report | Read | Hours and pay over a date range — per agent, per shift type and in total, optionally day by day. Needs the Reports sub-permission. |
shifts.clock_in | Change | Clocks you in now on the shift type you name. |
shifts.clock_out | Change | Clocks you out now. With All Shifts it can also end a teammate's running shift. |
shifts.create | Change | Records a shift for any agent — finished, or still running — for example one someone forgot to track. Needs All Shifts. |
shifts.update | Change | Changes a shift's start, end or note; with All Shifts also its pay rate and whether it is finalized. |
shifts.delete | Delete or send | Permanently deletes one shift, together with its shift log. |
Key Concepts
Finalization is a lock
A finalized shift is payroll — it refuses every change. The single exception: a shifts.update that does nothing but switch finalization off unlocks it again. Deleting a finalized shift also requires unlocking it first. Finalizing needs the All Shifts sub-permission and a shift that has actually ended.
How pay is calculated
Every shift's pay is hours × the shift type's rate multiplier × the hourly rate recorded on the shift when it was created. Changing a member's rate later doesn't rewrite old shifts — someone with All Shifts can change the rate on an individual shift instead. A shift that is still running has no pay yet.
One running shift at a time
Clocking in is refused while you already have a running shift, and agents can only clock into the shift types they've been granted. Clocking in is always for the person the connection runs as — to put a shift on someone else's record, the AI uses shifts.create, which is not limited by the type grants.
Correcting a shift
Only the fields the AI sends are changed. Time and pay-rate corrections flag the shift as edited, which shows as a warning marker in the dashboard. Setting the first end time of a running shift counts as clocking out, not as a correction. A shift can be at most 31 days long.
Deleting a shift
A delete needs the Read, change, delete and send access level. Along with the shift, the AI must give the shift's start date (for example 2026-09-30), and nothing is deleted unless it matches — so a wrong or made-up shift is never removed. The date is counted in UTC (Coordinated Universal Time): for a shift that started shortly after midnight in a time zone ahead of UTC, it is the previous day's date. If the date doesn't match, the AI is told the right one.
The shift report
shifts.report gives the same figures as the dashboard's Reports page, without paging through raw shifts:
- Per agent: shift count, total hours, average hours per shift, total pay, plus how many shifts are still running, manually edited, or finalized.
- Totals: agents, shifts, hours and pay across the whole range.
- Per shift type: shifts, hours and pay for each type.
- Per day (when asked for): summed man-hours next to covered hours — overlapping shifts merged, so you can see whether someone was on duty, not just how much total time was logged. Days are split at UTC midnight.
Shifts that are still running are counted separately and add no hours or pay. Pay amounts are plain numbers — the dashboard shows them with a dollar sign. One report covers at most 400 days.
What an AI cannot do here
- Change a member's own hourly rate — the rate new shifts start with. Members' pay rates are human-only in every connection: change it on the Organizations page.
- Create, change or delete shift types, or choose who may clock into each type. Manage shift types under Team → Shifts → Shift Types, and assign them to members on the Organizations page.
- Clock a teammate in "now". Clocking in is only for yourself; for anyone else the AI records the shift with a start time instead.
- Delete several shifts in one go. Each delete names one shift and its date.
Example Prompts
- "Clock me in for chat duty."
- "I forgot to clock out yesterday — set my shift's end to 6 PM."
- "Record an 8-hour shift for Anna last Tuesday."
- "How many hours did each agent work last month, and what do we owe them?"
- "Run July's shift report, show me any shifts that aren't finalized yet, and finalize the ones that look complete."