You can add employees to Octal HR one at a time using the employee form, or import hundreds at once using an Excel (XLSX) spreadsheet. This article covers both methods and includes the full import field reference.
Adding one employee at a time
Use this method when onboarding a single new hire.
1
Go to HR > Employees and click the Add Employee button (+ icon, top right).
2
Fill in the required fields:
- Full name — as it appears on the employee's CNIC
- CNIC number — format:
12345-1234567-1(13 digits with dashes) - Email address — used for the self-service portal login; must be unique
- Date of joining
- Department and Designation
- Employment type — Full-time, Part-time, Contract, or Intern
3
Optionally add: phone number, gender, date of birth, residential address, emergency contact name and number, and bank account details (for direct salary transfer).
4
Click Save Employee. The employee profile is created and a welcome email is sent to their address with a link to set their portal password.
Note: Each employee is identified by their Employee Code, which you set on the form (e.g. EMP-001). Codes must be unique.
Bulk import via Excel
Use this method when onboarding multiple employees at once — for example, during initial setup or when migrating from another system.
1
Go to HR > Employees > Import and choose the Employees import type.
2
Click Download template to get the official Excel (.xlsx) file with the correct column headers. Required columns are highlighted in the header row, and columns with a fixed set of values (such as Employment Type and Status) have a built-in dropdown.
3
Fill in the template in Excel. Do not rename or remove column headers. An example row is provided — replace it with your own data.
4
Save the file as an Excel Workbook (.xlsx) and upload it. Optionally tick Override to update existing employees that match by Employee Code.
5
Review the result. Any rows that couldn't be imported are listed with a reason. Fix them in the spreadsheet and re-upload.
Tip: Department and Designation values must match an existing department/designation name — the template includes dropdowns populated from your workspace to help.
Import field reference
The table below describes the columns in the Employees import template.
| Column | Required | Example value | Notes |
|---|---|---|---|
| Employee Code | Required | EMP-001 | Unique code identifying the employee |
| Title | Optional | Mr | Salutation |
| First Name | Required | Muhammad Ali | Employee's first name |
| Last Name | Required | Khan | Employee's last name |
| Gender | Optional | male | male / female / other |
| Date of Birth | Optional | 1995-03-22 | YYYY-MM-DD (Excel dates accepted) |
| National ID | Optional | 42201-1234567-1 | CNIC / national identifier |
| Optional | ali@company.com | Must be unique per employee if provided | |
| Phone | Optional | +92-300-1234567 | Any format accepted |
| Address | Optional | 123 Main Street | Residential address |
| Employment Type | Required | full_time | full_time / part_time / contract / intern |
| Status | Required | active | active / inactive / terminated / on_leave |
| Join Date | Optional | 2026-01-15 | YYYY-MM-DD (Excel dates accepted) |
| Confirmation Date | Optional | 2026-04-15 | End-of-probation date |
| Department | Optional | HR | Must match an existing department name |
| Designation | Optional | HR Officer | Must match an existing designation name |
| Work Location | Optional | Head Office | Free-text work location |
Fixing import errors
- "Email already in use" — The email address is already linked to another employee. Use a different email.
- "Department not found" — The department name in your spreadsheet doesn't match any department in Octal HR. Create the department first (guide here) or correct the spelling.
- "Employee Code is required" — Every row must have a unique Employee Code.
- "Invalid Employment Type" — Use one of:
full_time,part_time,contract,intern. - "Invalid Status" — Use one of:
active,inactive,terminated,on_leave.