Docs Company Admin Guide Managing Workers

Company Admin Guide

Managing Workers

Company-level CRUD, multi-company memberships, soft-remove

Plan-gated feature. Workers requires a plan with Workforce Management. If your plan doesn't include it, the nav link is hidden.

The Workers page

Go to Workers in the top nav. You'll see one row per worker who is a member of your company, with search (by name / ID / department), filter by how they joined, and pagination.

How workers join your company

Every worker row tracks a joined_via:

  • First check-in — they scanned a site QR and submitted the form. The most common path.
  • Bulk import — uploaded via CSV from the Workers page.
  • Self-registration QR — scanned the company-wide QR you generated. See Worker Self-Register QR.
  • Manually added — admin created them inline.

Editing a worker (this company's overlay)

Click a worker row → you can edit:

  • Employee code — your internal payroll ID, e.g. EMP-1042.
  • Department — a free-text label (e.g. "Site A — Day shift").
  • Notes — short admin-only notes (max 200 chars).

The worker's name, ID number, and phone come from the global Worker record and are not editable from this page — those changes flow from the worker's own profile (and PDPA data-update requests).

Multi-company workers

The Worker model is platform-global. The same person (same ID number + phone number) can hold memberships at multiple companies — each company sees their own row in their own Workers list, with their own employee code / department / notes overlay. Their attendance at each company is scoped via the AttendanceRecord they created at that company's sites.

Removing a worker

Click Remove on a worker row → they're soft-deleted (membership row marked inactive). Attendance records and the global Worker stay intact. If the same person scans your site QR again later, the membership is auto-revived (you'll see them in Workers again with joined_via=checkin).

Schedule timeline

Each worker's detail page shows a Schedule timeline: per-day status (Attended / No-show / Leave / Upcoming) for the next/previous N days, derived from active shift assignments cross-referenced against attendance records and absences.

Was this helpful?

Last updated: May 6, 2026