🇵🇰
Compliance setup — this guide covers statutory, payroll, and regulatory requirements. Octal HR is configurable for different countries, regions, and organizational policies.

The bulk import tool lets you onboard dozens or hundreds of employees in a single operation by uploading a filled Excel (.xlsx) file. Rows that fail a check are skipped and reported, while the valid rows are imported.

When to Use Bulk Import

  • Initial setup: Migrating from a legacy HRMS, spreadsheet, or paper records into Octal HR
  • Seasonal hiring: Onboarding a large intake of contract or seasonal workers at once
  • Branch rollout: Adding all employees from a newly acquired branch or subsidiary
  • Annual class hire: Graduate or trainee cohorts joining on the same date

For fewer than 10 employees, manual entry via HR → Employees → + New Employee is usually faster than preparing and uploading a spreadsheet.

Download the Import Template

Always start from the official template — it includes column headers, data-validation drop-downs (for Gender, Employment Type, and Status), and an example row. Required columns are shown with a blue, bold header. Do not add, remove, or reorder columns; the importer reads by column position.

1
Go to HR → Employees → Import.
2
Download the Employees template (an .xlsx file). Save it to your computer.
3
Open the file in Excel or LibreOffice Calc and fill in your data.

The template includes an example row in row 2 showing the expected format for every column. Delete this row before uploading your actual data.

Required Fields

These columns must be filled for every row. Rows with a missing or invalid required value are skipped, and the reason is reported after the import.

Employee Code, First Name, Last Name, Employment Type, Status
EMP-001, Ali, Ahmed, full_time, active
EMP-002, Sara, Khan, full_time, active
ColumnFormat / Accepted ValuesExample
Employee Code RequiredText; unique per employeeEMP-001
First Name RequiredTextAli
Last Name RequiredTextAhmed
Employment Type Requiredfull_time / part_time / contract / internfull_time
Status Requiredactive / inactive / terminated / on_leaveactive

Optional Fields

These columns enhance the profile and are recommended for complete records, but leaving them blank will not prevent import.

ColumnFormatNotes
Title OptionalTextE.g., Mr / Ms / Dr
Gender Optionalmale / female / otherDrop-down in the template
Date of Birth OptionalYYYY-MM-DDSet later if unknown
National ID OptionalTextCNIC or other national identifier
Email OptionalValid email addressMust be unique; rows with a duplicate email are skipped
Phone OptionalTextE.g., +92 300 1234567
Address OptionalTextResidential address
Join Date OptionalYYYY-MM-DDOriginal date of joining
Confirmation Date OptionalYYYY-MM-DDDate probation was confirmed
Department OptionalMust match an existing department nameDrop-down in the template
Designation OptionalMust match an existing designation nameDrop-down in the template
Work Location OptionalTextE.g., Head Office

Data Formatting Rules

  • Dates: Use YYYY-MM-DD format. The importer also understands Excel's own date cells, but a plain YYYY-MM-DD string is safest.
  • Employee Code: Must be unique. If a code already exists, the row is skipped unless Override existing records is turned on (see below).
  • Email: Must be unique across employees. A row whose email already belongs to a different employee is skipped.
  • Department and Designation names: Must match an existing name (case-insensitive). If a name doesn't match, create the department or designation first, then retry.
  • Drop-down values: Employment Type, Status, and Gender use the drop-downs built into the template. Enter the lowercase values exactly as listed (e.g., full_time, active).

Override existing records

By default, a row whose Employee Code already exists is skipped. Turn on the Override toggle before uploading to update those existing employees with the values in your file instead.

Plan limit: New active employees can never push your active headcount above your plan's allowed limit. Once the limit is reached, further new rows are skipped (existing-employee updates are unaffected). Upgrade your plan to add more.

Upload the File

1
Go to HR → Employees → Import and select the Employees import.
2
Optionally turn on Override to update employees whose codes already exist.
3
Choose your filled .xlsx file and upload it. Records are created and updated right away.
4
Read the result summary — it shows how many records were new, how many were updated, and lists any skipped rows with the reason.

Skipped Rows

The importer processes every valid row and skips only the ones it can't accept. After the upload, each skipped row is listed with its row number and the reason. Common reasons include:

ReasonCommon CauseFix
Required field missing Employee Code, First Name, or Last Name is blank Fill in the missing value
Invalid Employment Type Value is not full_time, part_time, contract, or intern Use one of the accepted lowercase values
Invalid Status Value is not active, inactive, terminated, or on_leave Use one of the accepted lowercase values
Department / Designation not found The name does not match an existing record Create it first, or correct the spelling
Duplicate email The email already belongs to a different employee Correct or clear the email
Code already exists An employee with that code exists and Override is off Turn on Override to update, or change the code
Plan limit reached Adding this active employee would exceed your plan's limit Upgrade your plan, then re-import the skipped rows

Post-Import Tasks

After a successful import, complete these steps to fully set up your employee records:

  1. Enable portal login — For employees who need self-service access, enable their login from the Employees area (see the self-service guide).
  2. Assign salary structures — Open each employee and assign a salary structure under the Employment tab.
  3. Set departments and designations — If any were left blank or not matched, set them now from each employee's profile.
  4. Map biometric IDs — If using a biometric attendance device, use the separate Biometric IDs import or map templates to the new employees.
  5. Run a test payroll — Process a trial payroll for the imported batch to confirm salary structures and deductions look correct before the live run.