How to bulk create Microsoft 365 users
-
Click Tools > Users, then Bulk create in the toolbar.
-
Click Download template. The file already contains every supported column and one sample row.
-
Fill in the template with the users you want to create, one row per user. Only two columns are required:
- userPrincipalName
- displayName
Delete any columns you don't need. Every other column in the table below is optional and falls back to the template or a default when left blank. Save the file when you are done.
Leave the password column blank and the app generates a random password for that user. You can download every password after the run (step 8).
-
(Optional) To give every user the same licenses, apps and groups, pick a saved template from the Template for licenses & groups dropdown.
Templates are created under Tools > Users > New user: fill in the shared defaults, groups and licenses (including which apps are on), then click Save as new. A row can override the dropdown with its own
templatecolumn. -
Click Choose CSV and select your file.
-
Review the Preview. Each row shows the values it will set, plus the Template, Licenses and Apps it will receive. Required columns are highlighted, and any column the app doesn't recognize is listed as ignored. Fix anything flagged in red (for example a template name that doesn't exist).
-
Click Create N users. A Creating X of N indicator shows progress, and each row updates to Created or an error as it finishes.
A row marked Created * means the account was created but a follow-up step (license, manager or group) had an issue. Hover the row to see which, the account still exists.
-
Click Download results (with passwords) to save a CSV of each user's sign-in name, status and password. Keep this file somewhere safe, then delete it.
Adding users to mail-enabled or distribution groups happens in the background after creation; you will get a notification as each completes.
A value in the CSV always wins. Blank cells fall back to the selected template, then to a default. If you assign licenses, each user needs a usageLocation (a two-letter country code), set it with the column or in the template, or the license step fails for that user.
Video Demo
Watch the bulk create users video
Supported columns
Column headers are matched without case sensitivity, and the aliases below are accepted too. Any column not listed here is ignored.
| Column | Aliases & notes | Required |
|---|---|---|
| userPrincipalName | upn, the full sign-in name, for example jsmith@contoso.com | Yes |
| displayName | The name shown in Microsoft 365, for example John Smith | Yes |
| mailNickname | username, defaults to the part of the UPN before the @ | No |
| password | Blank = auto-generate. A supplied password must meet the tenant's complexity policy. | No |
| firstName | givenName | No |
| lastName | surname | No |
| jobTitle | No | |
| department | No | |
| company | companyName | No |
| office | officeLocation | No |
| employeeType | No | |
| manager | The manager's user principal name | No |
| mobilePhone | mobile | No |
| businessPhone | phone | No |
| streetAddress | street | No |
| city | No | |
| state | province | No |
| postalCode | zip | No |
| country | No | |
| usageLocation | Two-letter country code (for example US). Required if the user is assigned a license. | No |
| accountEnabled | true or false (default true) | No |
| forceChangePassword | true or false (default true), require a password change at first sign-in | No |
| template | A saved template name for this row; overrides the dropdown selection | No |

