Help center

Help center

All collectionsSettings and accessUsers and accessImport users from a CSV file

Import users from a CSV file

Create many user accounts at once from a CSV file, link each person to their manager, and read the per-row import report.

Create many user accounts at once from a CSV file, link each person to their manager, and read the per-row import report.

A CSV import creates many accounts in one step, which suits a workforce of training learners or a new site joining ComplyTrain. Each row is handled on its own: a bad row is reported and skipped while the rest of the file is imported.

Before you import

Product location: /settings/users. Open User Management in Settings, then choose Import users (CSV).

  • Who: an Admin, or a person whose role includes Manage Users (users:manage).

  • Where: Settings, User Management, All Users, then Import users (CSV).

  • What it creates: ordinary accounts with the User role. An import never creates Admins; invite administrators one at a time.

  • Default class: rows without an account type become Training learner. Add the account type column to import licensed users.

  • Limits: up to 1,000 users and 2 MB per file. Split larger workforces into several files.

  • Single sign-on: while Force SSO Login is on, Import users (CSV) is unavailable, because people then get their accounts through your identity provider.

An import never changes existing users. A row whose email address already belongs to a user is skipped.

Prepare the CSV file

Product location: /settings/users. Open User Management in Settings, then choose Import users (CSV).

The first row must be a header. Columns can be in any order, and the header names are not case-sensitive. You can write a header with spaces instead of underscores, for example First Name for first_name. Any column not listed below makes ComplyTrain reject the whole file, so remove extra columns first.

Column

Required

What to enter

email

Yes

The person's email address, which becomes their sign-in name. Each address may appear only once in the file.

first_name

No

First name.

last_name

No

Last name.

department

No

Department, shown in the user lists.

job_title

No

Job title, shown under the name in the user list.

manager_email

No

Email address of the person's manager. See the next section.

account_type

No

licensed or training_only. Empty means training_only.

Standard CSV quoting applies: put a value that contains a comma or a line break in double quotes, and write a double quote inside a quoted value as two double quotes. Fully blank lines are ignored.

email,first_name,last_name,department,job_title,manager_email,account_type
[email protected],Anna,Berg,Production,Shift supervisor,,licensed
[email protected],Jonas,Holm,Production,Machine operator,[email protected],training_only
[email protected],Lea,Sørensen,Production,Machine operator,[email protected],

Save the file as UTF-8 CSV so that names with letters such as ø or é import correctly. In Excel, choose the "CSV UTF-8" file type when you save.

Link people to their managers

Product location: /settings/users. Open User Management in Settings, then choose Import users (CSV).

manager_email connects each imported person to their line manager. ComplyTrain uses that link wherever it works with direct reports, for example a manager's view of their team's training, practical sign-offs and overdue-training escalations.

  • The manager can be an existing user or another row in the same file. Row order does not matter, because managers are linked after all rows are created.

  • If no user has that email address, the person is still created without a manager. The row's reason explains it, and it counts under Unresolved managers.

  • A row that names the person as their own manager is created without a manager in the same way.

  • A manager_email that is not a valid email address fails the row.

The manager link is set only for people the import creates.

Run the import

Product location: /settings/users. Open User Management in Settings, then choose Import users (CSV).

  1. Open User Management and choose Import users (CSV). The Import users from CSV dialog opens.

  2. Read Expected columns, and Licensed seats and cost if it appears (see below).

  3. Under CSV file, choose the file. Loaded … confirms the file name. Alternatively, paste the text into CSV content.

  4. Decide on Send invitation emails. It is off by default: accounts are created, but people are not notified and you need to inform them yourself. Turn it on to send each new user an invitation email with sign-in instructions.

  5. Choose Import users. The dialog shows Importing... until the report is ready.

If the file has no header with email, contains an unknown column, has no data rows, or is over a limit, the dialog shows the reason and nothing is imported. Correct the file and choose Import users again.

If you import without invitation emails, you can invite each person later with Reset password on their user record, which sends the invitation to anyone who is still Awaiting first sign-in.

Seats and costs

Product location: /settings/users. Open User Management in Settings, then choose Import users (CSV).

Every imported user takes a seat of their class, and ComplyTrain checks seats row by row.

Situation

What happens to the row

A seat of the requested class is free

The user is created with that class.

Licensed seat beyond your plan, and your plan charges for extra users

The user is created and the extra seat is billed. The rest of the current billing period is charged immediately and is not refunded if you remove the user later.

Licensed seat beyond your plan, and extra users are free on your plan

The user is created at no extra charge.

No seat is available, and your plan does not allow extra seats of that class

The user is created as Pending and waits for a seat.

Before the import, Licensed seats and cost states how many licensed users your plan includes, how many are still free and what happens to licensed rows beyond that. It does not appear on plans with unlimited users. After an import that created licensed users, What this import costs states how many were created and how much, if anything, they add to your monthly subscription.

A pending user cannot open any module until a seat is assigned. Admins receive a User awaiting access notification for each one. Assign seats in Pending users; see manage seats and account classes.

Read the import report

Product location: /settings/users. Open User Management in Settings, then choose Import users (CSV).

The report replaces the form when the import finishes. The summary counts are Rows, Created, Parked as pending, Duplicates skipped, Failed and Unresolved managers. When any row failed, a note reminds you that failed rows were not imported and that duplicates are skipped automatically on the next import.

The table has one line per data row, numbered from 1 for the first row under the header, with Row, Email, Status, Account class and Reason.

Status

Meaning

Typical reason

Created

The account exists with the requested class.

None. A manager problem, if any, is explained here.

Pending — no seat

The account exists as Pending because no seat was free. Hover over the status for an explanation.

No free seat of the requested class.

Skipped (duplicate)

A user with this email already exists. Nothing was changed.

A user with this email already exists.

Failed

The row was rejected and no account was created.

Missing or invalid email, an email repeated in the file (the first occurrence is imported), an invalid account_type, an invalid manager_email, or a problem creating the account.

Choose Download report (CSV) to save the report as user-import-report.csv, with the columns row, email, status, accountType, userId and reason. The file uses the stored values, for example created, parked, skipped_duplicate, failed, licensed, training_only and pending. Choose Done to close the dialog; the user list, seat usage and pending users refresh.

Fix and re-import

Product location: /settings/users. Open User Management in Settings, then choose Import users (CSV).

A failed row leaves nothing behind. Correct the rows listed as Failed and import the same file again: rows that were created the first time are reported as Skipped (duplicate), and only the corrected rows are added. Re-importing never updates an existing user, so change existing accounts on their user page instead.

Example: onboard a production shift

Product location: /settings/users. Open User Management in Settings, then choose Import users (CSV).

A plant is rolling out procedure training to 60 machine operators and their two shift supervisors. The supervisors work across modules and need licensed seats; the operators only need Training.

  1. Export the shift from your HR system with email, first and last name, department and job title.

  2. Add account_type with licensed for the two supervisors and leave it empty for the operators.

  3. Add manager_email with the supervisor's address on each operator's row.

  4. Import the file with Send invitation emails on, so that everyone receives sign-in instructions. Check the report and download it for your records.

  5. Give the supervisors a role that includes View Team Progress and Approve Completion, such as Training Manager. Each supervisor then follows and signs off their own operators, because the import linked the operators to them.

  6. Assign the operators their training; see assign a course or curriculum.

Did this answer your question?
😞
😐
😁