Skip to main content
Low-Code Kit

Migrating SharePoint Workflows to Power Automate

A practical guide to migrating SharePoint 2013 and Designer workflows to Power Automate cloud flows before the April 2026 deadline.

By Dmitri Rozenberg | 29 March 2026 14 min read Verified 29 March 2026

Why You Need to Migrate Now

Microsoft has been signalling the end of SharePoint 2013 workflows for years, and the deadline is here. SharePoint 2013 workflows are scheduled for full retirement in April 2026 for SharePoint Online tenants. After this date, existing 2013 workflows will stop running.

SharePoint 2010 workflows were already retired in November 2024. If you still have 2010 workflows somehow running, they are on borrowed time.

This is not a theoretical future risk. If your organisation relies on SharePoint Designer workflows for approvals, notifications, document processing, or any other business process, you need a migration plan today.

Step 1: Inventory Your Workflows

Before you can migrate, you need to know what you have. Most organisations are surprised by how many workflows exist across their tenant — shadow IT has been building SharePoint Designer workflows for over a decade.

Using the SharePoint Admin Centre

  1. Go to the SharePoint Admin Centre
  2. Navigate to Migration > Workflow assessment (if available in your tenant)
  3. Review the report of all active SharePoint 2013 workflows

Using PowerShell

For a more complete inventory, use PnP PowerShell:

# Connect to your tenant
Connect-PnPOnline -Url "https://contoso.sharepoint.com" -Interactive

# Get all sites
$sites = Get-PnPTenantSite -Detailed

foreach ($site in $sites) {
    Connect-PnPOnline -Url $site.Url -Interactive

    # Get workflow subscriptions
    $workflows = Get-PnPWorkflowSubscription

    foreach ($wf in $workflows) {
        [PSCustomObject]@{
            SiteUrl      = $site.Url
            WorkflowName = $wf.Name
            ListName     = $wf.PropertyDefinitions["Microsoft.SharePoint.ActivationProperties.ListId"]
            Created      = $wf.Created
            Status       = $wf.StatusFieldName
            Platform     = "2013"
        }
    }
}

What to Capture in Your Inventory

For each workflow, document:

  • Site and list: Where does it run?
  • Trigger: On item created, on item modified, or manual start?
  • What it does: Approval, notification, field update, document generation?
  • Who owns it: Who built it? Who relies on it?
  • Frequency: How often does it run? Daily? Weekly? Rarely?
  • Business criticality: What happens if it stops working?
  • Complexity: Simple notification or multi-stage approval with branching?

Prioritisation Matrix

Categorise each workflow:

PriorityCriteriaAction
CriticalRuns daily, business-critical, no manual alternativeMigrate first
HighRuns regularly, important but has manual fallbackMigrate next
MediumRuns occasionally, nice-to-have automationMigrate when possible
Low / RetireRarely used, for retired processes, or duplicatesDecommission

In our experience, 20-30% of discovered workflows can be retired rather than migrated. Processes change, people leave, and workflows linger. Do not migrate something nobody uses.

Step 2: Understand the Mapping

SharePoint Designer actions map to Power Automate actions, but it is rarely a 1:1 translation. Here are the most common mappings:

Trigger Mapping

SharePoint DesignerPower Automate
When an item is createdWhen an item is created (SharePoint connector)
When an item is changedWhen an item is created or modified (SharePoint connector)
Manual startManually trigger a flow / For a selected item

Gotcha: SharePoint Designer’s “When an item is changed” fires on any change. Power Automate’s equivalent also fires on any change, but you usually want to add a condition to check which column changed. Otherwise your flow fires on every metadata update, including system modifications.

Trigger: When an item is created or modified
Condition: triggerBody()?['Status'] ne triggerOutputs()?['body/Status']

Action Mapping

SharePoint Designer ActionPower Automate Equivalent
Send an emailSend an email (V2) — Outlook connector
Set field in current itemUpdate item — SharePoint connector
Create list itemCreate item — SharePoint connector
Start an approvalStart and wait for an approval — Approvals connector
Log to history listCompose action + Send email (no direct equivalent)
Wait for field changeWhen an item is created or modified (new flow) or Do Until loop
Call HTTP web serviceHTTP action or HTTP with Microsoft Entra ID
Set workflow variableInitialize variable / Set variable
If/Else conditionCondition action
Parallel blockParallel branch
LoopApply to each / Do Until
Pause for durationDelay action
Pause until dateDelay until action

Actions with No Direct Equivalent

Some SharePoint Designer capabilities require a different approach in Power Automate:

Dictionary operations: SharePoint Designer had dictionary actions for working with JSON-like data. In Power Automate, use the json(), parse() functions and the Parse JSON action.

Workflow history logging: SharePoint Designer workflows wrote to a history list. Power Automate does not have a built-in history list. Options:

  • Write to a dedicated SharePoint list (create a “Flow History” list)
  • Use the “Compose” action with run-after configuration for debugging
  • Rely on the flow run history in the Power Automate portal (retained for 28 days, or 90 days for premium)

Impersonation / Elevated permissions: SharePoint Designer workflows could run with elevated permissions (app-only). Power Automate flows run in the context of the connection owner. For scenarios requiring elevated permissions, use an HTTP action with an Azure AD app registration and certificate-based auth.

Step 3: Handle Approval Workflows

Approvals are the most common SharePoint Designer workflow type and deserve special attention because the migration pattern differs significantly.

SharePoint Designer Approval Pattern

The typical SP Designer approval used task list items, custom email notifications, and outcome tracking via list columns. It was tightly coupled to SharePoint’s task infrastructure.

Power Automate Approval Pattern

Power Automate has a dedicated Approvals connector that is much more capable:

1. Trigger: When an item is created or modified
2. Condition: Status equals "Submitted"
3. Start and wait for an approval
   - Type: Approve/Reject - First to respond
   - Title: "Please approve: [Item Title]"
   - Assigned to: manager@contoso.com
   - Details: "Submitted by [Created By] on [Created Date]"
   - Item link: [Link to item]
4. Condition: Outcome equals "Approve"
   - Yes: Update item (Status = "Approved")
   - No: Update item (Status = "Rejected"), Send rejection email

Key advantages over SP Designer approvals:

  • Approvers can respond from Teams, Outlook, or the Approvals app
  • Built-in mobile experience
  • Sequential and parallel approval patterns built in
  • Approval history is automatically maintained

Key gotcha: The Approvals connector stores data in Dataverse (provisioned automatically in the default environment). This means approval data is subject to Dataverse storage limits. For high-volume approval scenarios, monitor your Dataverse capacity.

Multi-Stage Approvals

For workflows that require manager approval then director approval then finance approval, use sequential approvals:

1. Start and wait for approval (Manager)
2. If approved → Start and wait for approval (Director)
3. If approved → Start and wait for approval (Finance)
4. If any stage rejected → Update item, notify submitter

Alternatively, use the “Custom Responses” approval type for more complex outcomes (Approve, Reject, Request Changes, Escalate).

Step 4: Address InfoPath Forms

Many SharePoint Designer workflows are paired with InfoPath forms. Since InfoPath is also deprecated, you will likely need to migrate forms simultaneously.

Replacement Options

InfoPath FeaturePower Apps Replacement
Simple data entry formSharePoint list custom form (Power Apps)
Complex multi-page formCanvas app with multiple screens
Forms with calculationsCanvas app with Power Fx formulas
Forms with rules/validationCanvas app with validation logic
Forms with repeating tablesCanvas app with gallery + collection

Migration Approach

  1. Document every field in the InfoPath form
  2. Create corresponding SharePoint list columns (or Dataverse table)
  3. Build the Power App form
  4. Customise the SharePoint list form (List > Integrate > Power Apps > Customise forms)
  5. Test with users before decommissioning InfoPath

Honest caveat: Complex InfoPath forms with dozens of fields, cascading dropdowns, and conditional sections can take significant effort to rebuild in Power Apps. Budget 2-5 days per complex form. Simple forms can be done in hours.

Step 5: Nintex Migration Considerations

If your organisation used Nintex Workflow for SharePoint Online, the migration path has its own considerations.

Nintex to Power Automate Mapping

Nintex offered actions that go beyond what SharePoint Designer provided:

Nintex ActionPower Automate Approach
Regular expressionCompose with match() or replace() expressions
Query list (CAML)Get items with OData filter (SharePoint connector)
Document generationGenerate document (Word Online connector) or third-party connector
PDF conversionConvert file (OneDrive connector) — limited formats
For each with batchingApply to each with concurrency control
State machineMultiple flows triggered by status changes
Lazy approvalApprovals connector with email response enabled

Nintex document generation is a common sticking point. Power Automate does not have a native equivalent with the same flexibility. Options:

  • Word Online connector’s “Populate a Microsoft Word template” action (basic)
  • Third-party connectors like Encodian or Plumsail Documents (advanced)
  • Custom Azure Function with a document library (most flexible)

Nintex Forms

Nintex Forms migrate similarly to InfoPath — rebuild in Power Apps. Nintex responsive forms are often easier to recreate in Power Apps than InfoPath forms because the layout concepts are more similar.

Step 6: Testing and Cutover

Testing Strategy

  1. Build the Power Automate flow in a development environment
  2. Test with sample data — create test items in the SharePoint list and verify the flow executes correctly
  3. Parallel run: Run both the old workflow and new flow simultaneously for 1-2 weeks. Compare outcomes.
  4. User acceptance testing: Have the business process owners verify the new flow produces correct results
  5. Cutover: Disable the old workflow, enable the new flow

Parallel Run Approach

During the parallel run period:

Old workflow: Still active on the production list
New flow: Active on the same list, but with actions that LOG
         results instead of taking real actions

Compare: Review the flow run history against workflow history
         to verify matching behaviour

Once you are confident the flow matches the workflow’s behaviour, switch the flow to production mode (replace logging actions with real actions) and disable the old workflow.

Common Testing Gotchas

Trigger timing: SharePoint Designer workflows triggered almost instantly. Power Automate flows can have a delay of 1-15 minutes depending on the trigger type and your licence. The “When an item is created or modified” trigger polls at intervals — it is not real-time. For near-instant triggering, consider the “For a selected item” trigger for manual workflows.

Connection ownership: The flow runs under the connection owner’s permissions. If the original workflow ran under an app-only context with elevated permissions, the flow may fail on items the connection owner cannot access. Use a dedicated service account for the flow connections.

Throttling: Power Automate has API call limits. A workflow that processes 500 items in a loop may hit throttling limits. Use concurrency control and delay actions to stay within limits:

Apply to each:
  Settings:
    Concurrency Control: On
    Degree of Parallelism: 1  (sequential processing)

  Actions:
    [Your actions]
    Delay: 1 second  (helps avoid throttling)

Step 7: Governance During Migration

Documentation

For each migrated workflow, document:

  • Original workflow name and location
  • New flow name and URL
  • What changed in the migration (any behaviour differences)
  • Connection owner (service account or named user)
  • Business owner (who is responsible)
  • Migration date

Environment Strategy

  • Migrate to dedicated environments, not the default environment
  • Group related flows by department or business process
  • Apply DLP policies that match the data sensitivity of each environment

Licence Impact

SharePoint Designer workflows did not require any licence beyond SharePoint Online. Power Automate flows may require additional licences:

  • Standard connector flows: Covered by M365 seeded licence (if triggered from SharePoint context)
  • Premium connector flows: Require Power Automate Premium ($15/user/month)
  • Flows using HTTP connector to external services: Premium
  • Flows using Dataverse: Premium
  • Flows using the Approvals connector: Standard (but Dataverse capacity is consumed)

Budget accordingly. A migration of 50 workflows may surface 10-15 that require premium licences. Identify these early and get budget approval before migration, not after.

Decommissioning Old Workflows

After successful migration and a stabilisation period (we recommend 30 days):

  1. Disable the old workflow (do not delete yet)
  2. Add a note to the workflow description: “Migrated to Power Automate flow [name] on [date]. Disabled. Will be deleted on [date + 90 days].”
  3. After 90 days with no issues, delete the old workflow
  4. Update your inventory to mark the migration as complete

Timeline and Planning

With the April 2026 deadline, here is a realistic timeline:

PhaseDurationActivities
Inventory1-2 weeksDiscover all workflows, document, prioritise
Planning1 weekMap actions, identify licence needs, allocate resources
Critical migrations2-4 weeksMigrate priority 1 workflows
High priority migrations2-4 weeksMigrate priority 2 workflows
Medium priority + cleanup2-4 weeksMigrate remaining, retire unused, decommission
Stabilisation4 weeksMonitor, fix issues, complete documentation

For a typical mid-sized organisation with 30-100 workflows, plan for 3-4 months of active migration work. Larger organisations or those with complex Nintex workflows should plan for 6+ months.

Do not leave this until the last month. Rushed migrations lead to broken business processes, angry users, and emergency workarounds that become permanent technical debt.

Key Takeaways

  1. Start with a complete inventory — you cannot migrate what you do not know about
  2. Expect to retire 20-30% of workflows rather than migrate them
  3. Approval workflows are the most common and have the cleanest migration path
  4. InfoPath forms must be migrated simultaneously (to Power Apps)
  5. Test with parallel runs before cutting over
  6. Budget for premium licences where required
  7. Document everything — your future self will thank you
Share LinkedIn X Reddit