Import Employees into OrangeHRM from a CSV Staff List
Your office already has the staff list — in Excel, in the attendance register, somewhere. OrangeHRM's PIM import turns that list into employee records in minutes, if the file is prepared cleanly. Preparation is 90% of this job.
✍️ Technical Anshu📄 CSV Import👥 PIM Module
🎥 Watch the complete OrangeHRM server setup in the video, step by step
Manual entry is fine for three people and madness for thirty. The CSV import in the PIM module exists for exactly this moment. This guide covers preparing the file (where imports succeed or fail), running the import, and checking the result like someone who will be blamed for mistakes — because HR data mistakes are personal.
PIM — employee list after a clean import (illustration)
PIM > Employee List
Id Name Job Title Status
---- --------------- -------------- --------
0001 A. Sharma Technician Active
0002 R. Verma Office Staff Active
0003 S. Khan Supervisor Active
(example rows — import a test file first)
Employee records after import — always test with a small file before the full list.
1
Get the Import Format from OrangeHRM Itself
Do not guess the columns. OrangeHRM provides the exact format:
Log in as admin and open PIM → Data Import
Download the sample CSV from that screen — its header row is the contract your file must match
Build your file with those exact headers, in that order
Column names that are almost right are wrong. The importer matches headers literally, and a renamed column becomes silently skipped data.
2
Clean the List Before It Becomes Records
Your spreadsheet has years of habits in it. Clean these before importing:
One row per person — remove duplicates, ex-employees you are not migrating, and blank separator rows
Dates in one format — use the format the sample file uses (YYYY-MM-DD is the safe standard) for date of birth and joined date
Employee IDs — if your office already uses IDs, keep them identical; if not, let OrangeHRM assign them and do not invent a second numbering system
Names spelled as on official documents — this record will print on letters later
Remove merged cells, totals rows and notes typed into data columns
3
Test with Five Rows First
The professional move nobody regrets:
Copy your cleaned file and delete all but the first five employees
Import that small file through PIM → Data Import
Open those five records and check everything — names, dates, job titles, phone numbers
If dates shifted or fields landed wrong, your format is off — fix the file now, while the damage is five rows
Only then import the full list
Importing is easy to repeat. Unpicking 60 wrong records one by one is not.
4
Run the Import and Read the Result Screen
PIM → Data Import → choose your CSV → upload
Read the result summary properly — it reports imported and skipped rows
Skipped rows are not random: the usual causes are a missing required field, a duplicate employee ID, or a date the importer could not read
Fix skipped rows in the CSV and import just those rows again — do not re-import the whole file, or you will create duplicates of the successful rows
5
After the Import — Structure and Logins
Records alone are a phone book. Finish the job:
Check each record has the right job title, department (sub-unit) and supervisor — imports often leave the reporting line empty, and leave approvals depend on it
Add work email and phone where missing — ESS invitations and password resets need them
Create ESS logins for employees in batches (department by department works well)
Spot-check five random records against your source spreadsheet — trust, but verify, because this data now drives leave balances
🔴 Privacy note: that CSV now contains your whole staff list in one file. Prepare it on a trusted machine, import it, and then delete the working copies — do not leave staff-final.csv sitting in a shared downloads folder.
🎥 Watch the Complete Setup Video
See the full OrangeHRM server setup on screen — installation, configuration and the first login, step by step.
OrangeHRM imports CSV files, not .xlsx. Save your Excel sheet as CSV (UTF-8) first, using the sample CSV from PIM → Data Import as the template for headers and order. Watch dates especially — Excel loves reformatting them, so check the CSV in a text editor before uploading.
The import skipped some rows. Did it fail?
Partially, and the result screen tells you how many. Skips are usually a missing required field, a duplicate employee ID or an unreadable date. Fix only the skipped rows in a small CSV and import those — re-importing the full file duplicates the rows that already succeeded.
Should ex-employees be imported too?
Only if you need their history in the new system — for example leave records from this year. Import them with a terminated status rather than as active staff, or leave them in the old records entirely. Active lists should show people who actually work here now.
This guide is based on the Technical Anshu OrangeHRM video • Stuck on a step? Ask in the video comments 🙏