approve_absence
ChatGPTApprove a pending absence request by id. Admin/HR/supervisor only. Requires OAuth scope absences:approve.
approve_absence
ChatGPTApprove a pending absence request by id. Admin/HR/supervisor only. Requires OAuth scope absences:approve.
approve_modification
ChatGPTApprove a pending employee time-entry correction by id, as the company/HR reviewer. Admin/HR only. Requires OAuth scope modifications:write.
approve_modification
ChatGPTApprove a pending employee time-entry correction by id, as the company/HR reviewer. Admin/HR only. Requires OAuth scope modifications:write.
approve_retrospective_entry
ChatGPTApprove a pending retrospective (forgotten-day) time-entry creation request by id. This is the company/approver decision on a worker-initiated request; on approval the time entry is created. Admin/HR only. Requires OAuth scope modifications:write.
approve_retrospective_entry
ChatGPTApprove a pending retrospective (forgotten-day) time-entry creation request by id. This is the company/approver decision on a worker-initiated request; on approval the time entry is created. Admin/HR only. Requires OAuth scope modifications:write.
cancel_absence
ChatGPTCancel one of the authenticated employee's own absence requests. requestId comes from my_absences. Only the owner can cancel, and not after it has started. Requires OAuth scope absences:write.
cancel_absence
ChatGPTCancel one of the authenticated employee's own absence requests. requestId comes from my_absences. Only the owner can cancel, and not after it has started. Requires OAuth scope absences:write.
clock_in
ChatGPTClock in the authenticated employee (start a work period). Requires OAuth scope clock:write.
clock_in
ChatGPTClock in the authenticated employee (start a work period). Requires OAuth scope clock:write.
clock_out
ChatGPTClock out the authenticated employee (end the active work period). Requires OAuth scope clock:write.
clock_out
ChatGPTClock out the authenticated employee (end the active work period). Requires OAuth scope clock:write.
end_break
ChatGPTEnds the open break (pausa) on the authenticated employee active time entry — automatically finds the break in progress. Requires OAuth scope clock:write.
end_break
ChatGPTEnds the open break (pausa) on the authenticated employee active time entry — automatically finds the break in progress. Requires OAuth scope clock:write.
find_employee
ChatGPTResolves a name or email to an employee, returning id, name, email, role, status and department so other admin tools can use the employeeId. Searches the whole organisation roster; HR/admin only (cannot be scoped to a single team). Read-only. Requires OAuth scope presence:read.
find_employee
ChatGPTResolves a name or email to an employee, returning id, name, email, role, status and department so other admin tools can use the employeeId. Searches the whole organisation roster; HR/admin only (cannot be scoped to a single team). Read-only. Requires OAuth scope presence:read.
get_active_entry
ChatGPTTHE tool for the caller's OWN current clock status. Answers first-person questions like "¿estoy fichado?", "¿cuál es mi estado de fichaje?", "¿he fichado (hoy)?", "mi entrada/fichaje activo", "¿estoy en pausa?", "¿a qué hora entré/empecé?". Returns the caller's CURRENT open (uncompleted) time entry — which may have started on a PREVIOUS day and still be running — including status (working / on break / clocked out), clock-in time, minutes worked and whether they can start a break or clock out; returns clocked_out only when there is genuinely no open entry. Do NOT use whos_in for the caller's own status. Read-only. Requires OAuth scope clock:read.
get_active_entry
ChatGPTTHE tool for the caller's OWN current clock status. Answers first-person questions like "¿estoy fichado?", "¿cuál es mi estado de fichaje?", "¿he fichado (hoy)?", "mi entrada/fichaje activo", "¿estoy en pausa?", "¿a qué hora entré/empecé?". Returns the caller's CURRENT open (uncompleted) time entry — which may have started on a PREVIOUS day and still be running — including status (working / on break / clocked out), clock-in time, minutes worked and whether they can start a break or clock out; returns clocked_out only when there is genuinely no open entry. Do NOT use whos_in for the caller's own status. Read-only. Requires OAuth scope clock:read.
get_employee_balance
ChatGPTAbsence/vacation balance for a target employee (entitled, available, used, reserved, plus a per-policy breakdown), to check entitlement before approving leave. HR/admins only. Read-only. Requires OAuth scope absences:read.
get_employee_balance
ChatGPTAbsence/vacation balance for a target employee (entitled, available, used, reserved, plus a per-policy breakdown), to check entitlement before approving leave. HR/admins only. Read-only. Requires OAuth scope absences:read.
list_absence_types
ChatGPTReturns the available absence types and their policies (each policy carries its absence_type_id). Use this to obtain the absence_type_id and policy_id needed by request_absence. Read-only. Requires OAuth scope absences:read.
list_absence_types
ChatGPTReturns the available absence types and their policies (each policy carries its absence_type_id). Use this to obtain the absence_type_id and policy_id needed by request_absence. Read-only. Requires OAuth scope absences:read.
list_break_types
ChatGPTReturns this tenant's available break types (pausas) — each with its code, name, and whether it requires a comment. Call this BEFORE start_break so the user can choose a type (never assume one): use the returned code as the breakType for start_break, or as the policyCode in request_time_correction. Read-only. Requires OAuth scope clock:read.
list_break_types
ChatGPTReturns this tenant's available break types (pausas) — each with its code, name, and whether it requires a comment. Call this BEFORE start_break so the user can choose a type (never assume one): use the returned code as the breakType for start_break, or as the policyCode in request_time_correction. Read-only. Requires OAuth scope clock:read.
list_pending_absence_approvals
ChatGPTReturns pending absence requests to review: the whole organisation for HR/admins, or only the caller own team for a supervisor. Admin/HR/supervisor only. Read-only. Requires OAuth scope absences:approve.
list_pending_absence_approvals
ChatGPTReturns pending absence requests to review: the whole organisation for HR/admins, or only the caller own team for a supervisor. Admin/HR/supervisor only. Read-only. Requires OAuth scope absences:approve.
list_pending_modifications
ChatGPTReturns employee-initiated time-entry correction requests pending company approval, each with its modificationRequestId for approve/reject. Org-wide for HR/admins; a plain supervisor is refused (the backing query cannot be safely scoped to a single team). Admin/HR only. Read-only. Requires OAuth scope modifications:write.
list_pending_modifications
ChatGPTReturns employee-initiated time-entry correction requests pending company approval, each with its modificationRequestId for approve/reject. Org-wide for HR/admins; a plain supervisor is refused (the backing query cannot be safely scoped to a single team). Admin/HR only. Read-only. Requires OAuth scope modifications:write.
my_absences
ChatGPTReturns the authenticated employee own absence requests and their vacation/absence balance for a year. Read-only. Requires OAuth scope absences:read.
my_absences
ChatGPTReturns the authenticated employee own absence requests and their vacation/absence balance for a year. Read-only. Requires OAuth scope absences:read.
my_hours_summary
ChatGPTReturns the authenticated employee's own monthly worked-hours TOTALS (total hours, number of entries, on-site vs remote split, daily totals) for a given year/month (defaults to the current month). Use for aggregate "¿cuántas horas llevo este mes?" reporting. NOT for the caller's current/live clock status — for "¿estoy fichado?" or the active entry use get_active_entry. Self-service and read-only — always scoped to the caller. Requires OAuth scope reports:read.
my_hours_summary
ChatGPTReturns the authenticated employee's own monthly worked-hours TOTALS (total hours, number of entries, on-site vs remote split, daily totals) for a given year/month (defaults to the current month). Use for aggregate "¿cuántas horas llevo este mes?" reporting. NOT for the caller's current/live clock status — for "¿estoy fichado?" or the active entry use get_active_entry. Self-service and read-only — always scoped to the caller. Requires OAuth scope reports:read.
my_time_entries
ChatGPTReturns the authenticated employee's own PAST time entries (a historical list/log), optionally filtered by a date range. Use it to review previous shifts or to find the timeEntryId and current times to pass to request_time_correction. NOT for the caller's current/live clock status — for "¿estoy fichado?" or the active entry use get_active_entry. Read-only. Requires OAuth scope clock:read.
my_time_entries
ChatGPTReturns the authenticated employee's own PAST time entries (a historical list/log), optionally filtered by a date range. Use it to review previous shifts or to find the timeEntryId and current times to pass to request_time_correction. NOT for the caller's current/live clock status — for "¿estoy fichado?" or the active entry use get_active_entry. Read-only. Requires OAuth scope clock:read.
reject_absence
ChatGPTReject a pending absence request by id, with a mandatory reason. The rejection reason must come from the user — ask for it, do not fabricate. Admin/HR/supervisor only. Requires OAuth scope absences:approve.
reject_absence
ChatGPTReject a pending absence request by id, with a mandatory reason. The rejection reason must come from the user — ask for it, do not fabricate. Admin/HR/supervisor only. Requires OAuth scope absences:approve.
reject_modification
ChatGPTReject an employee time-entry correction request by id, with a mandatory reason. The rejection reason must come from the user — ask for it, do not fabricate. Admin/HR only. Requires OAuth scope modifications:write.
reject_modification
ChatGPTReject an employee time-entry correction request by id, with a mandatory reason. The rejection reason must come from the user — ask for it, do not fabricate. Admin/HR only. Requires OAuth scope modifications:write.
reject_retrospective_entry
ChatGPTReject a pending retrospective time-entry request by id, with a mandatory reason. The rejection reason must come from the user — ask for it, do not fabricate. Admin/HR only. Requires OAuth scope modifications:write.
reject_retrospective_entry
ChatGPTReject a pending retrospective time-entry request by id, with a mandatory reason. The rejection reason must come from the user — ask for it, do not fabricate. Admin/HR only. Requires OAuth scope modifications:write.
request_absence
ChatGPTRequest an absence/vacation for the authenticated employee (kicks off approval). absenceTypeId and policyId come from list_absence_types; dates are YYYY-MM-DD. Requires OAuth scope absences:write.
request_absence
ChatGPTRequest an absence/vacation for the authenticated employee (kicks off approval). absenceTypeId and policyId come from list_absence_types; dates are YYYY-MM-DD. Requires OAuth scope absences:write.
request_retrospective_entry
ChatGPTRequest creation of a time entry for a PAST day that has no record yet (e.g. "I worked last Tuesday 09:00-17:00 but forgot to clock in"). Queues for company approval. Provide date (YYYY-MM-DD), clockInTime and clockOutTime (ISO 8601 with a timezone offset), workMode ("on_site" or "remote") and a reason. The reason must come from the user — ask for it, do not fabricate. Optionally pass breaks (each NEW: startTime, endTime, policyCode from list_break_types; no breakId). For TODAY use clock_in; to fix an EXISTING entry use request_time_correction. Requires OAuth scope modifications:write.
request_retrospective_entry
ChatGPTRequest creation of a time entry for a PAST day that has no record yet (e.g. "I worked last Tuesday 09:00-17:00 but forgot to clock in"). Queues for company approval. Provide date (YYYY-MM-DD), clockInTime and clockOutTime (ISO 8601 with a timezone offset), workMode ("on_site" or "remote") and a reason. The reason must come from the user — ask for it, do not fabricate. Optionally pass breaks (each NEW: startTime, endTime, policyCode from list_break_types; no breakId). For TODAY use clock_in; to fix an EXISTING entry use request_time_correction. Requires OAuth scope modifications:write.
request_time_correction
ChatGPTRequest a correction to one of the authenticated employee time entries (queues for company approval) — works for past/completed entries AND for the still-open ACTIVE entry. Provide the timeEntryId (from my_time_entries, or get_active_entry for the active one) and the corrected clock-in as ISO 8601 with a timezone offset, plus a reason. The corrected clock-out is OPTIONAL: omit it to correct ONLY the clock-in of an ACTIVE entry that has not been clocked out yet — never fabricate a clock-out for an open entry. The reason must come from the user — ask for it, do not fabricate. Optionally pass breaks to also set the day's breaks (e.g. a lunch break): this REPLACES the entry's current breaks, so send the FULL desired set — if the day already has breaks, FIRST read them with my_time_entries and re-include each one (with its breakId) or it will be removed. Each break needs startTime, endTime and a policyCode from list_break_types; include a breakId (from my_time_entries) to keep an existing break, omit it for a new one. Requires OAuth scope modifications:write.
request_time_correction
ChatGPTRequest a correction to one of the authenticated employee time entries (queues for company approval) — works for past/completed entries AND for the still-open ACTIVE entry. Provide the timeEntryId (from my_time_entries, or get_active_entry for the active one) and the corrected clock-in as ISO 8601 with a timezone offset, plus a reason. The corrected clock-out is OPTIONAL: omit it to correct ONLY the clock-in of an ACTIVE entry that has not been clocked out yet — never fabricate a clock-out for an open entry. The reason must come from the user — ask for it, do not fabricate. Optionally pass breaks to also set the day's breaks (e.g. a lunch break): this REPLACES the entry's current breaks, so send the FULL desired set — if the day already has breaks, FIRST read them with my_time_entries and re-include each one (with its breakId) or it will be removed. Each break needs startTime, endTime and a policyCode from list_break_types; include a breakId (from my_time_entries) to keep an existing break, omit it for a new one. Requires OAuth scope modifications:write.
start_break
ChatGPTStarts a break (pausa) on the authenticated employee active time entry. The break type is the USER's choice and is legally meaningful — do NOT guess or default it. If the user has not explicitly stated which type of break, FIRST call list_break_types to fetch this tenant's available break types, present them to the user, and ask which one; then pass the chosen code as breakType. Requires an active clock-in. Requires OAuth scope clock:write.
start_break
ChatGPTStarts a break (pausa) on the authenticated employee active time entry. The break type is the USER's choice and is legally meaningful — do NOT guess or default it. If the user has not explicitly stated which type of break, FIRST call list_break_types to fetch this tenant's available break types, present them to the user, and ask which one; then pass the chosen code as breakType. Requires an active clock-in. Requires OAuth scope clock:write.
team_dashboard
ChatGPTReal-time dashboard for a team today: per-employee status (working, on break, completed, not started), anomaly flags, aggregate counts and overtime. Admins/HR target any team (teamId required); a supervisor always sees only their own team. Read-only. Requires OAuth scope presence:read.
team_dashboard
ChatGPTReal-time dashboard for a team today: per-employee status (working, on break, completed, not started), anomaly flags, aggregate counts and overtime. Admins/HR target any team (teamId required); a supervisor always sees only their own team. Read-only. Requires OAuth scope presence:read.
team_hours_summary
ChatGPTSummary of worked hours by employee and by department over a date range (defaults to the current month). Admins/HR see the whole organisation; a supervisor sees only their own team. Read-only. Requires OAuth scope reports:read.
team_hours_summary
ChatGPTSummary of worked hours by employee and by department over a date range (defaults to the current month). Admins/HR see the whole organisation; a supervisor sees only their own team. Read-only. Requires OAuth scope reports:read.
team_records
ChatGPTRaw clock-records grid for a team over a date range: clock in/out, breaks, worked hours, modification count and verification metadata. A supervisor sees only their own team; HR/admin must target an explicit teamId. Read-only. Requires OAuth scope reports:read.
team_records
ChatGPTRaw clock-records grid for a team over a date range: clock in/out, breaks, worked hours, modification count and verification metadata. A supervisor sees only their own team; HR/admin must target an explicit teamId. Read-only. Requires OAuth scope reports:read.
whos_in
ChatGPTTeam/presence overview: who ELSE is currently clocked in right now (working on-site/remote, on break, on leave), scoped to the caller's visibility (admins see the whole organization). Use for questions about OTHERS or the team like "¿quién está fichado?", "¿quién hay en la oficina?", "¿quién está trabajando ahora?". NOT for the caller's own clock status ("¿estoy fichado?", "mi fichaje activo") — use get_active_entry for that. Read-only. Requires OAuth scope presence:read.
whos_in
ChatGPTTeam/presence overview: who ELSE is currently clocked in right now (working on-site/remote, on break, on leave), scoped to the caller's visibility (admins see the whole organization). Use for questions about OTHERS or the team like "¿quién está fichado?", "¿quién hay en la oficina?", "¿quién está trabajando ahora?". NOT for the caller's own clock status ("¿estoy fichado?", "mi fichaje activo") — use get_active_entry for that. Read-only. Requires OAuth scope presence:read.