Workflow Migration Guide: SharePoint Workflows to Power Automate¶
Status: Authored 2026-04-30 Audience: SharePoint administrators, Power Platform developers, and workflow architects migrating SharePoint 2010/2013 Workflows and Nintex Workflows to Power Automate. Scope: Assessment with SMAT, workflow complexity tiers, Power Automate patterns for common workflows, and Nintex migration considerations.
1. Workflow migration overview¶
SharePoint 2010 Workflows and SharePoint 2013 Workflows are deprecated and not supported in SharePoint Online. All workflow functionality must be migrated to Power Automate (formerly Microsoft Flow). There is no automated migration tool -- each workflow requires manual assessment, redesign, and rebuild in Power Automate.
!!! danger "SharePoint workflows are fully deprecated" - SharePoint 2010 Workflows: Retired from SPO on November 1, 2020. Cannot run in SPO. - SharePoint 2013 Workflows: Retired from SPO on April 2, 2024. Cannot run in SPO. - SharePoint Designer Workflows: SharePoint Designer 2013 is the last version; no longer updated. Designer workflows use the 2010 or 2013 workflow engine. - There is no migration tool from SP Workflows to Power Automate. Each workflow must be manually redesigned.
2. Workflow inventory and assessment¶
SMAT workflow assessment¶
# Run SMAT with workflow focus
.\SMAT.exe -SiteURL https://sharepoint.contoso.com `
-OutputFolder C:\SMAT-Results
# Key SMAT reports for workflows:
# - WorkflowAssociations2010.csv -- SP 2010 workflows
# - WorkflowAssociations2013.csv -- SP 2013 workflows
# - WorkflowRunning2010.csv -- Currently running 2010 instances
# - WorkflowRunning2013.csv -- Currently running 2013 instances
Manual workflow inventory¶
# Inventory all workflow associations across the farm
Add-PSSnapin Microsoft.SharePoint.PowerShell
$workflowInventory = @()
Get-SPSite -Limit All | ForEach-Object {
$_.AllWebs | ForEach-Object {
$web = $_
# Site-level workflows
$web.WorkflowAssociations | ForEach-Object {
$workflowInventory += [PSCustomObject]@{
SiteUrl = $web.Site.Url
WebUrl = $web.Url
Scope = "Web"
ListTitle = "N/A"
WorkflowName = $_.Name
AssociationId = $_.Id
IsEnabled = $_.Enabled
IsDeclarative = $_.IsDeclarative
Created = $_.Created
Modified = $_.Modified
RunningInstances = $_.RunningInstances
Platform = "Unknown"
}
}
# List-level workflows
$web.Lists | ForEach-Object {
$list = $_
$_.WorkflowAssociations | ForEach-Object {
$workflowInventory += [PSCustomObject]@{
SiteUrl = $web.Site.Url
WebUrl = $web.Url
Scope = "List"
ListTitle = $list.Title
WorkflowName = $_.Name
AssociationId = $_.Id
IsEnabled = $_.Enabled
IsDeclarative = $_.IsDeclarative
Created = $_.Created
Modified = $_.Modified
RunningInstances = $_.RunningInstances
Platform = "Unknown"
}
}
}
}
}
$workflowInventory | Export-Csv -Path "C:\Migration\workflow-inventory.csv" -NoTypeInformation
Write-Host "Total workflows found: $($workflowInventory.Count)"
Workflow complexity classification¶
| Tier | Complexity | Characteristics | Power Automate effort |
|---|---|---|---|
| Tier 1 -- Simple | Low | Approval, notification, status update | 2-4 hours per workflow |
| Tier 2 -- Standard | Medium | Multi-step approval, conditional logic, email with dynamic content | 1-2 days per workflow |
| Tier 3 -- Complex | High | Parallel approvals, loops, external web service calls, state machine | 3-5 days per workflow |
| Tier 4 -- Custom | Very high | Custom code activities, complex business logic, multi-system integration | 1-2 weeks per workflow |
3. Power Automate patterns for common SharePoint workflows¶
Pattern 1: Simple approval workflow¶
Source (SP 2010/2013): Out-of-the-box approval workflow on a document library.
Power Automate equivalent:
{
"trigger": "When an item is created or modified",
"conditions": "Status equals 'Pending Approval'",
"actions": [
"Start and wait for an approval (Approve/Reject)",
"If approved: Update item status to 'Approved'",
"If rejected: Update item status to 'Rejected', send rejection email"
]
}
Steps to build in Power Automate:
- Create a new Automated cloud flow
- Trigger: When an item is created or modified (SharePoint connector)
- Condition: Check if Status column equals "Pending Approval"
- Action: Start and wait for an approval (Approvals connector)
- Condition: Check approval outcome
- If approved: Update item (set Status to "Approved")
- If rejected: Update item (set Status to "Rejected") + Send an email
Pattern 2: Multi-level approval¶
Source: Custom SP Designer workflow with sequential approvals (Manager then Director then VP).
Power Automate equivalent:
- Trigger: When an item is created (SharePoint)
- Get manager (Office 365 Users connector -- get user's manager)
- Start and wait for an approval -- Manager level
- If approved: Get manager's manager (Director)
- Start and wait for an approval -- Director level
- If approved and amount > $50,000: Start and wait for an approval -- VP level
- Update item status at each step
- Send notification emails at each step
Pattern 3: Document review and feedback collection¶
Source: Collect Feedback workflow (SP 2010 OOB).
Power Automate equivalent:
- Trigger: When a file is created in a folder (SharePoint)
- Get items from a reviewers list or use a SharePoint group
- Apply to each reviewer:
- Start and wait for an approval (Custom Responses: "Approve with Comments" / "Request Changes" / "Abstain")
- Create item in a feedback tracking list (reviewer, response, comments, date)
- After all reviewers respond: Send email to document owner with aggregated feedback
- Update item metadata with review status
Pattern 4: Conditional routing based on metadata¶
Source: SP Designer workflow with multiple conditions routing to different approvers based on department, amount, or category.
Power Automate equivalent:
- Trigger: When an item is created (SharePoint)
- Switch on Department column:
- Case "Finance": Route to Finance Manager
- Case "HR": Route to HR Manager
- Case "Legal": Route to Legal Manager
- Default: Route to General Manager
- Start and wait for an approval with the selected approver
- Update item status
Pattern 5: Scheduled recurring workflow¶
Source: SP 2013 workflow with a pause/loop pattern that runs weekly.
Power Automate equivalent:
- Trigger: Recurrence (Schedule connector -- every Monday at 8:00 AM)
- Get items from SharePoint list (filter: Status eq 'Active')
- Apply to each item:
- Check due date: if due date is within 7 days, send reminder email
- If overdue: escalate to manager, update status to "Overdue"
- Send email summary to list owner with counts
4. SharePoint Designer workflow migration¶
SharePoint Designer (SPD) workflows are the most common type found on-premises. They range from simple email notifications to complex multi-step processes.
SPD action to Power Automate mapping¶
| SPD action | Power Automate equivalent | Notes |
|---|---|---|
| Send an email | Send an email (V2) | Use Office 365 Outlook connector |
| Update list item | Update item (SharePoint) | Direct mapping |
| Create list item | Create item (SharePoint) | Direct mapping |
| Set field in current item | Update item (SharePoint) | Direct mapping |
| Log to history list | Compose + Create item in log list | No direct history list; create a custom log |
| Pause for duration | Delay | Direct mapping (minutes, hours, days) |
| Pause until date | Delay until | Direct mapping |
| Set workflow status | Update item (status column) | Use a custom status column |
| Assign a task | Start and wait for an approval | Approvals connector replaces task-based assignments |
| Call HTTP web service | HTTP action | Premium connector; requires Power Automate per-user plan |
| Dictionary operations | Compose + Parse JSON | JSON operations replace dictionary |
| Loop with condition | Do Until / Apply to each | Direct mapping |
5. Nintex workflow migration¶
Nintex for SharePoint on-premises is widely deployed. Nintex offers Nintex Workflow Cloud and Nintex for Microsoft 365 as cloud migration targets.
Migration options for Nintex workflows¶
| Option | Description | Best for |
|---|---|---|
| Nintex for Microsoft 365 | Nintex's own cloud platform | Organizations committed to Nintex; complex workflows |
| Power Automate | Microsoft's native workflow platform | Organizations standardizing on M365; simpler workflows |
| Hybrid | Nintex for complex, Power Automate for simple | Phased migration; cost optimization |
Nintex action to Power Automate mapping¶
| Nintex action | Power Automate equivalent | Notes |
|---|---|---|
| Request approval | Start and wait for an approval | Approvals connector |
| Send notification | Send an email (V2) | Office 365 Outlook connector |
| Assign flexi task | Start and wait for an approval (custom responses) | Custom approval responses |
| Query list | Get items (SharePoint) | OData filter support |
| Update item | Update item (SharePoint) | Direct mapping |
| Create item | Create item (SharePoint) | Direct mapping |
| Call web service | HTTP action | Premium connector |
| Regular expression | Compose with expressions | Power Automate expressions |
| Generate document | Word Online (Business) connector | Populate Word template |
| Convert to PDF | Word Online (Business) - Convert | Built-in PDF conversion |
| State machine | Manually manage state with variables | No native state machine; use status columns |
Nintex assessment script¶
# Export Nintex workflow definitions for assessment
# Requires Nintex Workflow PowerShell module or direct web service calls
$webUrl = "https://sp2016.contoso.com/sites/finance"
$web = Get-SPWeb $webUrl
# Nintex stores workflow definitions in the NintexWorkflow content database
# Export via Nintex Administration page or use the Nintex Web Service
# Alternative: Use Nintex's built-in export to NWP files
# Administration > Nintex Workflow Management > Export Workflow (per workflow)
6. Migration execution strategy¶
Phase 1: Inventory and classify (week 1-2)¶
- Run SMAT workflow reports
- Run manual inventory script
- Classify each workflow into complexity tiers
- Identify workflows that can be retired (unused, redundant, obsolete)
- Prioritize by business criticality
Phase 2: Design Power Automate replacements (week 3-6)¶
- Document the business process for each workflow (not the technical implementation)
- Design Power Automate flows that implement the business process
- Identify premium connectors needed (HTTP, custom connectors)
- Plan licensing (standard vs premium flows)
- Create flow design documents for Tier 3 and Tier 4 workflows
Phase 3: Build and test (week 7-14)¶
- Build flows in a development environment
- Test with representative data
- Validate approval routing, email content, status updates
- Test error handling and edge cases
- User acceptance testing with workflow owners
Phase 4: Deploy and cutover (week 15-18)¶
- Deploy flows to production SPO environment
- Run parallel with on-premises workflows for 1-2 weeks (where possible)
- Disable on-premises workflows
- Monitor Power Automate flow runs for errors
- Document known issues and workarounds
Handling in-flight workflow instances¶
Running workflow instances cannot be migrated
Any SharePoint workflow instances that are running at the time of migration will be lost. Plan the cutover to minimize in-flight instances:
1. Communicate a freeze date to workflow users
2. Allow running instances to complete before cutover
3. For long-running instances, manually complete the process and restart in Power Automate
4. Document any instances that cannot be completed before cutover
7. Power Automate licensing considerations¶
| Plan | Included with | Limits | Best for |
|---|---|---|---|
| M365 included | M365 E3/E5/G3/G5 | Standard connectors only; 6,000 actions/day | Simple approvals, notifications |
| Power Automate Premium | $15/user/month | Premium connectors, custom connectors, 40,000 actions/day | Complex workflows with external systems |
| Power Automate Process | $150/bot/month | Unattended RPA, premium connectors | Automated processes without user context |
M365 included flows cover most scenarios
The majority of SharePoint workflow replacements use only standard connectors (SharePoint, Outlook, Approvals, Teams). Only workflows that call external web services, custom APIs, or require RPA need premium licensing.
8. Testing and validation¶
Flow testing checklist¶
- Trigger fires correctly on item create/modify/delete
- Approval routing reaches correct approvers
- Approval responses update item status correctly
- Email notifications include correct content and formatting
- Conditional logic routes correctly for all branches
- Error handling captures and reports failures
- Parallel branches execute correctly
- Loops terminate correctly (no infinite loops)
- Performance is acceptable (flow completes within expected time)
- Flow runs are logged and visible in Power Automate analytics
References¶
- Power Automate documentation
- SharePoint workflow retirement
- Power Automate SharePoint connector
- Power Automate approvals
- Nintex for Microsoft 365
- Power Automate licensing
- SMAT workflow reports
Maintainers: csa-inabox core team Last updated: 2026-04-30