# Employees

Find, add, import, export and manage the status and history of employees.

Use **Employees** to find an employee by name, code, or work contact information. Filter account access and employment status separately: an active account may belong to someone who is still onboarding, and an ended employment record may retain account access if HR explicitly allows it.

Select **Filters** to expand the filter options, choose the criteria you need, then
select **Apply filters**. Changes do not affect results until you apply them;
**Cancel** discards your changes. **Reset filters** clears the pending choices and
still requires Apply. Remove an applied filter or use **Clear filters** to broaden
the results without clearing your search.

![Employees: Add employee (1), search the directory (2) and use a row's actions menu (3) to change account access.](https://media.czappstudio.com/screens/docs/employees/light-b3d2c19750-2880.webp)

With permission to edit employees, use a row's actions menu to disable an active employee's account access or enable a disabled one. You can add an optional reason, which is kept in the audit log. Employment status is not changed this way; use onboarding or separation for that.

Open an employee to manage the details your permissions allow. The colleague directory and Connect contacts contain work contact information. Private details, home-location information, and compensation require the appropriate employee-profile access.

Use [Deleted employees](https://czappstudio.com/docs/administration/employees#section-4) when a record has been deleted. Before adding a new employee with an existing email or code, check whether the original record should be restored.

## Adding an employee

Add an employee directly when recruitment and an offer are not needed. You can create a person who has already joined or is still onboarding.

1. Open **Employees** and choose **Add Employee**.
2. Enter their name and work email. Check for an existing or deleted record before creating a duplicate.
3. Enter the work assignment and joining details your organisation uses. Select only the roles and app access the employee needs.
4. Choose the employment state, add optional contact or compensation details where needed, and save.
5. Saving sends the employee an invitation. They set their own password using the expiring invitation link; resend it from their profile if needed.

The form suggests the next employee code. Keep it, or replace it with a unique custom code. If someone else takes the suggested code first, the next free one is used. Codes remain reserved for deleted records, so restore an existing employee instead of reusing their code.

Employment onboarding and account access are separate. An invited employee cannot sign in until they accept the invitation; an active account can sign in while employment onboarding is still underway. Recruitment, an offer, and probation are optional paths rather than requirements for every employee.

## Account access and employment status

Account access and employment progress answer different questions. Review both before changing an employee's record.

| Account access | Meaning |
| --- | --- |
| Invited | The employee must accept an invitation and set a password. |
| Active | The employee can sign in to the apps allowed by their roles and permissions. |
| Disabled | Sign-in and authenticated access are blocked. The employment record is retained. |

| Employment status | Meaning |
| --- | --- |
| Onboarding | Joining arrangements are still being completed. |
| Employed | The employee has joined. |
| Ended | The employment has ended. |

Use the employee directory's filters to find a group, then open the employee before changing access or employment details. Disabling access does not end employment. Ending employment is recorded through a separation; HR decides separately whether to disable account access.

Before access is disabled, HR is warned when the employee still manages direct reports, owns field customers or has open journey plans. Users with **Reassign customers to employees** can choose a successor in the same step; the customers move and their assignment history records the change. Otherwise continue and reassign customers later from **Field Operations → Customers**. Pause or end open journey plans separately. The employee's **Field work** tab lists their customers and journey plans within your own visibility.

### Invitations and restoring access

Send a new invitation when an employee's original link has expired. They choose their own password. Enabling an account restores only the access its roles already allow; review those roles before restoring access.

Do not delete an employee simply to block sign-in. [Deleted employees](https://czappstudio.com/docs/administration/employees#section-4) describes deletion and recovery; [Managing a separation](https://czappstudio.com/docs/modules/employee-lifecycle#section-20) describes recording an exit.

## Deleted employees

Deleting an employee moves the record to **Deleted employees** and stops its normal use. Choose disabling account access when you need to stop sign-in but keep the employee in ordinary management views. Choose separation when employment has ended.

To recover a deleted record, open **Employees → Deleted**, find the person, and choose **Restore**. A restored account is disabled. Review its roles and employment record before explicitly enabling access; restoration does not restart employment or automatically restore sign-in to Microsoft 365.

Permanent deletion is a separate action available from the deleted list. It removes the employee record and, when linked, requests deletion of the Microsoft 365 account. Verify that required records and mailbox content have been retained before using it. This action cannot be undone in Open Core HR.

### Reviewing an account deletion request

An employee can request account deletion from the mobile app. In **Employees**, filter **Deletion requests** to pending requests, then open the employee profile. The reason and request date are restricted to users allowed to view private employee details.

Review the request before taking action. Deleting the employee completes the request. If the record should remain, use **Dismiss request** and optionally record review notes; dismissal requires employee editing and private-details management access. Dismissing a request does not delete the employee or change their employment state.

## Importing employees

Open **Import & Export**, choose **Employees** under imports, and download the current template. Import permission is required. The file creates new employees; it does not update existing accounts. Follow the [shared import workflow](https://czappstudio.com/docs/administration/import-export#section-3) to upload, validate, review and explicitly confirm the file.

Only `first_name` and `email` are required. Each email must be unique. Leave optional organisation, private, and compensation columns empty when you do not need them. A supplied department or designation name, location or shift code, or reporting manager email must match an existing active record.

Set `requires_onboarding` to `1` when the employee should complete joining tasks through the Employee Lifecycle module; otherwise use `0` or leave it blank. Employment and account access are separate. Imported employees receive an invitation to set their own password.

Use dates in `YYYY-MM-DD` format to avoid ambiguity. Enter phone numbers as text so the spreadsheet preserves their international prefix and leading zeros. When supplying compensation, include amount, currency, pay period, and effective date together. Private fields and compensation require their respective management permissions.

### Roles and codes

The optional `roles` column accepts permanent role identifiers separated by semicolons, for example `employee;manager`. Every role must exist, duplicates are rejected, and you must be allowed to assign it. Leave the column blank to use the normal employee role. System Bot is not an employee role.

Leave `code` blank to allocate one automatically, or supply a unique employee code. Codes are normalised to uppercase and must remain unique against deleted records as well.

If validation reports row numbers, correct the affected rows and validate a new upload. No employees are created during preview, and any validation errors block confirmation. Check **History** for the confirmed import's result and the employee directory before importing the same people again, so you do not mistake an invitation delivery problem for a missing employee.

## Exporting employees

Open **Import & Export** and choose **Employees** under exports when you need a spreadsheet of employee records. Export permission is required. Filter by department, location, designation, account status or employment status, choose the permitted columns you need, and request an XLSX or CSV file. Filters on the employee directory do not carry over; the scope you choose in Import & Export controls this download.

Account access and employment status are separate columns. Private fields appear only when you have permission to view employee private details; current compensation appears only with compensation access. The export contains current terms, not the full compensation history.

The file is generated in the background. Download it from **History** after completion and before the expiry shown, seven days after the request. Your data access is checked again at generation and download; changing your permissions can prevent completion or access. See [Transfer history and downloads](https://czappstudio.com/docs/administration/import-export#section-17).

Review the file before sharing it, particularly if it contains personal contact information or pay. Keep exported copies only as long as needed; later changes to an employee record do not update an existing download.

## An employee's change history

Open Core HR keeps a history of changes made to each employee record. You can review it on the **Activity** tab of the employee's profile — it isn't a separate screen.

### Steps

1. Open the employee's profile from **Employees**.
2. Click the **Activity** tab. The history loads as a timeline, newest first.
3. Each entry shows what happened (for example a record being created or updated), when it happened, the fields that changed (old value to new value), a **Reason** if one was given, and who made the change.

![The Activity tab (1) of an employee's profile lists changes newest first.](https://media.czappstudio.com/screens/docs/employee-activity/light-457dc190d1-2880.webp)

### Tips

- If nothing has been recorded yet, you'll see "No activity recorded yet."
- When someone changes the employee's status (Suspend, Relieve, Terminate, Reactivate), any reason they typed shows up here as part of that entry.

## Reviewing an employee timeline

Use the employee timeline to understand when joining, probation, employment changes, disciplinary actions, and separation were recorded. Open it from the employee's profile when you need the context behind their current record.

Read the date, action, and responsible person, then open the related record where available. An employment effective date may differ from the date HR recorded or approved the change.

The timeline is supporting history. Check the employee profile for current work terms, the separation for the employment end date, and the settlement for payment status. Completing one does not imply that the others are complete.

## Using employment letters

Employment letters record the terms or outcome of a lifecycle action, such as an offer, appointment, confirmation, employment change, or separation. Open the employee profile’s **Letters** tab to download available documents. Their originating workflow controls when they are released.

Check the employee or candidate identity, effective dates, role, and any compensation terms. If details are incorrect, correct the underlying record through the permitted workflow before producing a corrected letter. Downloaded copies do not change when the underlying record changes.

Employees can find available letters in **My Letters**. [Disciplinary warnings](https://czappstudio.com/docs/modules/disciplinary-actions) are managed in Disciplinary Actions.

### Choosing stationery

New installations use **Plain stationery**, which prints the configured company name and address without a letterhead image. Keep [company information](https://czappstudio.com/docs/administration/settings#section-7) accurate before issuing letters.

If your organisation uses branded letterhead, an administrator can upload a PNG or JPG through **PDF Templates → Manage Letterhead Stationery**. Choose it as the default or select it for an individual template. Leave enough space around the content for your letterhead and check a preview before issuing documents. Existing custom letterheads remain available.
