Approvals in Team Channel using Power Automate and Adaptive Cards

While there has been possible to create personal approvals using Power Automate, there is also a possibility to divert those requests to Team Channel and so anyone who is a member of that team can approve the request. This can create speed, transparency and flexibility into decision making – especially if there is any discussion around the decision.

Let’s create a Power Automate and dig deep into different phases of it:

We start with a trigger. In this example I just used a SharePoint list (item created) trigger with a few simple columns. It would not matter if that list would be populated by a Form, PowerApps or even a bot or some other external source.

Then I got some user information using Get user profile action. This is just to ensure we have email, display name, manager etc.

To create a approval, we need email addressees: who can approve this item. And since we plan to creating this to a team channel –> everyone in the team can approve the request. Let’s just collect a list.

After that it is the time to create the approval. What is really cool here, is that the approval creation has a special attribute that is available after creation: the adaptive card of the approval. We can use it to post a message to team channel. In my example team and channel are hard coded and there are no error checks.

By the way: If you are planning to do this into a real environment –> remember to add error checks, add checking and use dynamic names.. ✅

What I also do is that I get the posted teams message ID into a variable.

NOTE! What is really fun here, is that you need to first define the Message ID variable as integer to be able to “catch/assign/bind” the message id into it, but after doing that change it to a string so you can actually use it without error..

After doing this, we can start waiting for the approval response.

Once we get the response, we can get the outcome and go ahead and post a message as a reply to that request so everyone can see that it was processed. And of course we then process the outcome. In the example I just update the SharePoint list item with status of outcome & approval comments, but in the real world something else usually also happens. And it would be the perfect opportunity to insert the start of that process here.

From the end user perspective

Once the request has been added to a list, this appears on the channel:

We have included the minimum information in the message, but there is also the link to the list item for more. What is important is that we can approve the message directly from Teams channel.

Of course we are adding comments too. Then we the approval process continues and it let’s everyone know that this has been approved. The discussion could of course continue.

And if we check the SharePoint list, we can see the approval status and comment there as well:

Of course everyone in the team will get an email about the approval request as well. However, once the approval has been done these are marked automatically processed by Office 365. This requires some user adoption and agreed practices that all approval and discussion would be done inside the team channel.

And the usual disclaimer: these actions are still in beta/preview so there may be changes!

3 thoughts on “Approvals in Team Channel using Power Automate and Adaptive Cards

  1. Hi, I was just going through your instructions to build something which should work the way you did. But, I am stuck at a point. Can you please tell me if this ”Post approval request to team channel” action has been deprecated by Microsoft?
    I can not find it today while I was building the flow.

    If yes, which action should I use to achieve the same goal today?

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.