Wicked Smart Data
LearnArticlesAbout
Sign InSign Up
LearnArticlesAboutContact
Sign InSign Up
Wicked Smart Data

The go-to platform for professionals who want to master data, automation, and AI — from Excel fundamentals to cutting-edge machine learning.

Platform

  • Learning Paths
  • Articles
  • About
  • Contact

Connect

  • Contact Us
  • RSS Feed

© 2026 Wicked Smart Data. All rights reserved.

Privacy PolicyTerms of Service
All Articles
Power Automate with SharePoint: Automate Document Approvals

Power Automate with SharePoint: Automate Document Approvals

Power Automate⚡ Practitioner17 min readMar 28, 2026Updated Mar 28, 2026
Table of Contents
  • Prerequisites
  • Understanding Document Approval Architecture
  • Setting Up Your SharePoint Document Library
  • Building the Core Approval Flow
  • Implementing Multi-Stage Approvals
  • Dynamic Approval Routing
  • Building Escalation and Reminder Systems
  • Handling Complex Approval Scenarios
  • Error Handling and Recovery
  • Testing and Validation
  • Hands-On Exercise
  • Common Mistakes & Troubleshooting
  • Performance and Scalability Considerations

Power Automate with SharePoint: Automate Document Approvals

Picture this: Your finance team has been wrestling with a manual document approval process for months. Purchase orders pile up in email inboxes, approvers forget to respond, and nobody can track where a document sits in the approval chain. Sound familiar? You're not alone — and you're about to fix it.

Document approval workflows are one of the most impactful automations you can build with Power Automate and SharePoint. When done right, they eliminate bottlenecks, provide complete audit trails, and give everyone visibility into approval status. More importantly, they free your team from the tedious task of chasing down approvals so they can focus on higher-value work.

This lesson will take you through building a production-ready document approval workflow that handles real-world complexities: conditional approvals based on document type or value, parallel approvals for different stakeholders, escalation paths when approvers don't respond, and comprehensive logging for compliance requirements.

What you'll learn:

  • Design multi-stage approval workflows with conditional logic and parallel processing
  • Build dynamic approval routing based on document metadata and business rules
  • Implement escalation mechanisms and reminder systems for unresponsive approvers
  • Create comprehensive audit trails and approval status dashboards
  • Handle edge cases like approver delegation and emergency override processes

Prerequisites

You should be comfortable navigating SharePoint document libraries, creating basic Power Automate flows with triggers and actions, and understand SharePoint permissions and user management. Experience with SharePoint list columns and content types will help but isn't required.

Understanding Document Approval Architecture

Before jumping into flow creation, let's establish the architecture that makes document approvals scalable and maintainable. The key is separating your approval logic from your document storage while maintaining clear relationships between them.

Your SharePoint document library needs specific columns to track approval state and metadata. At minimum, you'll need:

  • Approval Status (Choice): Draft, Pending Approval, Approved, Rejected, Escalated
  • Document Type (Choice): Purchase Order, Contract, Policy Document, etc.
  • Approval Amount (Currency): For value-based routing
  • Current Approver (Person): Who needs to act next
  • Approval History (Multiple lines of text): Running log of all approval actions
  • Submission Date (Date and Time): When approval was requested
  • Required By Date (Date and Time): Deadline for approval

The approval workflow operates as a state machine, moving documents through defined states based on approver actions and business rules. This approach makes it easy to track progress, handle exceptions, and generate reports.

Setting Up Your SharePoint Document Library

Navigate to your SharePoint site and create a new document library called "Document Approvals." While SharePoint's default columns work for basic scenarios, you'll need custom columns for sophisticated approval routing.

Add these columns to your library:

Start with Approval Status as a Choice column with these options: Draft, Pending Approval, Approved, Rejected, Escalated. Set "Draft" as the default value so new documents start in the correct state.

Create Document Type as another Choice column. Your options depend on your organization, but consider: Purchase Order, Service Agreement, Policy Document, Marketing Material, Legal Contract. This drives your conditional approval routing.

Add Approval Amount as a Currency column for value-based approvals. Many organizations have different approval thresholds — purchases under $1,000 might only need manager approval, while amounts over $10,000 require executive sign-off.

Create Current Approver as a Person or Group column. This tracks who needs to act next and enables targeted notifications. Allow multiple selections if you need parallel approvals.

Approval History should be a Multiple lines of text column where your flow logs every approval action. This creates your audit trail and helps troubleshoot issues.

Finally, add Submission Date and Required By Date as Date and Time columns for tracking and escalation logic.

Tip: Use SharePoint's content types feature if you have different approval requirements for different document categories. This lets you customize column requirements and default values per document type.

Building the Core Approval Flow

Create a new automated flow in Power Automate with the trigger "When a file is created or modified in a document library." Connect it to your Document Approvals library and configure it to trigger on file creation only — you'll handle modifications separately to avoid infinite loops.

Your flow starts by checking the document's approval status. Add a condition that checks if the "Approval Status" field equals "Draft." This prevents the flow from re-triggering on documents already in the approval process.

Inside the "Yes" branch of this condition, add an "Update file properties" action to change the status from "Draft" to "Pending Approval" and set the submission date to the current timestamp. This marks the official start of the approval process.

Now comes the critical decision: determining who needs to approve this document. Add another condition to check the document type and approval amount. For example:

Document Type equals "Purchase Order" and Approval Amount is less than 5000

This condition routes purchase orders under $5,000 to department managers, while higher amounts go to executives. Create separate branches for each approval scenario your organization requires.

In each branch, add an "Start an approval" action. Choose "Approve/Reject - First to respond" for single approvers or "Approve/Reject - Everyone must approve" for committees. Set the approver field to the appropriate person or group based on your routing logic.

Configure the approval request with dynamic content. Your title might be: "Approval Required: @{triggerOutputs()?['body/Name']}" and your details should include relevant document information like type, amount, and submission date.

Warning: Always set a reasonable timeout on approval actions. Documents sitting in someone's inbox indefinitely defeats the purpose of automation. Consider 5-7 business days as a starting point.

After the approval action, add conditions to handle the response. If approved, update the file properties to set "Approval Status" to "Approved" and log the approval in the history field. If rejected, set the status to "Rejected" and include the rejection reason.

For timeouts, route documents to the "Escalated" status and notify both the original approver and their manager.

Implementing Multi-Stage Approvals

Real-world approval processes rarely involve just one person. High-value purchases might need both department manager and executive approval, while legal documents require review by compliance teams before final approval.

Expand your flow to handle sequential approvals by nesting approval actions. After the first approval completes successfully, add another condition to check if a second approval is required based on document type or amount.

For purchase orders over $10,000, you might structure it like this:

First, get manager approval using the "Start an approval" action. In the "Approved" branch, add another condition checking if the amount exceeds $10,000. If yes, start a second approval process for the executive team.

Track approval stage by updating a custom column. Add an "Approval Stage" choice column with values like "Manager Review," "Executive Review," and "Final Approval." Update this field as the document moves through each stage so stakeholders can track progress.

For parallel approvals where multiple people must approve simultaneously, use the "Approve/Reject - Everyone must approve" option. This works well for committee decisions or when you need sign-off from multiple departments.

However, for complex parallel scenarios, consider using multiple approval actions with the "Approve/Reject - First to respond" type and combining their results with conditions. This gives you more control over the logic and better error handling.

Log every approval stage in your history field using expressions like:

concat(body('Get_file_properties')?['ApprovalHistory'], char(10), formatDateTime(utcnow(), 'MM/dd/yyyy hh:mm tt'), ' - Stage 1 approved by ', body('Start_an_approval')?['responder/displayName'])

This creates a comprehensive audit trail showing who approved what and when.

Dynamic Approval Routing

Static approval routing works for simple scenarios, but sophisticated organizations need dynamic routing based on document content, approver availability, or organizational hierarchies.

Start by creating a SharePoint list called "Approval Rules" with columns for Document Type, Amount Range, Primary Approver, Secondary Approver, and Escalation Contact. This centralizes your routing logic and makes it easy to modify without changing the flow.

In your flow, add a "Get items" action to retrieve matching rules from this list. Use a filter query like:

DocumentType eq '@{triggerOutputs()?['body/{Identifier}']?['DocumentType']?['Value']}' and MinAmount le @{triggerOutputs()?['body/{Identifier}']?['ApprovalAmount']} and MaxAmount ge @{triggerOutputs()?['body/{Identifier}']?['ApprovalAmount']}

This finds the rule matching your document type with an amount range that includes your document's value.

Use the retrieved rule to dynamically set approvers. Instead of hard-coding approver email addresses, reference the rule's Primary Approver field in your approval actions.

For more sophisticated routing, consider organizational hierarchy. Query Azure Active Directory or SharePoint User Profiles to find a user's manager automatically. Add a "Get manager (V2)" action from the Azure AD connector, passing the document submitter's email address.

Handle approver unavailability by checking their out-of-office status or building delegation logic. Create a SharePoint list for temporary approver assignments where people can specify delegates during vacations or business trips. Query this list before starting approvals and route to delegates when primary approvers are unavailable.

Building Escalation and Reminder Systems

Approval bottlenecks often occur when approvers simply forget about pending requests. Build proactive reminder and escalation systems to keep documents moving.

Create a separate scheduled flow that runs daily to check for overdue approvals. Use a "Get items" action on your document library with a filter for documents in "Pending Approval" status where the submission date is older than your threshold.

For each overdue document, send a reminder email to the current approver. Use the "Send an email (V2)" action with a subject like "Reminder: Approval Required for @{item()?['FileLeafRef']}" and include a direct link to the approval in Power Automate.

After multiple reminders (track these in a "Reminder Count" column), escalate to the approver's manager. Query their manager information and send an escalation email explaining the situation and requesting action.

For critical documents, implement real-time escalation. In your main approval flow, set shorter timeouts on approval actions and immediately escalate timeouts instead of waiting for the daily scheduled flow.

Consider building an approval status dashboard in Power BI or SharePoint that shows pending approvals by approver, average approval times, and escalation trends. This visibility often encourages faster responses.

Tip: Include approval statistics in regular management reports. When executives see that slow approvals are impacting business operations, they're more likely to prioritize timely responses.

Handling Complex Approval Scenarios

Real organizations have complex approval requirements that go beyond simple linear workflows. You'll need to handle scenarios like conditional approvals, emergency overrides, and approver conflicts of interest.

For conditional approvals based on document content, use AI Builder's document processing capabilities. Extract key information from uploaded contracts or invoices and route based on detected values. For example, contracts with specific terms might require legal review, while standard agreements follow the normal approval path.

Build emergency override mechanisms for time-sensitive situations. Add an "Emergency Override" choice to your document type column and create a separate flow branch that immediately approves documents marked as emergency but logs the override for later review.

Handle approver conflicts of interest by maintaining a SharePoint list of restricted approval relationships. Before assigning approvals, check if the submitter and approver have any conflicts listed and route to alternative approvers when needed.

For documents requiring specialized expertise, implement expert assignment logic. Create pools of subject matter experts for different document types and automatically assign approvals to available experts based on workload and expertise matching.

Error Handling and Recovery

Production approval workflows must handle failures gracefully and provide clear recovery paths. Implement comprehensive error handling throughout your flow using try-catch patterns.

Wrap critical actions in scope controls and add parallel branches for error handling. When an approval action fails, log the error details to a SharePoint list and notify administrators. Include enough information to diagnose issues: document name, approver details, error message, and timestamp.

For common failures like user not found or mailbox full, implement automatic retries with exponential backoff. Use delay actions between attempts and try alternative notification methods like Teams messages when email fails.

Build administrative override capabilities for stuck approvals. Create a manual flow that administrators can run to force approval status changes with proper logging. This handles edge cases where technical issues prevent normal approval completion.

Implement health monitoring by creating a dashboard that tracks flow success rates, average processing times, and common error patterns. Use this data to proactively address issues before they impact business operations.

Testing and Validation

Thorough testing prevents approval workflow disasters that can disrupt business operations. Create a test document library with the same structure as your production library and deploy your flows there first.

Test every approval path with realistic scenarios. Create documents of different types and amounts, assign various approvers, and verify that routing logic works correctly. Pay special attention to edge cases like exactly-threshold amounts and documents with missing metadata.

Validate your escalation logic by setting short timeout values during testing. Verify that reminders are sent correctly, escalations route to the right people, and all actions are properly logged.

Test error scenarios by temporarily removing approvers from Azure AD or filling up test mailboxes. Ensure your error handling provides clear guidance for resolution and doesn't leave documents in limbo.

Create a test plan documenting all scenarios and expected outcomes. This becomes valuable documentation for future modifications and helps onboard new team members.

Hands-On Exercise

Let's build a complete purchase order approval workflow that demonstrates the concepts we've covered. You'll create a system that routes purchase orders based on amount thresholds, implements multi-stage approvals for high-value purchases, and includes escalation for overdue approvals.

Start by creating a new SharePoint document library called "Purchase Order Approvals" with these custom columns:

  • PO Amount (Currency)
  • Department (Choice): Finance, IT, Marketing, Operations, HR
  • Approval Status (Choice): Draft, Manager Review, Executive Review, Approved, Rejected
  • Current Approver (Person or Group)
  • Approval History (Multiple lines of text)
  • Urgency (Choice): Normal, High, Emergency

Create a new automated flow triggered when files are created in this library. Add an initial condition to only process files with "Draft" status.

In the main processing branch, create nested conditions for approval routing:

First condition: Check if PO Amount is less than $1,000. If true, route to department manager approval only. Set the Current Approver field to the appropriate manager based on the Department value and change status to "Manager Review."

Second condition: Check if PO Amount is between $1,000 and $5,000. If true, require both department manager and director approval. Start with manager approval, then add director approval in the success branch.

Third condition: Check if PO Amount exceeds $5,000. If true, implement three-stage approval: manager, director, and executive approval.

For each approval stage, use dynamic content to create meaningful approval requests with PO details, amount, department, and urgency level. Set appropriate timeouts based on urgency: 24 hours for emergency, 3 days for high priority, and 7 days for normal priority.

Add escalation logic by creating a second scheduled flow that runs daily. Query for purchase orders in pending status where the submission date exceeds your timeout thresholds. Send reminder emails for the first timeout, manager escalation for the second timeout, and executive escalation for the third timeout.

Log every action in the Approval History field using expressions that capture timestamp, action taken, and person responsible. This creates a complete audit trail for each purchase order.

Test your workflow with various purchase order amounts and departments. Verify that routing works correctly, escalations trigger appropriately, and all status updates happen as expected.

Common Mistakes & Troubleshooting

The most frequent mistake in approval workflows is creating infinite trigger loops. When your flow updates document properties, it can trigger itself repeatedly if not properly controlled. Always include conditions that check approval status before processing and avoid updating trigger-sensitive fields unnecessarily.

Another common issue is improper timeout handling. Flows that don't account for approver vacations or busy periods will fail or escalate unnecessarily. Implement reasonable timeout values and consider organizational calendars when setting deadlines.

Permission problems often derail approval workflows. Ensure your flow has appropriate permissions to update documents and that approvers can access the documents they're reviewing. Use service accounts or managed identities for consistent permissions rather than relying on flow creator credentials.

Poor error messages make troubleshooting difficult. Instead of generic "flow failed" notifications, include specific error details, document names, and suggested resolution steps. Create a troubleshooting guide for common scenarios and train administrators on workflow recovery procedures.

Data consistency issues arise when approval rules change mid-process. Document which version of approval rules applied to each document and avoid changing routing logic for in-flight approvals. Consider versioning your flows and maintaining multiple versions for different approval periods.

When troubleshooting failed flows, check the run history for detailed error information. Look for patterns in failures — if specific approvers consistently cause issues, investigate their mailbox status or permissions. Use the "Peek code" feature to examine the underlying logic and verify that your conditions evaluate correctly.

Performance and Scalability Considerations

High-volume document processing requires careful attention to performance optimization. SharePoint list queries become slow with thousands of items, so implement proper indexing on columns you filter frequently. Create compound indexes for multi-column filters like document type and status combinations.

Consider using SharePoint list views to pre-filter data before Power Automate processes it. This reduces the amount of data transferred and speeds up flow execution.

For organizations processing hundreds of approvals daily, implement batch processing patterns. Instead of triggering flows for each document individually, use scheduled flows that process multiple documents in batches during off-peak hours.

Monitor your flow execution limits and API call consumption. Power Automate has daily limits that high-volume workflows can exceed. Implement efficient query patterns and cache frequently-accessed data to minimize API calls.

Use child flows for complex approval logic that you might reuse across multiple document types. This promotes consistency and makes maintenance easier while potentially improving performance through specialized optimization.

Integration with Other Systems

Modern approval workflows rarely exist in isolation. Integrate your SharePoint approval system with other business applications for maximum efficiency.

Connect to your ERP system to validate purchase orders against budgets and vendor information. Use Power Automate's SAP, Dynamics 365, or custom API connectors to query business data during the approval process.

Integrate with accounting systems to automatically create purchase order records when approvals complete. This eliminates manual data entry and ensures approved purchases flow seamlessly into financial systems.

Use Teams integration to notify approvers in their preferred communication channel. Create adaptive cards that allow approval directly from Teams without opening SharePoint or Power Automate.

Consider DocuSign or Adobe Sign integration for documents requiring digital signatures. After approval completion, automatically route documents for signature collection and final processing.

Connect to Power BI for advanced analytics and reporting. Track approval bottlenecks, analyze approval patterns by department or document type, and identify opportunities for process improvement.

Summary & Next Steps

You've built a comprehensive document approval system that handles real-world complexity: multi-stage approvals, dynamic routing, escalation mechanisms, and proper error handling. This foundation scales to handle various document types and approval scenarios while maintaining audit compliance and operational visibility.

Your approval workflow eliminates manual bottlenecks, provides complete audit trails, and gives stakeholders real-time visibility into approval status. More importantly, it frees your team from administrative overhead so they can focus on strategic work.

Next, consider extending your approval system with advanced features like AI-powered document classification, predictive approval routing based on historical patterns, or integration with external compliance systems. You might also explore building approval mobile apps using Power Apps for approvers who work primarily on mobile devices.

The principles you've learned apply beyond document approvals — use similar patterns for expense approvals, time-off requests, project authorizations, or any business process requiring structured review and sign-off. The combination of SharePoint's structured data capabilities and Power Automate's workflow engine provides a powerful platform for automating human-centric business processes.

Learning Path: Flow Automation Basics

Previous

Working with Conditions, Loops, and Variables in Power Automate

Related Articles

Power Automate🌱 Foundation

Working with Conditions, Loops, and Variables in Power Automate

15 min
Power Automate🔥 Expert

Power Automate Triggers: When to Start a Flow

22 min
Power Automate⚡ Practitioner

Your First Power Automate Flow: Automated Email Notifications That Actually Work

16 min

On this page

  • Prerequisites
  • Understanding Document Approval Architecture
  • Setting Up Your SharePoint Document Library
  • Building the Core Approval Flow
  • Implementing Multi-Stage Approvals
  • Dynamic Approval Routing
  • Building Escalation and Reminder Systems
  • Handling Complex Approval Scenarios
  • Error Handling and Recovery
  • Testing and Validation
  • Integration with Other Systems
  • Summary & Next Steps
  • Hands-On Exercise
  • Common Mistakes & Troubleshooting
  • Performance and Scalability Considerations
  • Integration with Other Systems
  • Summary & Next Steps