Skip to main content

Time Clock and Telemetry

The mobile renderer uses the shared GraphQL API to maintain employee clock state and upload working-time location telemetry.

Clock operations​

  • getCurrentClockState returns the selected organization's state (Off, Working, or OnBreak) and shift timestamps.
  • ensureClockedIn moves an employee to Working when necessary or records activity when already working.
  • createTimePunch creates ClockIn, ClockOut, BreakStart, or BreakEnd punches.

Punch inputs include occurrence time, IANA time zone, device ID, idempotency key, optional note, and optional last known location. Mobile queues these mutations offline and updates local state optimistically. The server response becomes authoritative after pending punches synchronize.

Telemetry upload​

createTelemetryRecords accepts batches of fixes while the employee is working. Records contain coordinates, accuracy, optional motion data, recorded time, mock-location status, sourceType: MobileApp, and installation ID as externalId. Rows remain in SQLite until acknowledged. Empty batches act as working-state heartbeats.

The response includes current clock state, allowing a manager-initiated or automatic clock-out to stop device tracking.

Mobile uploads after enough fixes accumulate, on a two-minute cadence while working, after reconnection, on foreground, and when tracking stops. The buffer retains at most 20,000 fixes and sends at most 500 per request. Telemetry requires apps.telemetry.enabled organization configuration.