People import from a spreadsheet
By Noor Haddad · created 29 May 2026, 13:00 UTC · last updated 22 Jul 2026, 08:00 UTC · version 11
specpeople-importcsvonboarding
Owner: Noor Haddad · Epic: ENG-1460 · Shipped: Thursday 16 July · Shaped in Emargen as "People import from a spreadsheet"
Why
Accounts were made one by one by an administrator. Vossberg has 6,500 people and Parcelwise 3,000; their HR systems export spreadsheets.
What we built
- People › Import in the portal: upload a CSV file, UTF-8, up to 5,000 rows.
- Columns: first name, last name, email or phone, home depot code, role, sign-in method, employee number. Customer success keeps the details for customers: Preparing a people import file.
- Dry run first. It checks every row and shows how many people would be added, updated or rejected. Nothing is saved.
- Error file. A CSV with each rejected row and why.
- People who exist (same email, or same phone for phone-code people) are updated, never duplicated.
- Each import is written to the audit trail with who ran it.
What we left out
- Removing people who aren't in the file. Too easy to remove a whole depot by mistake. Leavers are removed by an administrator.
- Excel files (.xlsx). They need a new library; CSV covers every HR system we've met.
- Scheduled imports, and accounts from Entra ID or Okta (SCIM).
Rollout
On for everyone. Parcelwise imported 3,040 people on 21 July at the first try after one dry run. Vossberg imports Bettina Hahn's HR export every Monday.