> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.simplyprint.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# 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.

|| Importing users is part of the plans that include multiple users: the Print Farm, School and Enterprise plans. Each member you create counts toward your user-slot limit (invitations only count once they're accepted).

| The importer is for a one-time or occasional bulk add. If you want your directory to keep SimplyPrint in sync automatically, use [SCIM provisioning](https://help.simplyprint.io/en/article/scim-provisioning-automatically-sync-users-from-your-identity-provider-1j9r556/) instead - it creates, updates, and removes members on its own.

## 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

![The import users window on the upload step](https://storage.crisp.chat/users/helpdesk/website/-/f/f/2/2/ff22a914001c1000/importing-users-import-upload_ihobn9.png)

1. Open the **Users** page.
2. Click the **import** button (the file-import icon) next to the invite button.
3. 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/9A` maps 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:

| email | first_name | last_name | role | school_classes | is_teacher |
| ----- | ----- | ----- | ----- | ----- | ----- |
| emma.johnson@school.edu | Emma | Johnson | Student | 7A | |
| liam.smith@school.edu | Liam | Smith | Student | 7A;7B | |
| sarah.taylor@school.edu | 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.

|| Email invitations are valid for 24 hours, so this mode works best when people will sign up promptly. See [How to invite users](https://help.simplyprint.io/en/article/how-to-invite-users-to-your-account-1gue0zv/) for more on invitations.

## 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.

|| If your import is larger than the user slots left on your plan, the preview tells you how many will fit. The rest are skipped - upgrade for more slots, or import in stages.

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](https://help.simplyprint.io/en/article/managing-your-users-the-users-page-15hfca/)
- [How to invite users to your account](https://help.simplyprint.io/en/article/how-to-invite-users-to-your-account-1gue0zv/)
- [Exporting your users and account data](https://help.simplyprint.io/en/article/exporting-your-users-and-account-data-dg3jga/)
- [SCIM provisioning: automatically sync users from your identity provider](https://help.simplyprint.io/en/article/scim-provisioning-automatically-sync-users-from-your-identity-provider-1j9r556/)
- [Cleaning up and removing users from your account](https://help.simplyprint.io/en/article/cleaning-up-and-removing-users-from-your-account-1e2a42y/)
