The long awaited Team Templates are starting to appear in tenants around the world. Some get it sooner and some have to wait: don’t worry they will come. When they are available the Create a team function on Teams will look somewhat different. Let me first walk you through the end user experience before going to custom provisioning.
If you want only the custom part –> scroll over end user sections!
Ok – let’s start a team creation and choose Manage an Event
In the next screen you can see what are template’s contents.
Then is it public or private
Name and Description..
And that’s it. You team is being created. This will take a while and it will eventually create the team with channels and add applications.
More interesting part is the Teams Admin Center where is a section for Team templates.
If you want only the custom provisioning part –> scroll over admin center sections!
If you click + Add you can start creating your own templates.
You can create a template out of thin air, from a team or use existing template as a starting point. Then you will add template description and locale. Locale is used to track the language the template is authored in. Let’s go forward:
This is the heart and soul of the team template definition. You can add channels and include tabs (applications) to channels as well as add applications to the team.
I encourage you to go and test these templates our in a test/demo/trial environment so you know how they work before doing changes in your production tenant.
Templates in practice
If you want only the custom provisioning part –> keep on scrolling!
When a team is created with templates I have found couple of things already
- Creation from a template is slow. While you can access team quite early in time it is still taking several – ten – twenty minutes until the team is completely created.
- Wikis are added to all channels
- Application tabs don’t have any content: just the name and app. You have to set them by yourself
This also includes tabs like websites. So Team templates are a structure that can be reused and configured easily. Don’t expect them to be the full provisioning solution. They are a bit like creating a new team based on the existing team.
How to use Team templates in custom provisioning
Finally I reach the point why I started to write this blog post! (otherwise this would have been a short article 🤣) .
When I first learned about Teams Templates I was of course curious how they will work with custom provisioning. And today I found out how they can be used. When you think that the key would be the new Power Automate Create a team action…
then you find out that it isn’t. At least not yet since it is missing the template section.
No- we can’t use that action. ❌
TEAMS GRAPH API to the rescue! Of course we are using Graph API and it’s Create Team call!
Looking the call we can see teamsTemplates(‘standard’) section. Now it is just the matter of finding the template ID. Open Teams Admin Center and open the template by clicking it’s name.
And from the template we can find the TemplateID! Yes – it is that simple!
For example in my Power Virtual Agent I ask from the user to choose the team type and then switch it to templateID variable in a Flow.
After that it is just about calling the Graph API using HTTP action. Yes, this one requires premium licensing.
Yes – it is this simple to start really utilizing those templates! What I really like them is that you can use Teams Admin center to centrally define structure of those teams (channels and apps) to make sure teams get created with the right components. Previously this required the use of SharePoint list or CDS or some other data source to create template definitions. Now there is an UI for that.
Make sure you add ‘some’ waits before doing post-creation-processing like removal of wikis and adding welcome message & team members. But even without those these templates give a good start to boost up custom provisioning without having to define team structures fully in Graph API calls..
Of course if you want to add specific channels and tabs that contain info you can do it in the Graph API call or afterwards by adding channels, even private ones, to these teams.