일. 8월 17th, 2025

Are you tired of endless email chains for simple approvals? 😫 Do you find yourself chasing colleagues for a “yes” or “no” on critical tasks? Imagine a world where all your approval requests are centralized, transparent, and actionable directly within the communication hub your team already uses every day: Microsoft Teams.

Welcome to that world! 👋 This blog post will guide you through building robust notification and approval flows using Power Automate Cloud and Microsoft Teams, transforming your manual, cumbersome processes into slick, automated workflows.


Why Power Automate and Teams for Approvals? 🚀

Combining Power Automate (formerly Microsoft Flow) with Microsoft Teams offers a powerful synergy for approval processes:

  • Centralized Communication: All notifications and approval actions happen where your team collaborates, reducing context switching and improving response times.
  • Enhanced Visibility: Team members can see the status of approvals in a dedicated channel, promoting transparency and accountability.
  • Actionable Notifications: Approvers can review details and make decisions directly within Teams via interactive Adaptive Cards, without needing to open emails or separate applications.
  • Reduced Email Clutter: Say goodbye to “Please approve this!” emails filling up inboxes.
  • Audit Trail: Power Automate automatically logs the approval history, providing a clear record of who approved what and when.
  • Automation Power: Connect to hundreds of services – SharePoint, Dataverse, Forms, Excel, third-party apps, and more – to trigger and complete your approval workflows.

Core Components of an Approval Flow in Power Automate 🛠️

Before we dive into building, let’s understand the key ingredients:

  1. Trigger: This is what starts your flow. It could be:
    • “When an item is created or modified” in a SharePoint list.
    • “When a new response is submitted” in Microsoft Forms.
    • “When a new email arrives” with specific keywords.
    • “For a selected item” (manual trigger from a list/library).
    • A scheduled time (e.g., daily check).
  2. Data Collection/Preparation: Gathering all necessary information for the approver. This might involve getting item details from a list, parsing form responses, or extracting data from an email.
  3. Start an Approval Action: The heart of the flow. This action sends the approval request and waits for a response. Power Automate has built-in approval capabilities.
  4. Teams Notification (Adaptive Card): The visual representation of your approval request in Teams. Adaptive Cards are customizable, interactive UI snippets that can be embedded in Teams messages. They are crucial for a good user experience.
  5. Conditional Logic: “If/Then/Else” statements that dictate what happens based on the approver’s decision (e.g., if approved, update status; if rejected, send rejection notice).
  6. Follow-up Actions: What happens after the approval is complete? This could be:
    • Updating a status field in SharePoint.
    • Sending a confirmation email.
    • Creating a new item in another system.
    • Notifying the requestor.

Step-by-Step Example: Building a Leave Request Approval Flow 🏖️

Let’s build a common scenario: an employee submits a leave request via a SharePoint list, and a manager approves it directly in Teams.

Scenario Setup:

  • SharePoint List: Named “Leave Requests” with columns like:
    • Title (text – e.g., “Annual Leave”)
    • Requestor (Person or Group)
    • StartDate (Date)
    • EndDate (Date)
    • Reason (Multiple lines of text)
    • Status (Choice: “Pending”, “Approved”, “Rejected”) – Default to “Pending”

Let’s build the Power Automate Flow:

  1. Create a New Flow:

    • Go to make.powerautomate.com.
    • Click “Create” on the left navigation.
    • Select “Automated cloud flow.”
    • Give your flow a name (e.g., “Leave Request Approval for Teams”).
    • For “Choose your flow’s trigger,” search for “SharePoint” and select “When an item is created”.
    • Click “Create.”
  2. Configure the Trigger (SharePoint):

    • Site Address: Select the SharePoint site where your “Leave Requests” list is located.
    • List Name: Select “Leave Requests.”

    This flow will now automatically run every time a new item is added to your Leave Requests list.

  3. Action: Start and Wait for an Approval:

    • Click “+ New step.”
    • Search for “Approvals” and select “Start and wait for an approval”.
    • Approval type: Choose “First to respond” (for a single manager approval). You can also choose “Approve/Reject – Everyone must approve” for multi-level approvals.
    • Title: Give your approval request a clear title using dynamic content from the SharePoint item. E.g., Leave Request from [Requestor DisplayName]
    • Assigned to: Select the approver. You can hardcode an email address (e.g., manager@yourcompany.com), or use dynamic content if your SharePoint list has a “Manager” column for each requestor. For simplicity, let’s hardcode for now.
    • Details: This is crucial for the approver to make an informed decision. Use dynamic content to populate it.

      • Example:

        A new leave request has been submitted by [Requestor DisplayName].
        
        Type: [Title]
        Reason: [Reason]
        Start Date: [StartDate]
        End Date: [EndDate]
        
        Please review and approve/reject.
    • Item Link: (Optional but recommended) Link directly back to the SharePoint item for full context.
      • Text: View Request in SharePoint
      • Link: Link to item (from dynamic content of the trigger).

    When this action runs, an approval request will appear in the approver’s Teams app, email, and the Power Automate Approvals center. 🛎️

  4. Action: Condition (Check Approval Outcome):

    • Click “+ New step.”
    • Search for “Condition” and select “Condition.”
    • In the “Choose a value” box, select Outcome from the “Start and wait for an approval” dynamic content.
    • Is equal to: Approve (case-sensitive!).

    This creates two branches: “If yes” (Approved) and “If no” (Rejected).

  5. If yes (Approved) Branch: ✅

    • Action: Update item (SharePoint):
      • Click “+ Add an action” inside the “If yes” box.
      • Search for “SharePoint” and select “Update item.”
      • Site Address: Your SharePoint site.
      • List Name: “Leave Requests.”
      • Id: Select ID from the “When an item is created” trigger.
      • Title: Select Title from the trigger (important to keep the original title).
      • Status: Select “Approved” from the dropdown.
      • Fill in other required fields with dynamic content from the trigger.
    • Action: Post a message in a chat or channel (Teams):
      • Click “+ Add an action.”
      • Search for “Teams” and select “Post a message in a chat or channel.”
      • Post as: Flow bot
      • Post in: Channel (or Chat with Flow bot for direct message).
      • Team: Select your team.
      • Channel: Select the relevant channel (e.g., “General” or a “HR” channel).
      • Message: Compose a confirmation message.
        • Example: 🎉 Your leave request ([Title]) from [StartDate] to [EndDate] has been **APPROVED** by [Approver Name]! Have a great time! ✨
        • Pro-tip: You can embed the approval link or the SharePoint item link here too.
  6. If no (Rejected) Branch: ❌

    • Action: Update item (SharePoint):
      • Click “+ Add an action” inside the “If no” box.
      • Configure similar to the “Approved” branch, but set Status: “Rejected.”
    • Action: Post a message in a chat or channel (Teams):
      • Click “+ Add an action.”
      • Configure similar to the “Approved” branch, but with a rejection message.
        • Example: 🚫 Unfortunately, your leave request ([Title]) from [StartDate] to [EndDate] has been **REJECTED** by [Approver Name]. Reason: [Comments] (from approval action). Please contact your manager for more details.
  7. Save and Test:

    • Click “Save” at the top right.
    • Go to your SharePoint “Leave Requests” list and add a new item.
    • Go to your Teams app. You should see a notification for the approval request.
    • Approve or reject it and observe the outcome in your SharePoint list and Teams channel.

Visualizing the Flow:

[SharePoint List: New Item Created]
        |
        V
[Start and wait for an approval]  <--- Teams notification/Adaptive Card appears here
        |
        V
[Condition: If Outcome is 'Approve']
        |
+-------+-------+
|               |
V               V
[If Yes (Approved)]     [If No (Rejected)]
        |               |
        V               V
[SharePoint: Update Status to 'Approved']   [SharePoint: Update Status to 'Rejected']
        |               |
        V               V
[Teams: Post "Approved" Message]     [Teams: Post "Rejected" Message]

Advanced Considerations for Robust Flows 💡

Once you've mastered the basics, consider these enhancements:

  1. Multiple Approvers (Sequential or Parallel):
    • Sequential: Use multiple “Start and wait for an approval” actions in sequence, passing the outcome of one to the next.
    • Parallel: Use the “Everyone must approve” or “Custom Responses – Wait for all responses” approval types, or add multiple approvers to the Assigned To field (separated by semicolons).
  2. Escalation Paths: If an approval isn't responded to within a certain time, you can:
    • Send a reminder notification.
    • Reassign the approval to another person (e.g., their manager's manager).
    • Automatically approve or reject the request.
    • Use the “Timeout” setting in the “Start and wait for an approval” action.
  3. Custom Adaptive Cards: While Power Automate's default card is good, you can design your own using adaptivecards.io/designer for a highly customized look and feel, adding more fields, images, or even complex layouts. You'd use the “Post an Adaptive Card to a Teams channel and wait for a response” action.
  4. Error Handling: Use “Scope” blocks and “Configure run after” settings to gracefully handle errors (e.g., if a SharePoint item is deleted before the flow finishes).
  5. Data Persistence & Reporting: Store approval metadata (who approved, when, comments) in a dedicated SharePoint list or Dataverse table for auditing and to build Power BI reports on approval efficiency.
  6. User Input on Rejection: When rejecting, prompt the approver for a “Reason for Rejection” using the “Post an Adaptive Card and wait for a response” action with input fields.

Best Practices for Your Approval Flows ✨

  • Keep it Simple (Initially): Start with a basic flow, test it thoroughly, and then add complexity.
  • Clear Instructions: Ensure your approval messages and notifications are clear, concise, and provide all necessary information for the approver to make a quick decision.
  • Use Dynamic Content: Leverage dynamic content heavily to make your flows flexible and personal.
  • Test, Test, Test: Run your flow multiple times with different scenarios (approve, reject, no response) to ensure it behaves as expected.
  • Inform Users: Let your team know about the new automated process. Provide a quick guide or demonstration.
  • Error Messages: Provide informative error messages if something goes wrong, guiding the user on how to proceed.
  • Monitor Flow Runs: Regularly check the “Run history” of your flows in Power Automate to identify any failures or bottlenecks.

Conclusion 🎉

Building Teams notification and approval flows with Power Automate Cloud is a game-changer for organizational efficiency. By centralizing communication and action within Microsoft Teams, you empower your team to make faster, more informed decisions, reducing administrative overhead and increasing productivity.

Start small, experiment, and watch your manual approval bottlenecks transform into smooth, automated processes. Your team (and your inbox) will thank you! Happy automating! 🚀 G

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다