An Employee Import Keeps Failing
The import preview shows red rows, or the confirm step fails after everything looked fine.
The import validates every row and shows you a preview before writing anything, so red rows cost you nothing but a re-upload. Four failures account for nearly all of them: a department or position name that does not match the existing list exactly, an email already used somewhere on the platform, a salary written with a currency symbol or commas, and a hire date the parser cannot read. Create your departments and positions first, then fix the file and re-upload as often as you need. Nothing is written until you confirm, and the confirm runs in a single transaction so a failure part-way rolls the whole batch back.
What the message on your screen means
These are the strings NepalHRM shows, word for word. Find yours and read across.
Department not found
- What it means
- The department name in that row does not exist, or does not match an existing one exactly. Matching is by name and it is case sensitive.
- What to do
- Create the departments and positions first, then make the spelling and capitalisation in the file match them exactly.
email already used
- What it means
- That address already belongs to an account somewhere on the platform, not necessarily in your company.
- What to do
- Do not invent a variant address. Invite the person to your workspace instead, which links the existing account.
invalid salary
- What it means
- The value could not be read as a plain number, usually because it carries Rs., a comma or a decimal.
- What to do
- Strip the formatting in your spreadsheet before exporting. 50000, not Rs. 50,000.
Work through these in order
Cheapest first. Each step says what you should see if it worked, so you can stop as soon as it does.
Download the current template
Column headers change over time, and a template kept from an earlier import can drift out of date. Take a fresh one each time rather than reusing last year's file.
Your headers match what the importer expects.
Create departments and positions before importing people
The importer matches them by name, so they have to exist first. This single step removes the most common batch of red rows.
No row fails on a missing department or position.
Clean the salary column in the spreadsheet
Remove currency symbols, thousands separators and decimals before exporting to CSV. The importer reports an invalid salary rather than silently reading a formatted value as something much smaller.
The salary column validates.
Re-upload until the preview is fully green
The preview is free. Nothing is written until you confirm, so there is no cost to fixing and re-uploading several times.
Every row is green.
Let the system generate employee IDs
Supplying your own IDs is the usual cause of a confirm that fails after a clean preview, because two rows collide on an identifier. Leave the column out and let it auto-generate.
The confirm completes.
Decide about invitations before you confirm
Each new employee also gets a user account, and by default an invitation email goes out. If you are staging data ahead of a launch, choose not to invite yet.
People are created without being told before you are ready.
What the system does
- Required columns
- first name, last name, email, hire date, department, positioneverything else is optional
- Department and position matching
- by name, case sensitiveengineering does not match Engineering
- Email uniqueness
- across the whole platformnot just within your company
- Salary format
- plain integerno currency symbol, no commas, no decimals
- Confirm
- one transactiona mid-batch failure rolls everything back
Still stuck? Send us this
Include all of it in the first message and the first reply back is usually a fix rather than a question.
- The exact error text against one failing row.
- That row from the file, with anything sensitive removed.
- Whether the departments and positions in the file already exist.
- Whether the failure is on the preview or on the confirm.
Asked most often
Matching is by name and it is case sensitive, so engineering will not match Engineering. Copy the names out of the existing list rather than retyping them.
Email addresses are unique across the whole platform, not per company. That person already has an account somewhere. Invite them to your workspace instead of creating a second one.
The usual cause is an employee ID collision. Leave the ID column out and let the system generate them, then re-upload.
No. The confirm runs as one transaction, so a failure part-way through rolls the whole batch back. You will not have to hunt for partially imported rows.
Yes. Choose not to invite yet on the confirm step. The accounts are created and the invitations can go out later, which is what you want when you are loading data before a launch date.
Screens, labels and limits change between releases. If something here does not match what you see, tell us and we will correct the page.
Related guides
- A Leave Balance Is Zero or the Wrong NumberAn employee cannot see a leave type, or the days available do not match the policy you configured.
- A Menu, Module or Button Is MissingA page a colleague can reach is not in your sidebar, or clicking something returns a permission error.
- NepalHRM Emails Are Not ArrivingInvitations, password resets or approval notifications never turn up, or they land in spam.
Support you can actually reach. From Kathmandu.
Email, phone and WhatsApp, answered in English and Nepali by people who know the product. Most questions are closed on the first reply.
- No minimum commitment
- Nepal IRD compliant
- Free onboarding
- Cancel anytime