Load the complete payroll when the company doesn't use (or doesn't want to connect) a directory integration.
Keep data up to date: update department, position, country or language for many employees in a single step.
Deactivate employees who are no longer with the company, removing them from the file.
See the impact before confirming: number of new, modified, deleted and error rows.
Avoid incorrect uploads: if the file has errors or is empty, it cannot be confirmed and the payroll remains intact.
Complete the initial onboarding when there are no employees on the platform yet.
Download the template
There are two entry points, both with the same flow:
The "Manual import from our template" notice opens, with the link to download the template and the Import button.
It goes directly to the file selector (the template is downloaded from the other entry point).
The template includes these columns, and the column names must not be modified:
Column
Required
Detail
Yes
Identifies the employee. Unique across the entire platform.
firstname
Yes
First name
_last_name
Yes
Last name
country
Yes
Country
language
Yes
Content language: es, en or pt
position
Yes
Position
department
Yes
Department
personalId
No
Internal employee identification (employee ID, document)
phonenumber
No
Accepted if the column is added to the file.
Important: the file is the complete payroll, not an addition. Any active employee not appearing in the file is removed from the payroll.
Upload the file
.xlsx, .xls and .csv are accepted. While the file is being processed, a loading indicator is shown; for large payrolls it may take a few seconds.
Review the preview
The preview modal opens with the file name and a general label: No errors or N with errors.
At the top, five indicators:
New — employees who don't currently exist on the platform and will be created.
Deleted — employees who are currently on the payroll and don't appear in the file.
Modified — existing employees whose data will be updated.
Total rows — rows with data read from the file (empty ones are ignored).
With errors — rows that don't meet the validations.
Below, the row-by-row detail: Row / Name and ID / Email / Department and role / Action / Status. Rows with errors are shown first, with the reason below the status. If there are many rows, the table is paginated.
The classification of each row depends on the data already loaded: if the email already exists in the company, the row is marked as Modified; if not, as New. Deleted entries don't come from the file: they are the employees on the platform who were left out of it.
Available buttons:
Cancel — closes without applying anything.
Upload another file — discards this review and opens the selector again.
Confirm import — applies the changes.
Validations and blocks
The import is all or nothing:
Empty required fields (first name, last name, email, country, language, position, department).
Email with invalid format.
Language other than es, en or pt.
Duplicate email within the same file → "The email is duplicated within the file."
Email that already belongs to another company on the platform → "The email belongs to another company."
Blocking messages that appear in the preview:
With errors: "Fix the errors or upload another file to be able to confirm."
File with no rows: "The file has no rows. Upload a file with data to continue."
If the file cannot be read (corrupted format, renamed columns) or the operation cannot be completed at that time, an error message is shown and the payroll is not modified. In that case, try again in a few minutes with the file generated again.
Confirm and see the result
Upon confirming, the button remains in a loading state until the process finishes. Then the Import applied screen is shown, with the file name and what was effectively applied: employees added, deleted, modified and rows processed. With Done, the flow closes and the employee list is updated.
If I upload a file with only 10 employees, what happens to the rest of my payroll?
They are deleted. The file represents the complete payroll, so any active employee not in it is deactivated. The preview shows this in the Deleted indicator before confirming: if the number isn't as expected, cancel and review the file.
What happens to an employee deleted by the import?
They are no longer active and move to the Archived tab. They are removed from their groups and their scheduled sends and incomplete courses and learning paths are cancelled; what they had already completed is kept. If they appear again in a later import, they are reactivated with their history.
Can I change an employee's email from the import?
No. The email is the data that identifies the employee: if you change it in the file, the system understands that the previous one left (it is deleted) and that there is a new one. To preserve the history, the email must be kept the same.
I fixed a single incorrectly loaded row, do I have to upload the entire file again?
Yes. The import is applied as a whole, not by rows: fix the row in the file and upload the entire file again. As long as there are errors, Confirm import remains disabled and nothing is applied.
Can I use the manual import if I also have an integration connected?
Yes, but it's best to avoid it: the next integration sync will rewrite the payroll according to the directory and may revert what you loaded manually. If the company works with an integration, use the manual import only for specific cases.
Do you have feedback or want to request improvements? Tell us at roadmap.whalemate.com/roadmap