HR Module
Managing Your Team
How to build your employee roster and set what each person is paid — the single source of truth Payroll and Attendance & Leave both pull from directly.
Start here
1Add an employee
In HR → Employees, click Add Employee. It’s one page — no separate wizard. Most fields are optional; fill in what you have.
| Field | Notes |
|---|---|
| Employee Code | Your own reference ID. Optional — but see the warning below. |
| Linked User | Ties this record to a real login. See Giving an employee a login. |
| First / Last / Display Name | Display Name is what shows up everywhere else in the app. |
| Email, Phone | Contact details. |
| Department | Free text — see Setting up departments. |
| Job Title | Free text. |
| Employment Type | Full Time, Part Time, Contract, or Intern — informational only. |
| Status | Active, On Leave, Inactive, or Terminated. See Status reference. |
| Role Profile | Required — defaults to “Company Admin” if you don’t pick one. Defined and managed in Users & Roles, not here. |
| Module Access | Optional list of specific sections this person can access — can further restrict or extend what their Role Profile grants. |
| Reports To | See Building reporting lines. Leave as “No manager” for top-level people. |
| Start Date, Notes | Reference only. |
| Photo | Optional image upload. |
Click Save Employee. Nothing here is required by the form except a name.
Saving an employee with the exact same Employee Code as an existing one in this company doesn’t create a second employee — it merges straight into that existing record instead. Leave it blank, or double-check it’s unique, so you don’t accidentally overwrite someone else’s data.
2Set what they’re paid
There’s no separate “salary” screen — compensation is four fields built into the same employee form, right below Status.
| Field | Notes |
|---|---|
| Compensation Amount | The figure for one pay period at the frequency you choose next. Zero or a positive number. |
| Compensation Frequency | Hourly, Weekly, Biweekly, Semimonthly, Monthly, or Annual. |
| Compensation Effective Date | When this amount starts applying. Defaults to today. |
| Compensation Note | Optional — e.g. “Annual review raise.” |
Save, and this becomes the employee’s on-file pay rate. It’s stored as an append-only history, not a single overwritten number: a genuinely new amount or frequency always adds a new entry rather than replacing the last one, so past pay periods keep whatever rate was actually in effect back then.
Giving someone a raise
Open the employee, change Compensation Amount to the new figure, set Effective Date to when it starts, and save. This appends a new entry to their compensation history rather than overwriting the old one — the history table appears read-only below the fields once there’s more than one entry.
Re-saving the same amount and frequency with just a different effective date (e.g. correcting a date that defaulted to “today”) updates that current entry in place instead of adding a duplicate row — only a real change in amount or frequency creates a new history entry.
Why this matters for Payroll
Payroll always resolves compensation as of a pay run’s own scheduled date — the latest entry whose effective date has already arrived by then. So re-running payroll for a past period still uses whatever rate was actually in effect at the time, not today’s rate.
Common tasks
Setting up departments
In HR → Departments, add a Name, an optional Manager, and a Status. This gives you a consistent list of options on the employee form’s Department dropdown.
It’s not a hard requirement, though — the Department field on an employee record is plain free text, not a link to an actual department record. You can type anything there without a matching department existing. Creating departments up front just keeps everyone’s spelling consistent.
Building reporting lines
Set an employee’s Reports To to another employee already in this company. Two things are enforced: an employee can’t report to themselves, and whoever you pick must already exist as an employee record here — you can’t point at someone who isn’t in the system yet. Being someone’s manager this way also grants that manager team-level permissions in Attendance & Leave (viewing and approving their reports’ attendance and leave).
Giving an employee a login
Set Linked User to a real user account so the employee can actually sign in. Saving keeps that account’s team membership in sync with the employee’s current Role Profile automatically — so a role change here is reflected wherever roles are checked, without a separate step in Users & Roles. The one exception: an account already marked as company “Owner” is never downgraded by this sync.
Without a Linked User, the record is still useful — Payroll can pay them, Attendance & Leave can track them via manual admin entry — but they have no way to sign in and use any self-service features themselves.
Reference
Status & employment type reference
Status
| Status | Meaning |
|---|---|
| Active | Currently employed. Payroll includes them by default in new runs. |
| On Leave | Payroll puts them On Hold by default in new runs (still overridable per run). |
| Inactive | Excluded from new Payroll runs by default. |
| Terminated | Excluded from new Payroll runs by default. |
This field is set by hand — nothing in this module (or Attendance & Leave) changes it automatically, including an approved leave request.
Employment Type
Full Time, Part Time, Contract, and Intern are informational labels only — none of them changes how compensation, Payroll, or anything else behaves.
What this module doesn’t do
As covered above — reusing a code merges into the existing record rather than erroring out or creating a duplicate.
The Department field on an employee is free text. Nothing checks it against your actual Departments list, so inconsistent spelling can fragment your dropdown over time.
Setting Status to Terminated is just a field value — it doesn’t disable a linked login, clear Module Access, or trigger anything in any other module on its own.
Job title, department, and every other field are simply overwritten on save. Compensation is the only thing tracked as an append-only history.