1. Home
  2. Blog
  3. How to Build an Approval Workflow in Mic…
Power Automate

How to Build an Approval Workflow in Microsoft Teams Using Power Automate and SharePoint

Syed Md Maruf Hasan July 12, 2025 4 min read

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:

  • Issue (Single line of text)
  • Issue description (Multiline text)
  • Priority (Choice)
  • Assigned To (Person)
  • Date Reported (Date Only)
  • Tags (Choice β€” Multiple)
  • Decision (Choice)
  • Associated files (optional)
  • > Tip: Set the default value of the Decision column to Pending.

    Step 2: Build the Power Automate Flow

  • Go to Power Automate
  • Click Create > Automated cloud flow
  • Select trigger: When an item is created (SharePoint)
  • Step 3: Configure the Trigger

  • Site Address: Your SharePoint site
  • List Name: Issue Tracker
  • 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)

  • Choose Post As, Post In, Team, and Channel
  • Use the Compose output as the message
  • Step 6: Add a Condition to Handle the Response

    @equals(triggerBody()?['data']?['action'], 'Approve')

    If Yes (Approved):

  • Update item (SharePoint): Set Status = Approved
  • Send approval report email to manager
  • If No (Rejected):

  • Send rejection report email to manager
  • Step 7: Test the Flow

  • Add a new item in your SharePoint list
  • Go to the Teams channel
  • Click Approve or Reject on the Adaptive Card
  • Verify the SharePoint item updates correctly
  • Verify the requester is notified
  • You now have a live, no-code approval system running inside Microsoft Teams.

    ← Back to the blog

    Want to Learn Faster?

    Join our live training sessions for hands-on experience with expert instructors.