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:

FieldWhat it captures
First name / Last nameThe employee's legal name.
EmailOptional employee email address.
Street / City / Postal codeOptional employee address fields.
ProvinceProvince of employment, used for provincial tax and employment-standard rules.
Hire dateThe employee's recorded hire date.
Pay frequencyHow often the employee is paid (e.g. bi-weekly, semi-monthly).
Employment typeFull-time, part-time, seasonal, contract, or casual.
Compensation typeSalaried or hourly.
Salary / Hourly rateThe 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

  1. Open the Employees page in the company you want to export from.
  2. Click Export to download the CSV file.
  3. 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

  1. Open the Employees page in the destination company (the new or existing company you want to add people to).
  2. Click Import and upload the CSV file from the export step.
  3. 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.
  4. 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.
  5. 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.
  6. 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:

  1. 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.
  2. 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.