Employees

Overview
The employee record answers three questions: who is available, who can do what, and what does each person cost. The third is why this surface has permissions of its own — cost rates are not everybody's business, even among those who may see names and phone numbers.
The list shows name, position, contract, type, status and start date.
Core tasks
Create an employee. New employee requires a first and last name; display name, personnel number, email, phone and position follow.
Maintain the record. The detail page is organised into tabs:
| Tab | Content |
|---|---|
| Master data | person and contact |
| Employment | contract, type, weekly hours, start date |
| Projects | membership in engagements |
| Skills | capabilities with levels |
| Documents | personnel papers |
| Absence balance | leave account and current standing |
| Checklists | on- and offboarding |
Link to an account. The link between employee profile and user account is created under Users — and is a precondition for time tracking. An employee profile belongs to exactly one account.
Fields in detail
The What it does column answers what changes in the system — not what the field is called. The grey name behind the label is the API field: the same thing runs under that name through automation, import and AI tools.
Person
| Field | Required | Values / format | What it does |
|---|---|---|---|
First name firstName / Last name lastName | yes | text | The two required entries. |
Display name displayName | no | text | How the person appears in the system. Empty means first and last name. Kept jointly on account and employee record — one source, no double maintenance. |
Personnel number personnelNumber | no | text | The number from payroll. It carries the payroll export and the mapping in the foreign system. |
Email email / Phone phone | no | address or text | Business contact details. |
Job title jobTitle | no | text | The function as it appears in signature and directory. |
Signature signatureHtml | no | formatted text, max. 50,000 characters | The signature block under outgoing mail. Resolved as a placeholder in templates instead of being copied into each one. |
User account userUlid | no | an existing account | Connects the employee record with the login account. Without this link the person can neither request an absence nor record their own time — they have no "self" in the system. |
Employment
| Field | Required | Values / format | What it does |
|---|---|---|---|
Type employmentType | no | internal or freelancer | Tells employees from externals. Among other things it governs whether the person appears in utilisation and payroll export. |
Contract type contractType | no | text | Finer classification (full-time, part-time, working student …). Determines which onboarding template is proposed. |
Weekly hours weeklyHours | no | number | Contracted working time. The basis for utilisation and for converting holiday days into hours. |
Work schedule workSchedule | no | hours per weekday | How the weekly hours are spread. This is what produces the right deduction for an absence spanning Monday to Friday — a part-time Friday does not count like a full-time Monday. |
Hired at hiredAt | no | date | Start of employment. The zero point for onboarding and pro-rata holiday entitlement. |
Probation until probationUntil | no | date | End of the probation period. Flagged in good time instead of passing unnoticed. |
Date of birth birthDate | no | date, not in the future | For personnel records and the birthday in self-service. Colleagues see day and month at most — and only if the person agrees in their profile. An empty field deletes the date. |
Terminated at terminatedAtInput | no | date | End of employment. From then on the person no longer appears in selection and planning; their past is preserved. |
Holiday entitlement (days) vacationEntitlementDays | no | number | Annual entitlement. The basis of the holiday account. |
Keep holiday account vacationAccountEnabled | no | yes/no | Whether an account is kept at all. Usually off for freelancers. |
Timezone timezone | no | timezone | The person's timezone. Appointments and deadlines are shown in it. |
Holiday region holidayRegion | no | region | Which public holiday calendar applies. With distributed teams, the entry without which absences are miscalculated. |
Supervisor supervisorId | no | an employee | Who approves and who is notified about requests. |
Team teamId | no | an existing team | The person's home team. It does not only group, it also cuts visibility: roles with the "own team only" option show their holder exactly the records of their teams. Without a team the person is in none. |
Brands brandScope | no | several brands | Which brands the person works in. |
Costs, skills, private data
| Field | Values / format | What it does |
|---|---|---|
Cost rate costRateAmountInput, valid from costRateValidFromInput, note costRateNote | amount, date, text | The internal hourly rate with a validity date. A new rate does not replace the old one but applies from its date — old reports keep calculating with the value of the time. |
Skill skillCode, level skillLevel, primary skillPrimary, certified at skillCertifiedAt, expires at skillExpiresAt | skill, number, yes/no, date, date | One row of the skill matrix. An expiry date reports itself in good time — that is exactly what it is for, with certificates and licences. |
Private contact details privateContactInput | address, private number, emergency contact | Especially protected entries. Visible only with the dedicated permission, not already with the general personnel view. |
Onboarding onboardingMode | onboarding or offboarding | Starts the matching checklist for the person. |
Development goals and feedback
Two tabs of their own in the personnel file. Read with hr.goal.view or hr.feedback.view, maintain with hr.goal.manage or hr.feedback.manage. The person sees their own goals and only the feedback that has explicitly been shared with them.
Project management and its team. The PM role (project management) sees and maintains goals and feedback of the members of its own team — including unshared feedback — through hr.goal.view_team, hr.goal.manage_team, hr.feedback.view_team and hr.feedback.manage_team. A member is whoever has the team as their home team. Not included are people without a team, people of other teams (even in the same brand) and the project manager themselves: about themselves they only see what has been shared with them, and they do not maintain their own goals.
| Field | Required | Values / format | What it does |
|---|---|---|---|
Employee employeeId | yes | employee | Whom the goal or entry belongs to. Nothing is reassigned when editing. |
Goal or title title | yes | text, max. 200 characters | What is to be achieved, or what the conversation was about. |
Description description | no | text | Details of the goal. An empty text deletes it. |
Period from periodStart / until periodEnd | yes | date | Duration of the goal. The end must not be before the start. |
Progress progress | no | 0 to 100 % | How far the goal has been achieved. |
Status statusId | no | open, achieved, missed (extendable in the HR settings) | The verdict on the goal, separate from the progress: a goal may count as achieved at 80 %, or as missed at 100 % because it came too late. A new goal starts with the catalog's default status. |
Type kind | yes | conversation or note | Whether a conversation is recorded or an observation noted. |
Date occurredOn | yes | date | When the conversation took place or the note was made. |
Content feedbackText | yes | text, max. 20,000 characters | The entry itself. In the change log it only appears redacted. |
Share with the person sharedWithEmployee | no | yes/no | The person only sees shared entries. Off by default. |
Settings & permissions
- Module
module.hr. - Cost rates are separately protected:
hr.employee.view_costto see,
hr.employee.manage_cost to maintain. Without these the rest of the record stays visible, the figures do not.
- Documents likewise:
hr.document.viewandhr.document.manage— personnel papers are
the most sensitive data in the organisation.
- A deleted personnel document takes its file with it — deleted by hand as well as a confirmed
retention deletion proposal. The file only stays if it still belongs to another personnel document or another record, or has to be retained.
hr.skill.viewandhr.skill.managefor capabilities.- The skill taxonomy is cross-brand and is maintained under HR settings.
FAQ & troubleshooting
I cannot see cost rates. Then hr.employee.view_cost is missing. That is intended, not a display fault.
An employee cannot book time. Check the link to the user account under Users. Without it there is no reference.
A skill cannot be selected. It is not in the taxonomy — add it under HR settings.
A departed employee should be removed. Set the status rather than deleting. Time entries, absences and project assignments hang off the record.