<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nur Islam</title>
    <description>The latest articles on DEV Community by Nur Islam (@nurislam).</description>
    <link>https://dev.to/nurislam</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3985794%2F54f90ca5-8621-43e3-a480-c8c5ca5b20e7.png</url>
      <title>DEV Community: Nur Islam</title>
      <link>https://dev.to/nurislam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nurislam"/>
    <language>en</language>
    <item>
      <title>Build an Amount-Based Approval Workflow in Power Automate</title>
      <dc:creator>Nur Islam</dc:creator>
      <pubDate>Tue, 16 Jun 2026 12:09:14 +0000</pubDate>
      <link>https://dev.to/nurislam/build-an-amount-based-approval-workflow-in-power-automate-pb3</link>
      <guid>https://dev.to/nurislam/build-an-amount-based-approval-workflow-in-power-automate-pb3</guid>
      <description>&lt;p&gt;Most approval workflows start simple.&lt;/p&gt;

&lt;p&gt;Someone submits a request.&lt;/p&gt;

&lt;p&gt;A manager approves it.&lt;/p&gt;

&lt;p&gt;The requester gets notified.&lt;/p&gt;

&lt;p&gt;But in real businesses, approvals are rarely that simple.&lt;/p&gt;

&lt;p&gt;A $50 software request may only need a manager’s approval.&lt;br&gt;
A $2,000 equipment request may need both manager and finance approval.&lt;br&gt;
A department-specific request may need a completely different approver.&lt;/p&gt;

&lt;p&gt;That is where conditional approval routing becomes useful.&lt;/p&gt;

&lt;p&gt;In this tutorial, I will show you the structure of an amount-based multi-level approval workflow in Power Automate.&lt;/p&gt;

&lt;p&gt;The example use case is an expense or purchase request system, but the same logic can be reused for many other approval systems.&lt;/p&gt;
&lt;h2&gt;
  
  
  What we are building
&lt;/h2&gt;

&lt;p&gt;We are building a purchase request approval system using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft Forms for request submission&lt;/li&gt;
&lt;li&gt;Power Automate for workflow logic&lt;/li&gt;
&lt;li&gt;Excel Online as the approval tracker&lt;/li&gt;
&lt;li&gt;Outlook email notifications for the final decision&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The approval rule is simple:&lt;/p&gt;

&lt;p&gt;If amount is under $500&lt;br&gt;
→ Send to Manager only&lt;/p&gt;

&lt;p&gt;If amount is $500 or more&lt;br&gt;
→ Send to Manager first&lt;br&gt;
→ If Manager approves, send to Finance&lt;br&gt;
→ Then notify requester&lt;/p&gt;

&lt;p&gt;This creates a practical multi-level approval workflow without SharePoint, premium connectors, or custom code.&lt;/p&gt;
&lt;h2&gt;
  
  
  Full video walkthrough
&lt;/h2&gt;

&lt;p&gt;I recorded the complete step-by-step build here:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/g0zOoBAi7nM"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The rest of this article breaks down the logic so you can reuse the same pattern in different business automations.&lt;/p&gt;

&lt;h2&gt;
  
  
  The workflow architecture
&lt;/h2&gt;

&lt;p&gt;At a high level, the flow looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Microsoft Form submitted
        ↓
Get response details
        ↓
Generate unique Request ID
        ↓
Add request to Excel tracker
        ↓
Send approval to Manager
        ↓
Check Manager decision
        ↓
If rejected:
    Update Excel
    Email requester

If approved:
    Check amount
        ↓
    If under $500:
        Update Excel
        Email requester

    If $500 or more:
        Send approval to Finance
        Check Finance decision
        Update Excel
        Email requester
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is not only an expense workflow.&lt;/p&gt;

&lt;p&gt;It is a reusable approval pattern.&lt;/p&gt;

&lt;p&gt;You can change the condition from amount to department, category, vendor, urgency, location, employee role, or any field from the form.&lt;/p&gt;

&lt;h2&gt;
  
  
  Microsoft Form fields
&lt;/h2&gt;

&lt;p&gt;The form should collect all the information the approver needs to make a decision.&lt;/p&gt;

&lt;p&gt;For this example, I used these fields:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Requester Name&lt;/td&gt;
&lt;td&gt;Who submitted the request&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Requester Email&lt;/td&gt;
&lt;td&gt;Where the final decision should be sent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Department&lt;/td&gt;
&lt;td&gt;Useful for reporting or routing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Item&lt;/td&gt;
&lt;td&gt;What the employee wants to purchase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vendor&lt;/td&gt;
&lt;td&gt;Supplier or provider&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amount&lt;/td&gt;
&lt;td&gt;Used for approval routing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Business Justification&lt;/td&gt;
&lt;td&gt;Why the request is needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Needed by Date&lt;/td&gt;
&lt;td&gt;Helps approvers prioritize&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The most important field here is &lt;strong&gt;Amount&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In Microsoft Forms, set it as a number field because Power Automate needs to compare it in a condition.&lt;/p&gt;

&lt;h2&gt;
  
  
  Excel approval tracker
&lt;/h2&gt;

&lt;p&gt;The Excel file works as the approval log.&lt;/p&gt;

&lt;p&gt;Every form submission creates a new row.&lt;br&gt;
Then Power Automate updates the same row as the request moves through the approval stages.&lt;/p&gt;

&lt;p&gt;Recommended columns:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Column&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Request ID&lt;/td&gt;
&lt;td&gt;Unique ID for finding the row later&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Submission Timestamp&lt;/td&gt;
&lt;td&gt;When the request was submitted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Requester Name&lt;/td&gt;
&lt;td&gt;From the form&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Requester Email&lt;/td&gt;
&lt;td&gt;Used for notification&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Department&lt;/td&gt;
&lt;td&gt;From the form&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Item&lt;/td&gt;
&lt;td&gt;From the form&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vendor&lt;/td&gt;
&lt;td&gt;From the form&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amount&lt;/td&gt;
&lt;td&gt;Used for routing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Business Justification&lt;/td&gt;
&lt;td&gt;From the form&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Needed by Date&lt;/td&gt;
&lt;td&gt;From the form&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manager Decision&lt;/td&gt;
&lt;td&gt;Approved or rejected&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manager Comment&lt;/td&gt;
&lt;td&gt;Manager’s response comment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manager Timestamp&lt;/td&gt;
&lt;td&gt;When manager responded&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Finance Decision&lt;/td&gt;
&lt;td&gt;Approved or rejected&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Finance Comment&lt;/td&gt;
&lt;td&gt;Finance response comment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Finance Timestamp&lt;/td&gt;
&lt;td&gt;When finance responded&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;Current/final status&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Important: the Excel range must be formatted as a table.&lt;/p&gt;

&lt;p&gt;Power Automate actions like “Add a row into a table” and “Update a row” need a proper Excel table. Plain cells are not enough.&lt;/p&gt;
&lt;h2&gt;
  
  
  Expression 1: Generate a unique request ID
&lt;/h2&gt;

&lt;p&gt;Before adding the request to Excel, create a Compose action named:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Request ID
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use this expression:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;guid()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This generates a unique ID for every submission.&lt;/p&gt;

&lt;p&gt;Why is this important?&lt;/p&gt;

&lt;p&gt;Because later in the flow, you need to update the exact same row in Excel after the manager or finance approver responds.&lt;/p&gt;

&lt;p&gt;Without a unique key, updating the correct row becomes risky.&lt;/p&gt;

&lt;h2&gt;
  
  
  Expression 2: Convert amount to a number
&lt;/h2&gt;

&lt;p&gt;Form responses often behave like text in Power Automate.&lt;/p&gt;

&lt;p&gt;So before comparing the amount, convert it to an integer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int(outputs('Get_response_details')?['body/Amount'])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your dynamic content name may be different, but the idea is the same.&lt;/p&gt;

&lt;p&gt;You are telling Power Automate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Treat this form value as a number, not text.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then the condition becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Amount is greater than or equal to 500
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This condition controls the approval path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Manager approval
&lt;/h2&gt;

&lt;p&gt;The first approval goes to the manager.&lt;/p&gt;

&lt;p&gt;Use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Start and wait for an approval
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Approval type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;First to respond
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The approval title can include the item and amount, for example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Purchase request for Laptop - $850
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the approval details, include the full request information:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Requester Name:
Department:
Amount:
Item:
Vendor:
Business Justification:
Needed by Date:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes the approval email useful. The manager should not need to open another file just to understand the request.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check manager decision
&lt;/h2&gt;

&lt;p&gt;After the manager approval action, add a Condition.&lt;/p&gt;

&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Outcome is equal to Approve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Be careful here.&lt;/p&gt;

&lt;p&gt;In Power Automate approvals, the outcome is usually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Approve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Not:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Approved
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That small wording mistake can break the logic.&lt;/p&gt;

&lt;h2&gt;
  
  
  If manager rejects
&lt;/h2&gt;

&lt;p&gt;If the manager rejects the request:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Update the Excel row&lt;/li&gt;
&lt;li&gt;Set Manager Decision to Rejected&lt;/li&gt;
&lt;li&gt;Save the manager comment&lt;/li&gt;
&lt;li&gt;Save the completion timestamp&lt;/li&gt;
&lt;li&gt;Set Status to Manager Rejected&lt;/li&gt;
&lt;li&gt;Send an email to the requester&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example requester email:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Subject:
Your purchase request for [Item] has been rejected

Body:
Hi [Requester Name],

Unfortunately, your purchase request has been rejected.

Amount: [Amount]
Item: [Item]
Vendor: [Vendor]

Manager's Comment:
[Manager Comment]

Thank you.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This keeps the requester informed and keeps the Excel tracker accurate.&lt;/p&gt;

&lt;h2&gt;
  
  
  If manager approves
&lt;/h2&gt;

&lt;p&gt;If the manager approves, the flow checks the amount.&lt;/p&gt;

&lt;p&gt;If the amount is under $500:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Update the Excel row&lt;/li&gt;
&lt;li&gt;Set Manager Decision to Approved&lt;/li&gt;
&lt;li&gt;Save manager comment&lt;/li&gt;
&lt;li&gt;Save manager timestamp&lt;/li&gt;
&lt;li&gt;Set Status to Approved by Manager&lt;/li&gt;
&lt;li&gt;Email the requester&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No finance approval is needed.&lt;/p&gt;

&lt;p&gt;If the amount is $500 or more, the flow continues to Finance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finance approval
&lt;/h2&gt;

&lt;p&gt;For $500+ requests, add a second approval action.&lt;/p&gt;

&lt;p&gt;The Finance approval should include the original request details and the manager’s comment.&lt;/p&gt;

&lt;p&gt;That is important because Finance should see the business context and the manager’s reason for approving it.&lt;/p&gt;

&lt;p&gt;Finance approval details can include:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Requester Name:
Department:
Amount:
Item:
Vendor:
Business Justification:
Needed by Date:

Manager's Comment:
[Manager Comment]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then add one final condition:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Finance Outcome is equal to Approve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If Finance approves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update Finance Decision to Approved&lt;/li&gt;
&lt;li&gt;Save Finance Comment&lt;/li&gt;
&lt;li&gt;Save Finance Timestamp&lt;/li&gt;
&lt;li&gt;Set Status to Fully Approved&lt;/li&gt;
&lt;li&gt;Send approval email to requester&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If Finance rejects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update Finance Decision to Rejected&lt;/li&gt;
&lt;li&gt;Save Finance Comment&lt;/li&gt;
&lt;li&gt;Save Finance Timestamp&lt;/li&gt;
&lt;li&gt;Set Status to Finance Rejected&lt;/li&gt;
&lt;li&gt;Send rejection email to requester&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why this pattern is reusable
&lt;/h2&gt;

&lt;p&gt;This tutorial uses an expense request system, but the structure is more powerful than that.&lt;/p&gt;

&lt;p&gt;You can reuse the same logic for:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use case&lt;/th&gt;
&lt;th&gt;Routing logic&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;PTO request&lt;/td&gt;
&lt;td&gt;Route by department or employee role&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Software access request&lt;/td&gt;
&lt;td&gt;Route by application or access level&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Equipment request&lt;/td&gt;
&lt;td&gt;Route by amount or category&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vendor approval&lt;/td&gt;
&lt;td&gt;Route by vendor risk level&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Budget request&lt;/td&gt;
&lt;td&gt;Route by amount&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Contract review&lt;/td&gt;
&lt;td&gt;Route by contract value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IT change request&lt;/td&gt;
&lt;td&gt;Route by urgency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Document approval&lt;/td&gt;
&lt;td&gt;Route by document type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Refund approval&lt;/td&gt;
&lt;td&gt;Route by refund amount&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Procurement workflow&lt;/td&gt;
&lt;td&gt;Route by cost center&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The core pattern stays the same:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Collect request
Save request
Send approval
Check decision
Check routing condition
Send next approval if needed
Update tracker
Notify requester
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you understand that pattern, you can build many approval systems from the same foundation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common mistakes to avoid
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Forgetting to format Excel as a table
&lt;/h3&gt;

&lt;p&gt;Power Automate needs the Excel data formatted as a table. If you only have column headers in plain cells, the Excel actions will not work properly.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Not using a unique Request ID
&lt;/h3&gt;

&lt;p&gt;Use &lt;code&gt;guid()&lt;/code&gt; and store the value in Excel. Then use that same value as the key when updating the row.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Comparing amount as text
&lt;/h3&gt;

&lt;p&gt;Use &lt;code&gt;int()&lt;/code&gt; before comparing numbers from Microsoft Forms.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Using “Approved” instead of “Approve”
&lt;/h3&gt;

&lt;p&gt;The approval outcome is usually &lt;code&gt;Approve&lt;/code&gt;. Check the exact value from your approval action.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Not saving comments
&lt;/h3&gt;

&lt;p&gt;Approver comments are important. They explain why a request was approved or rejected.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Sending vague email notifications
&lt;/h3&gt;

&lt;p&gt;Do not only say “Your request was approved.”&lt;/p&gt;

&lt;p&gt;Include the item, amount, vendor, and comments so the requester understands the decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;This is one of my favorite Power Automate patterns because it is practical.&lt;/p&gt;

&lt;p&gt;It is not just a demo flow.&lt;/p&gt;

&lt;p&gt;It solves a real business problem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;employees submit requests in a structured form&lt;/li&gt;
&lt;li&gt;approvers get clear approval emails&lt;/li&gt;
&lt;li&gt;decisions are tracked in Excel&lt;/li&gt;
&lt;li&gt;comments and timestamps are saved&lt;/li&gt;
&lt;li&gt;requesters are automatically notified&lt;/li&gt;
&lt;li&gt;the approval path changes based on the request data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can start with the expense request version and then adapt the same logic for PTO requests, IT approvals, software access requests, procurement workflows, or document approvals.&lt;/p&gt;

&lt;p&gt;The complete build is shown in the video above.&lt;/p&gt;

&lt;p&gt;If you are building something similar, I would start with the amount-based version first, then modify the condition once the basic flow is working.&lt;/p&gt;

</description>
      <category>powerautomate</category>
      <category>powerplatform</category>
      <category>tutorial</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
