People & Culture (HR admin)¶
Who this is for: People & Culture staff who manage employees, invitations, and app access. Time: ~10 minutes. You'll need: the People & Culture module (the 👥 icon in the left nav).
P&C is where a person's whole lifecycle lives: adding them, inviting them to the app, granting module access, mapping them to Time Doctor, and offboarding.
1. The employee roster¶
Open People & Culture → Employees.

- Search by name or email; filter by Department and status (Active / others).
- Top-right actions: Manage Roles, Invite Employee, Add Employee.
Add Employee creates the full employee record — personal details, assignment, and compensation:

Invite Employee sends the app-signup invitation. Toggle New employee vs Existing employee at the top — the existing-employee variant just gathers sign-in details for someone already on the roster:

Manage Roles opens the org-wide job-role list with the headcount per role. Roles no one holds can be deleted.

Every path — Add Employee, Invite to app, standalone invitation — creates an EmployeeInvitation. The employee always picks their own username and password on the public form. HR never sets a username.
2. The employee detail page & its actions¶
Click any employee row to open their detail page — the single place to view and change everything about that person. The header shows their name, employee code, an Active / Offboarded badge, and their current role.

The page is organised into cards, each with its own edit controls:
Employee Information¶
Personal details: full name, email, country, contact number, date hired, date of birth, employment type, and the Leave submission / Hours-per-week the department implies. Click Edit to change them inline, then Save.
- Offboard here. The Edit form has a Last working day field. Leaving it blank keeps the person active; setting a date offboards them — it prorates their final cutoff and revokes their app access (sessions are killed). This is the offboarding switch.
Current Assignment¶
Department, role, rate, and employee code — each editable in place:
- Reassign (Department) — move the person to another team. A mid-cutoff transfer re-routes their pending time-adjustment and leave approvals to the new team's manager.
- Change (Role) — swap their job role.
- Adjust (Rate) — change pay type / rate.
- Assignment History — expand to see every past department and role, with an Undo last reassignment action when a recent move can still be reverted.

Payment Information¶
Banking Information (payment method, bank, account details, currency) and Crypto Information (network + wallet address, with a wallet screenshot upload once wallet info is saved) — each with its own Edit. This is the payout data payroll snapshots each run.
Time Tracker¶
A Map a Time Doctor user dropdown right on the record — map or clear the TD user here without going to the separate Time-tracker page. Once mapped, hours pull into payroll automatically.
Access¶
The person's app-account controls:
- If they have no app account yet, this card shows Invite to app (you can pre-tick the modules to grant on acceptance).
- If they have an account, it shows their username, the module checkboxes (tick what they can see, then Save access), and Send password reset — which emails them a reset link (use it if an account may be compromised; they must set a new password before signing in again).
3. Invitations: create, reinvite, revoke¶
Open People & Culture → Invitations.

Each invitation shows a Status:
- Pending — sent, not yet accepted, still valid.
- Expired — the 48-hour window lapsed. Use Reinvite for a fresh link.
- Used — the person accepted and now has an app account.
Row actions:
- Copy Link — grab the invite link to send manually.
- Reinvite — issues a new token and resets the 48-hour expiry.
- Revoke — ⚠️ hard-deletes the invitation, freeing that email/employee to be invited again. A Used invitation can't be revoked. Revoke asks you to confirm — the link stops working immediately.

4. Module access¶
Open People & Culture → Access. This controls which modules each person can open in the app. (You can also set a single person's modules right on their detail page — this page is the bulk/roster view of the same thing.)

- An employee needs an app account first. Until they accept an invite, their row reads "No app account — invite first" with an Invite button.
- Filter by Department and invite status to work through a group. The Already invited filter shows only people with a pending/expired invite:

- Once someone has an account, click Edit on their row to open the module
picker — tick the modules they should see (P&C, Finance, a
management.<team>grant, Models, etc.) and Save access.

5. Time Doctor mapping¶
Open People & Culture → Time tracker.
![]()
- Map each employee to their Time Doctor user — open the row's dropdown and search by name or email.
- Once mapped, hours pulled from Time Doctor fill that employee's payroll record automatically on the next pull.
- Filter by department or status to find unmapped or offboarded people.
6. Transfers, offboarding & approvals (quick notes)¶
- Department transfer mid-cutoff re-routes that person's pending time-adjustment and leave approvals to the new team's manager. Do it via Reassign on the detail page.
- Offboarding — set the Last working day in the detail page's Employee Information Edit form (see §2). The person still gets a prorated final pay, and their sessions are revoked.
- Referral bonuses and profile-change requests flow to P&C for approval. Employee-submitted changes to personal / banking / crypto details land in People & Culture → Profile changes for review.

Troubleshooting¶
| Problem | What to do |
|---|---|
| Can't set someone's modules | They have no app account yet → Invite them first |
| Invite email bounced / wrong address | Revoke the invitation (frees the email), then re-invite the correct one |
| Person says their link expired | Reinvite — it resets the 48-hour timer |
| Hours not showing on payroll | Check the employee is mapped to a Time Doctor user |
| Accidentally revoked an invite | Just Invite again — revoke only deletes the pending invite, not the person |