Approving a request shouldn't take 10 emails or unnecessary delays.
What if your team could approve or reject items directly from Microsoft Teams β with real-time updates to SharePoint?
In this tutorial, we'll build a fully automated approval system using Power Automate, SharePoint, Outlook, and Microsoft Teams Adaptive Cards β without writing a single line of code.
Step 1: Create SharePoint List
Create a list called Issue Tracker with these columns:
> Tip: Set the default value of the Decision column to Pending.
Step 2: Build the Power Automate Flow
Step 3: Configure the Trigger
Step 4: Compose JSON for the Adaptive Card
{
"type": "AdaptiveCard",
"body": [
{ "type": "TextBlock", "text": "π New Request Approval Needed", "weight": "Bolder", "size": "Large" },
{ "type": "TextBlock", "text": "Title: ${Title}" },
{ "type": "TextBlock", "text": "Description: ${Description}" },
{ "type": "TextBlock", "text": "Requested By: ${RequestedBy.DisplayName}" },
{ "type": "TextBlock", "text": "Status: Pending" }
],
"actions": [
{ "type": "Action.Submit", "title": "β Approve", "data": { "action": "Approve" } },
{ "type": "Action.Submit", "title": "β Reject", "data": { "action": "Reject" } }
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.4"
}
Step 5: Post Adaptive Card and Wait for a Response (v2)
Step 6: Add a Condition to Handle the Response
@equals(triggerBody()?['data']?['action'], 'Approve')
If Yes (Approved):
If No (Rejected):
Step 7: Test the Flow
You now have a live, no-code approval system running inside Microsoft Teams.