Microsoft Forms and Flow for Teams channel governance

Inspired by a tweet from fellow MVP Melissa Hubbard ( this blog post introduces the idea of a Mircosoft Forms form combined with a flow to govern channel creation in Teams. Governance in Microsoft Teams is important for adoption and ease of use.Melissa’s approach to the same problem is to use a SharePoint list for storing the information but I wanted to try it just with Microsoft Forms.

Why should we use governance?

The overall idea is to turn off self-service channel creation in Teams. Teams can get messy if there are too many channels. That’s why for some teams it’s better only to allow the owners of the team to create new channels. In your Teams settings, you have the option to define what members are allowed to do. In our scenario, we disallow the creation of new channels.

Teams Settings - member permissions

Instead of the self-service, we provide a fully automated solution that allows the owner to approve new channels if members think they need one. Our end users can use this simple form to propose a new channel by only providing a name and the purpose of the channel.

Create Channel form in Microsoft Forms

The Form data in Flow

To get the data from the form, we use Microsoft Flow. Whenever a new application is submitted our flow gets triggered and handles the request information.

The flow with all the actions needed.

The form data is stored in a list of response notifications. If hundreds or thousands of users use your form, the flow isn’t triggered for each application alone. That’s why we need to go through all the notifications in a loop.

Details of the response notification loop.

Calling the Office365 user profile

Within the loop, we iterate through all the single notifications.
As you can see in the screenshot below the responder’s email address is all we have regarding user data.

Response details from the form.

Please make sure only to allow people within your organisation to submit the form otherwise you are unable to fetch more information from the Office365 user profile. To get more data about the user we call the Get user profile action in Flow. After that call, we can use all the information stored in the user profile from the responder of the form.

Detail information of the user in the approval action.

Flow Teams actions

If the request gets approved, we use the Create a channel action to add a new channel to the specified team. Also, we inform the users that this channel was created based on a request from a fellow team member by posting the first message to the channel.

Flow actions for Microsoft Teams.

Closing notes

There are two significant additions to make. First, as seen in the screenshot the Flow actions for Microsoft Teams are as of today still in preview. Please only use them with care and don’t rush them to production. Second, as you can see in the last screenshot above this form only allows you to create channels in a specific team. With this solution, you can not centrally deploy new channels to different teams. It only works in the team specified in the flow. For that reason, our idea is to include the form as a tab to the specific team and tell users to go there to create a new channel instead of starting within Microsoft Forms.

If you are intressted in Microsoft Teams also check out the following posts: