Employee Import & Export
How to export your employee list to CSV and import it into a new or existing company in Beanflow Payroll — what's included, what's not, and how to resolve import errors.
Last updated August 2026
At a glance
- Export downloads a CSV with employee identity, optional contact/address fields, province, hire date, pay frequency, employment type, compensation type, and salary or hourly rate.
- SIN and pay group are not in the file — those are set in the destination company after import.
- The system validates the entire file before creating anyone. Validation errors create zero employees; after validation passes, employees are created row by row, so a later create failure can leave earlier rows successfully imported.
- Import is useful for switching companies, bulk-adding employees to a new setup, or keeping a portable employee roster.
What's in the export CSV
The exported CSV contains the fields needed to recreate an employee in a new company:
| Field | What it captures |
|---|---|
| First name / Last name | The employee's legal name. |
| Optional employee email address. | |
| Street / City / Postal code | Optional employee address fields. |
| Province | Province of employment, used for provincial tax and employment-standard rules. |
| Hire date | The employee's recorded hire date. |
| Pay frequency | How often the employee is paid (e.g. bi-weekly, semi-monthly). |
| Employment type | Full-time, part-time, seasonal, contract, or casual. |
| Compensation type | Salaried or hourly. |
| Salary / Hourly rate | The employee's compensation amount, matching their compensation type. |
What's not included (and why)
SIN (Social Insurance Number)
SINs are not exported for security and privacy reasons. Beanflow can run day-to-day payroll without a SIN, but employers are still responsible for requesting each employee's SIN when employment begins. Beanflow requires a usable SIN before it will generate T4 slips, so add SINs promptly after import rather than waiting until year-end.
Pay group assignment
Pay groups are company-specific: they are created and assigned in the destination company, not carried over in the CSV. After importing employees, assign each one to the correct pay group in the new company.
Email and address fields are included in the CSV when available. SIN, pay-group assignment, vacation balances, and payroll history are not included and must be handled separately in the destination company.
Exporting employees
- Open the Employees page in the company you want to export from.
- Click Export to download the CSV file.
- Save the file somewhere safe — you will need it for the import step.
Do this before creating the new company, so you do not lose the employee list if anything changes in the current company.
Importing employees
- Open the Employees page in the destination company (the new or existing company you want to add people to).
- Click Import and upload the CSV file from the export step.
- The system validates the entire file before creating anyone. If validation finds an invalid row, zero employees are created and the response shows which lines to fix.
- After validation passes, Beanflow creates employees row by row. Review the import result: a database or persistence error on a later row can be reported after earlier rows were already created.
- If there are validation errors, correct the CSV and import again. If there is a create-time failure, check which rows were created before retrying so you do not duplicate them.
- Once import is complete, assign employees to the intended pay group, review imported contact details, and add SIN or vacation information as needed.
Resolving import errors
Validation happens before any employee is created, so a row-level validation error blocks the whole file and creates zero employees. Creation happens only after that pre-check passes and is processed row by row, so create-time failures are reported separately. Common things to check when you see validation errors:
- Date formats — hire dates must follow the format shown in the import dialog.
- Required fields — name, province, hire date, pay frequency, employment type, compensation type, and rate must all be present and valid.
- Compensation type and rate — if the compensation type is "salaried," the annual salary field should contain the salary amount; if "hourly," the hourly rate field should contain the hourly amount.
- Province values — use the standard two-letter province or territory code (e.g. BC, ON, AB).
Fix the flagged rows in the CSV, save the file, and upload it again. After validation passes, review the final import result to confirm how many employees were created and whether any create-time failures remain.
After import: pay groups and SIN
Once employees are imported, two things still need to be done in the destination company:
- Assign each employee to the intended pay group. Pay groups are created in the new company during setup (see Switching to Beanflow for the full clean-restart flow). Do not create an overlapping second group just to recreate past payroll; a new pay group can still be appropriate for a future configuration change.
- Add SIN and review optional details. Open each employee's profile to add their SIN, vacation balance, or any other details not carried by the CSV, and verify imported email/address information. Beanflow requires a usable SIN before T4 generation, while CRA employer obligations to request the SIN begin when employment starts.