What's the best option for a self service Teams request process (Bot, Adaptive Card, App)?

Brass Contributor

I've created a simple self service process for the user to request, approve and create a Team using Microsoft Forms, Power Automate and Graph API. The procedure works fine but it's not very elegant (I can't create any interactive fields, ie show the Teams name after running through our naming conventions,...).


What options have you guys implemented?

8 Replies
I have chosen to develop a Sharepoint webpart as a GUI and then publish this as an app in Teams. Backend, logic and flow are done with azure components.
Thanks! Can you show some screenshots of the GUI?


Can you please explain in detail. Do you want interactive fields in Teams bot ?

It would be great if the user sees the final Teamname (including naming convention adaptions) after he enters his Teamname and also providing interactive forms based on his needs (ie only O365 Group, only Team without Email, and so on)...

I would love to get some ideas from already implemented solutions... If anyone can share a screenshot or so it would be much appreciated. Thanks in advance.

@Thomas_Steibl - Could you please take a look at Microsoft Graph API Samples which is a MVC application with UI interface for creating team and channels?

@Thomas_Steibl you may find this useful.



You can avoid group and Teams duplicate names by implementing a self-service request for Teams. 

This solution also gives Admins more control over naming convention and blocked words. You can modify the script to your preferred naming conversion. Or simply use it as is. You would need a PowerApps form to capture the requests, a SharePoint site to store the requests and an internal email relay server to send request status to users (or use PowerAutomate send email feature). All that is described in this article.


Lastly, you would need to create a scheduled job for the script and let it run every 5 to 10 mins interval to process user requests in the background. Mine runs every 5 mins. Good luck!