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.

ColumnRequiredExample valueNotes
Employee CodeRequiredEMP-001Unique code identifying the employee
TitleOptionalMrSalutation
First NameRequiredMuhammad AliEmployee's first name
Last NameRequiredKhanEmployee's last name
GenderOptionalmalemale / female / other
Date of BirthOptional1995-03-22YYYY-MM-DD (Excel dates accepted)
National IDOptional42201-1234567-1CNIC / national identifier
EmailOptionalali@company.comMust be unique per employee if provided
PhoneOptional+92-300-1234567Any format accepted
AddressOptional123 Main StreetResidential address
Employment TypeRequiredfull_timefull_time / part_time / contract / intern
StatusRequiredactiveactive / inactive / terminated / on_leave
Join DateOptional2026-01-15YYYY-MM-DD (Excel dates accepted)
Confirmation DateOptional2026-04-15End-of-probation date
DepartmentOptionalHRMust match an existing department name
DesignationOptionalHR OfficerMust match an existing designation name
Work LocationOptionalHead OfficeFree-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.