Select Page

Bulk Creation of Microsoft Teams

Bulk Creation of Microsoft Teams

More and more organisations are using Microsoft Teams in place of standard SharePoint team sites. It’s understandable as Microsoft Teams offer so much more. There’s still to good old SharePoint site backing up the Team for storing the channel files. A Microsoft Team also comes with the Office 365 Group and mailbox, Planners, Channels, Connectors and more.

PROVISIONING A MICROSOFT TEAM

A Microsoft Team is packed with features so what’s the best way to create them in a consistent way? The Graph Api for Microsoft Teams was published at version 1 in November 2018 and provides a lot of what is needed to create a Microsoft Team. How can you call the Api? These’s a number of different ways depending on how involved you want to get. The easiest is using PowerShell and the Invoke-RestMethod cmdlet.
But what if you want to chain a number of calls together and handle error conditions? Using an Office 365 provisioning tool like ProvisionPoint is the ideal choice.

With ProvisionPoint, you can define naming conventions for the Microsoft Team name, mail address and the SharePoint site url. The ProvisionPoint Service Definition is used to define the settings for the Microsoft Team and includes the visibility, security and channels that can be set. In addition to the configuration that can be applied to the Microsoft Team, the underlying SharePoint site can also be configured to include applying a Site Design or PnP Template. So ProvisionPoint provides a great way to create Microsoft Teams in a consistent way but what if we wanted to create a number of them as part of say a pre-requisite to a migration.

BULK PROVISIONING MICROSOFT TEAMS

In ProvisionPoint, a SharePoint site, Office 365 Group or Microsoft Team is modelled using a Service Definition. A provisioning request can be made for a Service Definition that will result in either a SharePoint site, Office 365 Group or Microsoft Team. The provisioning request can be made through the ProvisionPoint user interface or via the ProvisionPoint Api.
So the bulk creation of Microsoft Teams is exactly the same as bulk creation of Office 365 Groups or SharePoint site collections or sub sites. The ProvisionPoint Api can be called in exactly the same way as the Microsoft Graph Api was called earlier, via PowerShell Invoke-RestMethod. The only difference being that we provide our service definition details and the one call will do all the work, no need to chain calls together and handle error conditions. If the data provided passes the validation checks, the Microsoft Team will be created exactly as defined in the Service Definition.

We normally create a spreadsheet with all the details we want for our Microsoft Teams including the name, owners, members and any details specific to the request like cost centre, project code, etc. Then simply run a PowerShell script to load the spreadsheet, loop through each row and call the ProvisionPoint Api. If the validation passes, the request will be queued for creation and the request id will be returned. If validation fails, a list of the validation errors is returned. The script can then update the spreadsheet with the response. At the end of the run, simple look through the responses in the spreadsheet, fix any validation errors and run the script again. Just re-send the failed rows and wait for ProvisionPoint to process the queued requests.

PARALLEL PROCESSING

The ProvisionPoint Provisioning Engine can handle 100’s of concurrent provisioning requests and has elastic scaling to handle short bursts of requests or long periods with high volumes of requests.
We generally find that the bottleneck is actually at the Office 365 tenant level where requests start to get throttled. In most cases this is handled in ProvisionPoint with back off and re-tries. If however, the retry threshold is reached, the request will be marked as failed and can be retried manually from the job queue screen in ProvisionPoint.

About The Author