activity_heatmap
ChatGPTWHEN work happens, not how much: hourly buckets by hour of day and weekday, or one per date. Note: for the HOURLY type THE HOUR IS IN THE WORKSPACE TIME ZONE, for both the buckets and the summary peakHour (hourTimezone names the zone). Do not convert it again. The daily type groups by calendar day in the workspace time zone. peakHour is the hour with the most working minutes in total (hourly type only). peakDay is the weekday (0 = Monday, 6 = Sunday) with the most working minutes in total, or null when there is no working time. Note: Late activity is not itself a problem; people may be in other time zones. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
app_usage
ChatGPTWhich applications and websites were used across the caller's scope, with time per application and its productivity label. Use it for 'where is the time going'. Note: Application NAMES are workspace data and go to your provider with this call; window titles and browsing history never do. The labels are a workspace setting, not a verdict on anyone. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
attendance_report
ChatGPTAttendance against the planned shift over a date range: a summary with the number of on time, late, early leave, late and early leave, absent, on leave, off and still open days, the days where someone forgot to clock out, and the total late, early leave, overtime and worked minutes; plus one row per person and day with the status, planned and actual clock in and out, and the late, early and overtime minutes. Rows carry the employeeId only; the top level people list gives each one's name and team. Use it for 'who was late yesterday', 'who did not show up this week' and 'who forgot to clock out'. The summary always covers the whole range and scope; status only narrows the rows (late includes people who were also early, early_leave includes people who were also late). Minute fields are left out when zero. The rows are capped by response size: rowsShown of totalRows are included and truncated is true when there are more, so for a large team ask with status, teamId, employeeId or a shorter range right away. At most 31 days, defaults to the last 7 days ending today. Dates are calendar days in the workspace time zone; planned times are local HH:mm and actual times are local yyyy-MM-dd HH:mm. For the planned shifts use shift_schedule; for approved leave use leave_calendar; for hours worked use work_summary. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
coach_report_get
ChatGPTOne productivity coach report: the burnout and productivity analysis and the written summary. Only reports whose status is ready have content. Note: The written part was produced by a different AI model from the workspace's own data and it is an interpretation, not a fact. Quote it as the report's wording rather than your own conclusion, and do not extend it into judgements it does not make.
coach_report_list
ChatGPTProductivity coach reports that this workspace has ORDERED, with their status and which period they cover. Use it to find a report before reading it with coach_report_get. Note: This tool cannot order a report: reports cost credits and are ordered by a person in Worktivity.
cost_summary
ChatGPTWhat the tracked time COSTS: total payable, average pay rate and minutes, over a date range. Owners and co-owners only. Note: These are pay figures. Give the totals the user asked for and do not repeat individual pay rates unless they specifically ask about one person. The numbers come from tracked time and the rates set in Worktivity, so they are an estimate of labour cost, not payroll. Needs the co-owner role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
credit_balance
ChatGPTHow many AI credits the workspace has left. Credits pay for coach reports and insight summaries inside Worktivity. Note: Asking questions through THIS connection costs no credits at all; if the user is worried about the balance, tell them that reading data this way is free. Needs the co-owner role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
customer_list
ChatGPTCustomers in this workspace, with their contact details. Use it to turn a company NAME into the id that project_create and customer_update take, and to read a customer's current values before changing them. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
leave_calendar
ChatGPTWho is on leave over a date range, with the dates and the leave type. This is the tool for 'who is off next week' and 'is anyone away on Friday'. It covers APPROVED leave; requests still waiting for a decision are in leave_requests_list. Dates are calendar days in the workspace time zone. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
leave_requests_list
ChatGPTLeave requests in a date range with their approval status, including ones still waiting. Use it for 'is anything waiting for my approval' and 'was that request approved'. Note: This tool cannot approve or reject anything; leave decisions are made in Worktivity by a person. If the user wants to decide, point them to the leave requests screen. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
me_get
ChatGPTWho the caller is: name, role, team, workspace and the workspace time zone. CALL THIS FIRST. The role tells you which tools will work, and every date resolves in the WORKSPACE zone, so "today" can differ from the user's own calendar. Never costs credits.
my_app_usage
ChatGPTWhich applications and websites the caller used over a date range, with time per application and its productivity classification. Use it for 'where did my time go' questions. Note: The classification is a workspace-level judgement, not a verdict on the person: an application marked unproductive may be entirely legitimate for this role. Say what the numbers are, do not moralise about them.
my_leave_balance
ChatGPTThe caller's OWN leave entitlement and remaining balance for the current leave period. Covers accrued days, used days and what is left. Note: The leave period is not always the calendar year: a workspace can run it from each person's hire date. The response says which period it covers, so quote that rather than assuming January to December. Each item carries the leave type as typeName (the number in type is only an id). count is the remaining balance: negative = used more than the allowance, and pending requests already count as used.
my_leave_requests
ChatGPTThe caller's OWN leave requests in a date range, with dates, type and approval status. Use it for 'when am I off' and 'was my request approved'. Only covers the person asking; who else is on leave is a different tool and needs a higher role.
my_shift_schedule
ChatGPTThe caller's OWN upcoming shifts, starting today: one row per day with the shift template name, start and end time, whether it is a night shift (the end falls on the next day), the source of the shift (exception, employee, team or default for the workspace working hours) and whether the day is a day off. Use it for 'what is my schedule', 'when do I work tomorrow' and 'do I have the night shift this week'. Shows up to 14 days; dates are calendar days in the workspace time zone and times are local to it. Only covers the person asking; other people's shifts need a higher role and shift_schedule. For approved leave use my_leave_requests; for hours worked use my_work_summary.
my_timesheet
ChatGPTThe caller's OWN timesheet: one row per DAY with the time tracked that day and its productivity split. Use it when the question is about specific days ('how much did I do on Tuesday'), and my_work_summary when it is about totals. Dates are calendar days in the workspace time zone, which the response repeats. Only covers the person asking.
my_work_summary
ChatGPTThe caller's OWN working time over a range as ONE TOTAL: tracked, idle, break and the productivity split. Not broken down by day; my_timesheet does that. Covers only the person asking. Tracked time comes from the desktop agent, so zero means the agent was not running.
offline_now
ChatGPTSnapshot of who is offline right now: people whose tracking has stopped and whose last activity is more than five minutes old. Use it for 'who is offline' and 'is anyone still working'. Note: This is a live snapshot, not a daily attendance or absence record, and it says nothing about why: the agent may be closed, the person may be in a meeting or on leave. Do not present it as absence. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
people_list
ChatGPTThe people this caller can see: name, e-mail, role, team and whether they have signed in yet. An owner sees the whole workspace, a manager sees only their own team. CALL THIS FIRST when a question names a person, because every other tool takes an employee id, not a name. The list is paged and the default page is small; use search rather than paging through everyone. Pay rates are never returned by this tool. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
productivity_comparison
ChatGPTCompares productivity between two ranges, two people or two teams, returning both sides and the difference. Note: Role limits: a manager may compare two people only if BOTH are in their team; comparing two teams needs an owner. Note: Comparing two PEOPLE compares tracked time, not performance; state the numbers, leave the judgement to the reader. Change percentages are (first - second) / second: positive means the first side is higher. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
productivity_insights
ChatGPTHow each person's tracked time splits into productive, neutral and unproductive, over a date range. Note: The productive/unproductive labels come from the workspace's own application catalogue, not from any judgement about the person: an application marked unproductive may be entirely legitimate for a role. Report the numbers and say where the labels come from; do not moralise. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
productivity_trend
ChatGPTProductivity over TIME, not per person: one bucket per day, week or month, plus peak day and trend direction. Match the grouping to the range: daily for weeks, weekly for a quarter. Per-person breakdown is work_summary. Note: Buckets are cut on UTC days, so edges can differ from the workspace calendar by a few hours. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
project_list
ChatGPTProjects the caller can see, with their customer, colour, notes, member and team lists and tracked time. Access follows the project's own member and team lists, so a manager sees the projects they are part of rather than every project in the workspace. Use it to turn a project NAME into the id that task_list takes, and to read a project's current values before changing them with project_update.
project_time
ChatGPTTracked time per PROJECT over a date range, optionally broken down by task. Use it for "which project took the most time" and "where did the time on this project go". Note: Only time logged AGAINST A TASK counts here: a minute tracked without a task belongs to no project and is missing from these totals, so they can be lower than work_summary for the same range. This is the same figure the Task insights screen shows. Money is never included. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
risk_users_list
ChatGPTThe workspace's own RISK RULES and who currently matches one. Called without a ruleId it lists the rules; with a ruleId it evaluates that rule and returns the people it matches right now. Note: A rule is a threshold somebody in this workspace typed, not a finding: 'matches the rule' means the numbers crossed a line, nothing more. Never describe a matched person as a risk, a problem or a poor performer; say which rule matched and what the number was. Needs the co-owner role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
shift_schedule
ChatGPTWho works which shift over a date range, grouped by day: days lists each day with its shifts (template name, start and end time, the source of the shift: exception for a one day change, employee or team for an assignment, and the people on it), off (people with a day off) and workspaceHours (people who simply follow the workspace working hours). People appear in days by employeeId only; the top level people list gives each one's name and team. overnight: true on a shift means it is a night shift whose end falls on the next day. Use it for 'who is on the night shift this week', 'what does the support team work on Friday' and 'is Anna working Saturday'. The default range is the next 7 days starting today, so pass from and to to look at other days. At most 31 days. Dates are calendar days in the workspace time zone and times are local to it. The output is capped on whole days: when truncated is true only daysShown of daysTotal days are included, so narrow with teamId, employeeId or a shorter range. In a large workspace (dozens of people) ask with teamId or employeeId from the first question. If no shifts are assigned, the result says everyone follows the workspace working hours. For approved leave use leave_calendar; for who actually showed up use attendance_report; for hours worked use work_summary. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
subscription_status
ChatGPTThe workspace's subscription: plan name, number of seats, billing period and renewal date. Use it for 'what plan are we on' and 'when does it renew'. Note: This tool cannot change the plan, buy seats or cancel anything; billing is done by a person in Worktivity. Needs the co-owner role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
task_list
ChatGPTTasks the caller can see, with project, status, priority, due date, assignees and tracked time. Access follows the project's member and team lists. Use it for 'what is open on this project' and 'what is overdue'. Narrow by projectId or status rather than listing everything; the response limit is small.
team_list
ChatGPTThe teams this caller can see, with how many people are in each. An owner sees every team, a manager sees only their own. Use it to turn a team NAME from the user's question into the team id that the other tools take. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
timesheet_get
ChatGPTA timesheet: one row per DAY with clock-in, clock-out and tracked time. Use it when the question is about specific days ('what time did she start on Tuesday'), and use work_summary when it is about totals. Pass an employeeId to keep the result small; a whole team over a long range will hit the response limit. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
work_ranking
ChatGPTPeople ranked by tracked working time over a date range, longest first. This is the tool for 'who worked the most today' and 'who is at the top this week'. It returns a short list rather than everyone, so it stays small even in a large workspace. Note: A ranking is not a performance judgement: hours are not output, and someone whose agent was not running looks idle. Present it as tracked time. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
work_summary
ChatGPTWorking time over a range: tracked, idle and break minutes plus the productivity split. One row per person; groupBy=team returns per-TEAM totals already summed. Never sum people yourself for a team total. Note: Tracked time comes from the desktop agent: zero means the agent was not running, not that nothing was done. Day by day for one person: timesheet_get. Needs the manager role or higher IN THE WORKSPACE being asked about; the same person can have a different role in another workspace.
workspace_list
ChatGPTThe workspaces this person belongs to, with the workspace NUMBER, the name and their role in each. CALL THIS FIRST when you do not know which workspace a question is about, and pass the number as workspace to every other tool. Never guess which workspace someone means.