For administrators
Import candidates
Bring candidates in from a spreadsheet with the Migrator, and fix the rows it could not import.
Last updated: 12 October 2026
The Migrator imports candidates in bulk from an Excel or CSV file, together with their answers to questions. Only admins see it.
Run an import
Select Migrator in the sidebar. The page is called Data Migrator and walks you through four steps.
Specify Target Categories
Upload Spreadsheet
Column Mapping
Read the result
A row without an email address is imported with a placeholder address made from the phone number, such as 9876543210@migrated.local. A placeholder address cannot receive email, so Workrize never sends to one:
- An email with other recipients still goes to them. Only the placeholder address is left out.
- When you send a report by email, a warning names any placeholder address that was left out. See Email a report.
- An automated email whose recipients are all placeholder addresses is not sent. On Automation → Logs it shows as skipped, with the reason.
To reach someone imported this way, add their real email address to their profile.
Rows that were not imported
Failure Details lists each row that was not imported. Row is the row number you see in your spreadsheet, counting the heading row, even when the sheet has blank lines. Reason says why in plain words.
| Reason | What to do |
|---|---|
| Same phone number as row N of this sheet — only the first one was imported. | The number appears twice in your file. Remove or correct the later row. |
| A candidate with this phone number is already in the system. | The candidate exists already, or is in Trash. Find them instead of importing again, or change their status from this list (see below). |
| Same email address as row N of this sheet — correct it or leave it blank. | Two rows share an email address. |
| This email address already belongs to someone in the system — correct it or leave it blank. | Another account uses that email address. |
| The phone number is missing or not a valid number. | Every candidate needs a phone number. Add or correct it. |
Change the status of candidates already in the system
When rows were rejected because a candidate with this phone number is already in the system, you can change those existing candidates' status from the result, without searching for each one.
- In Failure Details, tick the rows you want. Each of these rows has a checkbox. Tick the box in the heading to select all of them.
- Select Change candidate status.
- Pick a status, for example Assigned, and select Apply.
The status is set on the existing profiles that the phone numbers matched. No new candidate is created. A message then says how many were updated and how many failed, and names the row of each one that failed.
- Rows rejected for another reason, such as a phone number repeated in your file or an email address already in use, have no checkbox.
- A candidate in Trash is not changed. Their row is listed as failed. Restore them from Trash first.
- A candidate with a live application keeps Live Application if you choose Assigned.
- The checkboxes appear only for imports run after this feature was released.
Imported with warnings lists rows that did go in, but where a value was adjusted or skipped.
Download the error sheet
When some rows were not imported, select Download error sheet. You get your own spreadsheet back, named after your file with "import errors" added, with three columns at the end:
- Import status: Imported or Not imported.
- Problem: why the row was not imported, or the warning for a row that was.
- Problem columns: which of your columns to fix.
Fix the rows marked Not imported, keep only those rows, and import that file. The button uses the file you just uploaded, so download the sheet before you select Start New Migration or leave the page.
If an import is interrupted
A large import runs in the background. If it is interrupted part-way, for example because the server restarts, it carries on from where it stopped. Rows that were already imported are not imported a second time and are not reported as duplicates, and the result counts every row once.