
Table of Contents
Relieves Some of the Boredom Involved in Adding Users
The Office 365 Admin Center and its latest iteration, the preview version of the Microsoft 365 Admin Center (much nicer to use in parts), both offer the option to bulk-create Office 365 accounts. The processing flow is simple:
- Populate a CSV file with account details (a limited number of properties are supported).
- Upload the CSV file to the Admin Center.
- Verify that the CSV file is valid.
- Use the data in the CSV file to create accounts.
The idea is to relieve the tedium of creating multiple accounts, a value that anyone who has had to populate a tenant with account information (for real or to build out a test tenant) can easily recognize. However, there are some issues that need to be taken into account.
Preparing a CSV for Bulk Account Creation
To begin, head to the Active Users section of the Admin Center and select Add multiple users. You now have the choice to download a prototype CSV file to populate with details of the accounts you want to create. If you’ve done this before, you might already have prepared a file for processing – or if you’re very lucky, someone else has done the work manually or by generating the necessary data from another application, like a HR system.
The CSV file is very straightforward. All you really need to populate is the User Name (User Principal Name or UPN), which must be unique. Ideally, the UPN is the same as the email address you want to assign to the new account, and the email address must also be unique. Apart from the UPN, you can leave all the other fields blank except the Country or Region, which Office 365 needs to assign licenses as some features are country-dependent.

As far as I can tell, there’s no limit about the number of accounts you can include in a CSV. However, it’s probably wise to limit the number in a batch to a manageable amount (100 or so). Once you’ve populated the CSV with account information, you can ask Office 365 to verify the information.

Validation is very basic and the errors generated by the process are not very helpful. For instance, it will detect if you include accounts for more than one country and generate an error like:
[{“Row number”:2,”Errors”:[“Invalid domain name used in username. “]},{“Row number”:3,”Errors”:[“Invalid domain name used in username. “]}]
Only engineers would love the formatting of the error report. In any case, don’t expect validation to check that accounts already exist. The real intention of the validation seems to check that the CSV file is in the correct format.
Assigning Office 365 Licenses
Clicking Next brings you to license assignment. Obviously, you can’t assign licenses that you don’t own, but you can create accounts that don’t have the right licenses. One thing that you can’t do is assign different licenses to the accounts you create. You’re limited to the one license for everyone. The limitation on multiple country and license choice within a CSV file is a good reason to divide accounts into batches.

After selecting a license, you can go ahead to the final phase and create the accounts. If all goes well, you’ll have the choice to see the automatically-assigned passwords for the new accounts in email or in a downloadable CSV file. If things don’t go so well, you can download the log file (another CSV) to see errors like
The email address is being used by user (Rory Best) Rory.Best@Office365itpros.com. Please use a different email address.
This error is pretty self-explanatory.
Bare-Bones Office 365 Accounts Generated

Bulk account creation works, but the amount of time the process saves is possibly limited. You must create the CSV file, check that it works, process it, and resolve errors. And then you’ve still got to build out the account to make it fully functional by:
- Adjusting licenses if necessary.
- Adding the new user to distribution lists, Office 365 Groups, and Teams. The new accounts will be added to org-wide teams, if these are available in the tenant.
- Adding manager (reporting) information so that the Office 365 apps can show organizational structures.
- Add a photo for the account.
- Allocate calling plans or numbers if you use Teams or Skype for Business Online to replace a traditional PBX.
- Assign administrative roles.
- Assign extra email proxy addresses (if needed).
- Enable multi-factor authentication.
- Manage mailbox properties, like disabling access to mailboxes via older protocols such as IMAP4 and POP3.
It’s unsurprising that a ton of work remains to transform a bare-bones account to something that is fully usable by the account holder. To be fair to Microsoft, they don’t know how each tenant organizes its affairs, so they have delivered something that works at a basic level for all.
Maybe Roll Your Own Bulk Creation with PowerShell?
Given the situation, a more satisfactory answer for many tenants is to create their own bulk creation process using PowerShell where the script can do all the work to create the Office 365 account, populate all the necessary properties, add the user to appropriate distribution lists, groups, and teams, and so on. Or use what Microsoft provides in the Admin Center and be prepared to fix things up afterwards, perhaps with the assistance of a tool like Hyperfish to find obvious gaps in your tenant directory.
Need help figuring out how to automate Office 365 account creation? The Office 365 for IT Pros eBook has lots of examples of how to use PowerShell to accomplish tasks like account creation, license assignment, joining distribution lists and teams, and so on. You might find your answer in our example scripts!
Thanks for the overview / analysis above. Have you looked at what possibilities exist for automation via Flow (I haven’t)? e.g., is it possible … that for organisations that have a HR system into which someone is added first, can a flow be triggered that collates the required information, requests any additional inputs from the person’s manager, etc., and then creates the user object?
I haven’t looked at Flow for this purpose, but given the number of touchpoints with different parts of Office 365, I think PowerShell is probably a better framework for automation when it comes to bulk creation of Office 365 accounts.
Mmm, maybe. *You* are definitely an expert in PowerShell (I love seeing what you pull out of the hat), but … does your above statement indicate Flow couldn’t do it, or that you would prefer to use PowerShell given your knowledge / comfort with it? Just trying to understand.
I know what I can do with PowerShell, so that’s definitely a factor, and while Flow is getting better all the time, I think some gaps still exist in places like license manipulation, MFA enablement, and the like.
Thanks for that answer Tony. That makes sense. It will be interesting to see how Microsoft keeps developing Flow, and when we hit the line where it can do all of those functions. Until then, PowerShell onwards.
I really like this post. Thank you for sharing. I actually just put together an article on similar topic with a different usecase but using Office 365 CLI commands. Please check the same here https://sprider.blog/add-remove-bulk-users-to-from-microsoft-teams-microsoft-365-group-office-365-cli-commands