Skip to content
Book a demo

Bulk uploading employees from CSV or Excel

Employees 10 min readUpdated 2 days ago

Download the import template, format and fill the file, add new people, update existing employees in place, and terminate leavers, all in one reviewed upload.

Bulk upload lets you add or update many employees in one go by uploading a prepared CSV or Excel file. You start from a template that already contains your current employees, make your changes in a spreadsheet, upload it back, and confirm a clear summary of exactly what will change. Nothing is saved until you review and confirm. This article covers the whole flow: downloading the template, formatting the file, adding new people, updating existing ones, terminating leavers, and fixing the errors you might hit on the way.

Where to find it

In CLVR, open the HR area and go to Add / Manage Employees, then expand the Bulk Import section. A How bulk import works box explains the four steps and reminds you that employees are matched by Employee Number: changing an employee number is treated as removing the old person and adding a new one. There is also a Tips for Excel and Numbers box with advice on keeping personnummer, employee numbers, dates, and decimals intact when your spreadsheet saves the file.

Heads up.

Leave the column names in the header row unchanged. Renaming or reordering is risky, and a renamed column is read as missing, which blocks the upload. Adding rows and editing values is exactly what this flow is for.

Step 1: Download the template

1

Under Step 1: Download Template, select Download Template and choose Excel (.xlsx) or CSV (.csv).

The file contains your current employees as a starting point, so you can add new rows, edit existing ones, or leave people out. Both formats use the same columns and the same column order, so a file you started in one format still imports correctly.

The Excel file has two worksheets:

  • Employees: one row per current employee, pre-filled with their existing details. If you have no employees yet, this sheet is empty apart from the header row.
  • Instructions: a reference sheet listing every column, whether it is Required, a short description, and the expected Format (for example Text, Number, Email, or DD/MM/YYYY). It is the quickest way to check a column you are unsure about without leaving the file.

The CSV behaves slightly differently depending on whether you already have employees. With employees, it exports your current people as a CSV saved as UTF-8 (with a byte-order mark) so Swedish characters like å, ä, and ö display correctly. With no employees yet, it opens a blank starter template with just the header row.

Tip.

Pick Excel if you want the built-in Instructions sheet to refer to while you work. Pick CSV if you prefer a plain, lightweight file or want to avoid a spreadsheet app reformatting your data. Either file imports the same way.

The columns in the template

Every template contains the same base columns, in this order. All are required except gender:

  • employeeNumber, firstName, lastName, email, personnummer, dateOfBirth
  • gender (optional)
  • jobTitle, annualSalary, pensionableSalary, taxTable, employmentRate, benefitAllowance, startDate
  • address, postalCode, city, country

A few notes on format:

  • Dates (dateOfBirth and startDate) use DD/MM/YYYY, for example 07/03/1990.
  • employmentRate is a percentage, for example 100 for full time.
  • employeeNumber is how CLVR matches a row to an existing employee on upload, so keep it stable.

If your company uses custom employee fields, those in active use across your employees are added as extra columns after the base columns, and listed on the Instructions sheet. You do not need to add them by hand.

Formatting tips that avoid errors

Most bulk upload problems come from a small set of spreadsheet formatting mistakes, not from CLVR. A few minutes spent on the file up front saves you a round of fixing errors.

  • Keep the header row exactly as it is. Columns are matched by their header names, so a renamed column reads as missing and stops the upload. Reordering columns is fine; renaming is not. Always start from a fresh Download Template file rather than building the header row by hand.
  • Fill in every required cell. An empty required cell blocks the upload. gender is the only base column that may be left blank. Watch for cells that look filled but contain only spaces: those count as empty.
  • Format number columns as plain numbers. annualSalary, pensionableSalary, benefitAllowance, and employmentRate should be plain numbers. Enter 45000, not 45 000 kr or 45,000, and use 100 (not 100%) for employmentRate.
  • Use DD/MM/YYYY for dates. Keep the day first, then the month, then the four-digit year, or a date may be misread.
  • Keep employee numbers and emails unique. Each employeeNumber and each email must appear only once in the file, and an email cannot already belong to a different employee on file.
  • Save in a supported format. The upload area accepts .csv, .xlsx, and .xls. For CSV, save as CSV UTF-8 so Swedish characters survive. In an Excel file, the importer reads the first sheet that is not the Instructions sheet, so you can keep that reference sheet in the workbook.
Tip.

Spreadsheet apps can quietly change data when they save: dropping the leading zero on a postal code, turning a long personnummer into scientific notation, or reformatting a date. Format personnummer, employeeNumber, and any column with leading zeros as Text before saving (in Excel: right-click the column, then Format Cells, then Text). The raw file is often correct even when Excel displays it oddly, so when in doubt open the saved file in a plain text editor to check.

Step 2: Upload your updated file

2

Under Step 2: Upload Updated File, drag your file onto the upload area, or use click to browse to pick it. The drop zone supports .csv, .xlsx, and .xls.

CLVR checks the file as soon as you add it. If something is off, you stay on this step and see a notice describing the problem so you can fix the file and try again. The upload is blocked when a required column is missing, a required cell is empty, the file contains duplicate employee numbers or emails, or an email already belongs to a different employee in CLVR. (The Troubleshooting section below decodes each of these.)

If your file uses extra columns CLVR does not recognise, that is fine: a New columns detected notice tells you they will be saved as custom fields.

Step 3: Review the changes

A valid file takes you to the Review Changes screen. At the top, coloured badges summarise the impact:

  • to add (green) for new employees.
  • to update (orange) for existing employees whose details changed.
  • missing from upload (red) for current active employees who are not in your file.

For every update, the row lists the exact field changes with the old value struck through and the new value highlighted, so there are no surprises. New custom columns are listed too.

Updating existing employees in place

Re-uploading your file with changed values edits the matching employees in place, so you never create duplicates. CLVR matches each row to an existing employee by Employee Number: if the number already exists in your company, that person's record is updated; if it does not, the row is a brand-new employee.

  • Only fields that actually differ are listed, so a person with one changed cell shows just that one change. This is your last chance to catch a typo before saving.
  • Changing an employee's email, first name, or last name updates their employee record and their sign-in account at the same time. The new email becomes the address they sign in with.
  • A blank cell overwrites the stored value. Clearing a custom field in the file empties it for that person. Required columns cannot be left blank.
  • If the file matches your current data exactly, CLVR shows a No changes detected notice and writes nothing, so it is safe to re-upload to double-check your data is in sync.
Heads up.

Because matching is by employee number, changing someone's number is treated as removing the old person and adding a new one, not as an edit. Keep employee numbers stable when you only mean to update details.

Terminating employees who are missing from the file

When your file leaves out some current active employees, CLVR does not assume you want to remove them. Each one appears under the red missing from upload badge in the Employees Missing from Upload section, with a checkbox labelled by their name and Employee Number. A warning above the list spells out the rule:

  • You can choose to mark these people as terminated by ticking their box.
  • If you do not select termination, no action is taken on them.
  • Bulk upload cannot fully delete an employee. To remove someone completely, contact us.

For everyone you tick, confirming marks them as terminated effective today and pro-rates their benefit allowance to today's date. This is the same outcome as a backdated termination set from an employee's own record, so those people lose access to CLVR Benefits straight away. If a terminated employee had already used more of their allowance than the pro-rated amount allows, CLVR flags that overuse for you, the same as it does for a single termination.

Employees who are already terminated are never shown in this list, so you can re-upload a current-employees-only file as often as you like without re-flagging people you offboarded earlier.

Heads up.

Being missing from the file does nothing on its own. Nobody is terminated until you tick their box and select Confirm Changes. This is deliberate, so a partial file (for example, a list of one department) never quietly removes everyone else.

Tip.

For new employees you can keep Pro-rate benefit allowance for new employees on so a mid-period start gets a proportional allowance, or turn it off to grant the full amount. This switch affects only the people being added, never the ones being updated.

Step 4: Confirm

When the summary looks right, select Confirm Changes. Use Cancel or Back to Upload if you want to adjust the file first. After processing, a Bulk operation complete notice tells you how many employees were added, updated, and marked for termination, plus how many new custom columns were created.

Each newly added employee also receives their Welcome to CLVR Benefits email so they can sign in.

Troubleshooting

Each error notice lists up to 10 offending rows, followed by a "...and X more" summary line when there are more. Fix every affected row, not only the ones shown, or the same error will return on your next upload.

  • Missing Columns. One or more expected columns are not present, almost always because a header was renamed. The notice names each missing column. Change any renamed header back to its original name (reordering is fine), or paste your data into a fresh template.
  • Some required fields are empty. A required cell is blank in one or more rows. The notice lists each affected row number and the empty field names. Required fields include employee number, name, email, date of birth, job title, salary, employment rate, benefit allowance, start date, and address details; in Sweden, personnummer, pensionable salary, and tax table too. A cell holding only spaces counts as empty.
  • Duplicate employee numbers found in the upload. The same employee number appears in more than one row. Give each employee their correct, distinct number.
  • Duplicate email addresses found in the upload. The same email appears in more than one row. Two people cannot share one email; correct the duplicate.
  • Some email addresses are already used by different employees. An email in your file already belongs to an existing employee with a different employee number, usually because a number was mistyped. Either fix the email so it matches the right person, or fix the employee number so the row updates the existing employee instead of creating a new one. Email checks are case-insensitive, so Anna@example.se and anna@example.se count as the same address.
  • Unsupported file format, or failed to parse. Unsupported file format means the extension is not one CLVR can read; save as .csv, .xlsx, or .xls. Failed to parse means the file is the right type but its contents could not be read; re-export from a clean copy rather than re-saving the damaged file.
  • A spreadsheet stripped my leading zeros or changed a personnummer. Format those columns as Text before saving, and prefer CSV UTF-8.
  • Someone appears under "missing from upload" by mistake. They are simply not in this file. Leave their checkbox unticked and they stay unchanged, or add them back to the file (matched by Employee Number) before confirming.
  • Someone I meant to edit shows up as a new employee instead. Their employee number in the file does not match the one stored in CLVR. Restore the original number so the row updates the existing person.
  • I need to fully delete an employee. Full deletion is not available in CLVR. Marking as terminated is the offboarding path; contact us if records must be removed entirely.
14-day onboarding · live by next payroll

Not ready to apply?
Let's just chat.

30 minutes, no deck, no discovery call. We'll walk you through the real product with real numbers from your industry. If it fits, great. If it doesn't, we'll tell you who does.

  • See the real product
    Live app, your data shape, not a Loom recording.
  • Your numbers, not a template
    We'll model the BIK savings off your headcount and salary bands.
  • No sales theatre
    If we're not a fit, we'll point you at someone who is.
Talk to a founder

See what CLVR Benefits can do for your team.

Share a few details and we'll come prepared with numbers from your industry. Usually back within one business day.

By submitting this form, you agree to our Privacy Policy and Terms of Service.