Importing users from a CSV or directory export
Importing users from a CSV or directory export
Need to add a lot of people at once? The user importer lets you bulk-add members to your account from a spreadsheet or a directory export, map the columns, preview exactly what will happen, and create the accounts in one go. This guide covers supported files and columns, how passwords are handled, and the two ways to set up the new accounts.
What you'll find here
- Where to start the import
- Supported files and auto-detected exports
- Which columns you can import
- What an import file looks like
- How passwords work (important)
- Create now vs send invitations
- Preview and import
Where to start

- Open the Users page.
- Click the import button (the file-import icon) next to the invite button.
- Drag in your file, or click to browse.
Supported files
You can upload a CSV or JSON file (up to 10 MB). The importer auto-detects two common directory exports and maps their columns for you:
- Google Workspace user export
- Microsoft 365 user export
Any other CSV or JSON works too - you'll just map the columns yourself on the next step. JSON can be a plain list of user objects or wrapped as {"users": [...]}, which is how Google's JSON download is shaped.
If your file isn't a recognized export, leave the source format on Auto-detect; the importer will still match common column names (like "email", "first name", "class") automatically, and you can adjust anything it gets wrong.
Which columns you can import
On the mapping step, you line up each SimplyPrint field with a column from your file. Supported fields:
Field | Notes |
|---|---|
Email address | Required. Used to match existing accounts. |
First name / Last name | |
Full name | Split into first and last automatically. |
User group / role | Matched by group name or ID. Unknown values fall back to your default group. |
Class(es) | School accounts only. Comma or semicolon separated. |
Teacher | School accounts only. |
Phone number | |
Language | A 2-letter code, like "en" or "da". |
Initial password | Advanced - only if you want to set passwords yourself. |
A few helpful behaviours:
- School accounts can auto-create classes. If your file references classes that don't exist yet, the preview offers to create them. A Google Workspace Org Unit Path like
/Students/9Amaps to the class 9A. - Existing SimplyPrint accounts are matched by email and simply added to your account. Someone who's already a member is skipped, so re-running an import is safe.
What an import file looks like
The quickest way to get the format right is the importer itself: on the upload step, click Download example CSV or Download example JSON for a ready-to-edit template, then swap the sample rows for your own people.
If you'd rather build the file by hand, a CSV is a header row naming the columns, then one row per person. For a school the header might be email,first_name,last_name,role,school_classes,is_teacher, giving rows like:
first_name | last_name | role | school_classes | is_teacher | |
|---|---|---|---|---|---|
Emma | Johnson | Student | 7A | ||
Liam | Smith | Student | 7A;7B | ||
Sarah | Taylor | Teacher | yes |
Prefer JSON? Use a list of objects with the same keys, one per person: [{"email": "emma.johnson@school.edu", "first_name": "Emma", "last_name": "Johnson", "role": "Student", "school_classes": "7A"}]. Add "is_teacher": "yes" for teachers, and you can wrap the list as {"users": [...]} if your export does.
Only the email column is required - every other column is optional. Leave out the class and teacher columns for non-school accounts, and put someone in more than one class with a semicolon or comma, like 7A;7B. Column names don't have to match exactly: the importer matches common headers like "Email Address", "First Name" and "Class" for you, and you can fix anything it misreads on the mapping step.
How passwords work
This trips people up, so here's the full picture. Directory exports from Google and Microsoft never contain real passwords - the password column there is masked or empty. So new accounts don't get a password from the file. Instead, you have a few options:
- Default (recommended): SimplyPrint gives each new account a random password and emails everyone a password setup link. The welcome email's link is valid for 7 days; if it expires, the person uses "Forgot password" on the login page with their email address.
- Single sign-on accounts: if your account uses SSO, passwords don't matter. People sign in through your identity provider, and the account is matched to them by email. You can skip the welcome email entirely.
- Set passwords yourself: map the Initial password column (under advanced fields) to set a known password per person. Passwords must be at least 8 characters.
- Let people choose their own: use invite mode (below) so each person picks their password when they accept.
Create now vs send invitations
On the preview step, a card titled How should the accounts be set up? lets you choose:
Create the accounts now
The accounts exist immediately and count toward your user-slot limit right away. Under this option:
- Email everyone a password setup link (on by default) sends the welcome email described above.
- If you turn the email off, people sign in via SSO, or use "Forgot password" with their email address.
This is the recommended path for schools, where you usually want the accounts ready before students arrive.
Send email invitations instead
SimplyPrint emails an invitation to each address. The account is created only when the person accepts, and they pick their own password then. Invitations don't consume a user slot until they're accepted, so this is a good fit when you're not sure everyone will join.
Preview and import
Before anything is created, the importer shows a preview of every row:
- A summary of how many rows are ready, have warnings, or have errors.
- Per-row status, including which emails are new, which match an existing account, and which are already members.
- For schools, the classes each person will join and any that will be created.
Rows with errors (a missing email, an invalid address, a duplicate in the file) are flagged. You can tick Skip rows with errors to import everyone else and deal with the rest later.
When you're happy, click the import button. Accounts are created in batches, and you'll see a progress bar and a final summary. That's it - your members are in.
Related articles
- Managing your users: the Users page
- How to invite users to your account
- Exporting your users and account data
- SCIM provisioning: automatically sync users from your identity provider
- Cleaning up and removing users from your account
Updated on: 26/06/2026
Thank you!