Tim Coalson is a Senior Consultant in the Transformation Practice at ThreeWill. Tim has been developing solutions on the SharePoint platform for over 15 years and has been a developer/consultant for over 30 years. Tim has been involved in migrating SharePoint on-premises farms to the Microsoft Cloud, Power Apps, and Power Automate (aka Flow) which are part of the Microsoft no code/low code solutions.
How to Simplify Requesting and Provisioning New Microsoft Teams
Do you want to make it easier for your organization to request a new Team? Do you want to help streamline the work for your IT organization to create and manage Teams and their underlying M365 groups? The “Request a Team” app provides a good solution foundation to help both end-users and your IT organization manage the requesting and provisioning of new Teams.
How do people in your organization request a new Microsoft Team to use for their new project or other collaborative efforts? As the popularity of Teams continues to grow, the volume of these requests will only increase, and having a location where people can request a Team can benefit your IT organization who usually owns the work of creating new Teams.
The good news is that Microsoft has released an App Template that can be deployed in your tenant that supports this need. The better news is that ThreeWill can help you customize this application to meet the needs of your organization and enhance the “out of box” functionality that is included in this solution
The Request-a-team template is available for download at https://github.com/OfficeDev/microsoft-teams-apps-requestateam/wiki
Below are a few screenshots provided by Microsoft that are found at the link above. The application is relatively simple, yet provides some nice functionality. You can request a new team in the “Request a team” tab and you can monitor and view your previous requests in the “My requests” tab. The “Approve requests” tab is only visible to Administrators who have the rights to approve or reject requests.
The first screenshot is the Homepage of the app. Note that this is the view of an Administrator because they see the Approve requests tab which is only available for people who are configured as Approvers of Teams requests. A “regular user” will only see “My Requests” where they can track the status of previous requests and “Request a Team” where they can submit a new request.
In the screenshot below, the person requesting the Team includes the name of the Team and the business reason for requesting the Team. The Check Availability button is used to confirm that the Team name is available.
Once the request is submitted, people in the approval role will see an adaptive card in an Admin Channel which can be used to Approve or Reject the request.
In addition to the adaptive cards, Teams requests will also display in the “Approve requests” tab where people in the approval role can Approve or Reject the request.
The “My requests” tab is a place to monitor Teams requests you have submitted. In addition, you can click on the “copy” icon to “clone” a previous request which provides a completed form that can be easily modified to quickly create a new request.
The Request-a-team app is comprised of several different technologies:
- Power Apps – User interface for creating Requests and Administering Requests
- Power Automate – Code to check availability of a new Team, prepare Teams request for approval and create Adaptive Card when configured
- Logic App – Creates Microsoft Team based on the configuration in the SharePoint lists below
- SharePoint Lists – configuration of global settings, Teams templates, and Teams Requests that drive the behavior of the application
Out of the box, the Request a Team application creates new Teams based on the standard definition of a new Team (one General Channel) or from Teams templates that can be defined in the Teams Admin area. Teams Templates defined in the Teams Administration site can be configured with one to many channels and zero to many apps. While this functionality has some benefits, it is limited based upon the current limitations of Teams templates.
To help overcome some of the existing limitations of Teams templates, ThreeWill has extended the capabilities of the application to include the use of an Azure Runbook and PnP Provisioning templates. These technologies allow for manipulation of the underlying SharePoint site and data, creation of Teams tabs to display the SharePoint list data, and basically anything else that can be accomplished through the PnP Provisioning templates and the Microsoft Graph API. For additional details on the PnP Provisioning template schema, see https://github.com/pnp/PnP-Provisioning-Schema
Customizations and Configurations
The user interface for this application is a Power App so it can be customized to meet the Organization’s requirements including color changes to match an organization’s branding. There are two SharePoint lists that administrators of the application can use to control/govern some of the behavior that happens “behind the scenes” during Team provisioning; “Team Request Settings” and “Team Templates”. The “Team Request Settings” list allows management of the managed path where the SharePoint sites will be created (sites, teams), the Team and Channel where the approval adaptive cards will be posted, whether naming conventions should be applied and whether blocked words should be enforced in the Team name. Naming Conventions and Blocked Words help govern the M365 group names that get created behind the scenes to support the Teams. This is important from an admin perspective to help manage all the M365 groups that will get created in your tenant. Below is a screenshot from the “Team Request Settings” SharePoint list.
A “Teams Templates” SharePoint List is also provided to define the list of templates that can be presented to Requestors. Here is a list of the fields in the Teams Templates list:
- Title – shows up in the drop-down list
- Description – when this template is selected, the description is displayed in the UI for the requestor to read and determine if this is the appropriate template
- Visibility – Private will create a private team that requires invites by the Owner(s). The public will create a Team that people can request joining. Most will be Private but a template for Community groups would be Public.
- Admin Center Template – Checked for the standard template or any template that is created in the Teams Admin center.
- Template Id – “standard” or a value such as “com.microsoft.teams.template.CollaborateWithinABankBranch” that comes from the Teams templates found in the Teams admin center.
As you can see, the Request a Team application is a great starting point for a Microsoft Teams request and provisioning solution. Hopefully, I’ve given you enough information to pique your interest to at least check out the free “Request a Team” app provided by Microsoft. I suggest deploying it into a developer tenant to check out the functionality and the various pieces of the application. In addition, I hope I’ve given you some ideas of things that can be done to extend the capabilities of this application to make it even more beneficial and robust. Check out this template and let ThreeWill assist you in creating a great solution that will make requesting and provisioning new Teams simpler for users in your organization as well as the IT team.