How do I import employees from a file?

Updated 3 weeks agoSara AhlénEmployee Management

An import is the route for many employees at once — setting Velory up, or moving off a spreadsheet. It can also start a configured onboarding for each hire in the file, which is what makes it worth using for a joining cohort rather than just a backfill.

Before you begin

You need Admin access. Your file needs at least an email, a first name and a last name per row.

Import employees

  1. Go to Employees → Employees.
  2. Click Add Employee → Import from file.
  3. Upload the file. CSV, XLSX, XML and JSON are accepted, up to 10 MB.
  4. Map your columns to Velory's fields. Velory proposes a mapping; correct anything it got wrong.
  5. Review the result. Rows with problems are flagged here.
  6. Import.

Up to 5,000 rows per import. Split a larger file.

The upload step offers a template so you can see the expected column names before building the file.

If your company has an import-filter workflow configured, the stepper shows it as an extra stage before the import: it can accept or reject each candidate row before any record is created, and it reports how many it admitted and dropped.

Supported fields

FieldRequiredDescription
emailYesWork email — the primary identifier
first_nameYes
last_nameYes
employee_idNoYour internal employee identifier
departmentNo
job_titleNo
phoneNoWork phone number
locationNoOffice location or city
work_locationNoOnsite or remote. Decides where they return devices. Accepts onsite/office/on-site or remote/offsite/home/wfh
officeNoThe office they work from. Must match a Delivery & Return address, matched case-insensitively; an unmatched name is skipped with a warning
start_dateNoYYYY-MM-DD
manager_emailNoLinks the reporting relationship by email
tagsNoExisting tag names, comma- or semicolon-separated

Onboarding columns

These four start and configure an onboarding per row:

FieldDescription
trigger_onboardingyes creates an onboarding for this hire. By default it waits on the confirm step for an admin
auto_triggeryes starts it immediately. Needs a start date on the same row
invite_modenow, scheduled or manual. Defaults to now
invite_scheduled_atYYYY-MM-DD. Required when invite_mode is scheduled

The review step turns these into real controls — a toggle and an invite selector — and blocks any row whose onboarding is incomplete until you fix it. See How do I start an onboarding?.

How duplicates are handled

Every row is matched against the employees you already have. Velory scores the match and acts on the score:

SignalConfidence
Email — checked against both work and personal email100%
Personal email — same, both ways100%
Employee number95%
Employee ID95%
External ID90%
First and last name, fuzzily50%
  • 90% and above — merged into the existing person automatically.
  • 50% to 89% — held for you to confirm or skip. This is where a name-only match lands, which is the right place for it.
  • Below 50% — treated as a new person and created.

Because email is matched against both address fields in both directions, someone whose record was created from a private address is still recognised when you import their work address.

What happens after the import

  • New employees appear on the Employees list.
  • Updated records show their changes at once.
  • Each imported person's Activity tab records the import.
  • A summary reports how many were created, updated and skipped.

Good to know

Which file format should I use?

Whatever you already have. CSV and XLSX are the usual ones; for CSV, use commas and UTF-8 so accented names survive.

Can I update existing employees by importing?

Yes. That is what the matching is for — a file with an email column updates rather than duplicates.

What about manager relationships?

A manager_email column resolves to an existing person. The manager has to exist already, or be somewhere in the same file.

What happens to tag names I made up?

They are skipped with a warning. Importing never creates a tag, so a typo silently drops rather than polluting your tag list. Matching ignores case.

Will imported employees be invited?

Only if you used the onboarding columns. Otherwise an import creates records and nothing else — use Start onboarding, singly or in bulk, afterwards.

Was this article helpful?