Guidance: Migrate from classic workflows to Power Automate flows in SharePoint
For business users building apps and process automations in SharePoint today and into the future, Microsoft Power Apps and flows within Microsoft Power Automate are your tools of choice. This natural transition is well underway as SharePoint evolves from InfoPath and SharePoint Designer workflows to the simplicity and versatility of Power Apps and flows within Power Automate.
This article specifically provides guidance about how to plan for transitioning from classic SharePoint Workflows to Power Automate flows.
Classic workflows in SharePoint
Classic workflows in SharePoint constitutes two workflow systems namely
- SharePoint 2010 workflow (deprecated in November 2020)
- SharePoint 2013 workflow
While both workflow systems allow users to build and publish workflows in SharePoint, see the following key differences:
- SharePoint 2010 workflows, released along with SharePoint Server 2010, are hosted, and executed in SharePoint workflow runtime.
- SharePoint 2013 workflows, released along with SharePoint Server 2013, are hosted in SharePoint, and executed in Workflow Manager, that runs independently.
Users primarily use SharePoint Designer to author and publish workflows in SharePoint, while professional developers, looking to extend and build workflows, use Visual Studio to build and publish workflows in SharePoint.
After August 1, 2020, new Microsoft 365 customers can use SharePoint 2013 workflows or Power Automate. However, SharePoint 2013 workflows will follow a similar retirement path in the future, so it's highly recommended to use Power Automate or other supported solutions. If you want to learn more about the SharePoint 2013 workflow usage inside your tenant you can use the Workflow 2013 Assessment tool. This tool will assess your tenant on SharePoint 2013 workflow usage and generates a Power BI report with the findings.
The SharePoint Migration Tool (SPMT) lets you migrate SharePoint Server 2010 out-of-the-box workflows and SharePoint Designer 2010 & 2013 workflows to Power Automate. Learn more about migrating your SharePoint Server and SharePoint Designer workflows with SPMT.
Modern workflows with Power Automate flows
Since the release of classic workflows, SharePoint and Microsoft 365 apps have evolved to provide compelling, flexible and more performant experiences. Modern experiences in SharePoint integrate with rest of the Microsoft 365 apps and services driving security, productivity, and collaboration.
Power Automate helps users and businesses to create automated workflows between your favorite apps and services to get notifications, collect data, automate business policies and more.
Using Microsoft Power Automate, SharePoint users can use the SharePoint Connector to create automations for when data changes in a list or a library. Users can build simple to complex workflows such as, but not limited to:
- Send an email when a new item is created in a list.
- Start approval when a new file is added in a library.
To learn more about building workflows using Power Automate in SharePoint, start here: Business apps and Business process Business apps and business process automation.
Pain points in moving between classic workflows in SharePoint and Power Automate flows
Many people feel there are significant gaps between SharePoint Designer (classic) workflows and Power Automate flows, but the list is not long. Of course, there are some workarounds you should consider in your planning as you move from classic workflows to Power Automate flows.
- 30 day run limit for flows – SharePoint Designer workflows can run endlessly, but flows have a 30 day lifespan. Getting beyond this limitation means your flow will need to call itself in a re-entrant way to restart the clock ticking. Depending on the solution you choose to accomplish this, this may require a Premium Power Automate license.
- HTTP Connector – If you make calls to SharePoint's REST API, then you can use the 'Send HTTP Request to SharePoint' action available in the SharePoint connector. Flow also has a generic HTTP connector (as an action), but it is a Premium connector. If you use HTTP calls extensively, you may want to create a “service account” user with a Power Automate license and run these flows with that user account. This also will make it easier to manage the set of flows you consider "enterprise" flows.
- Reusable Flows – Using some modular thinking, you can create a master flow which a flow per list or library can call to do the heavy lifting. In some ways this is even preferable, as you can edit a flow which is used in many locations centrally. This will however require a Premium Power Automate license. Alternatively, you can use flow actions to discover all of the lists or libraries which match some criteria and run the flow on them all on a timer rather than based on events.
- Workflow history storage – Flows maintain an extensively detailed history in the context of the flow itself in the Power Automate dashboard for the runs that have occured in the last 28 days. If you need tracking in your sites, or keep historical logging longer than 28 days, you can have the flow log information in a list you create.
- Impersonation - In SharePoint 2010 workflows, you can add an impersonation step to act as a different user. You could achieve similar functionality by using different user accounts with different (elevated) priviledges for certain actions. Alternatively you can consider using an Azure Active Directory Application registration, assigning it permissions and using that to directly call into the APIs. The latter will require a Premium Power Automate license and requires more manual effort to make the calls.
While these pain points do exist, you can see there are workarounds for each of them. Do beware that some of these workarounds will require a Power Automate Premium license. Read more about the license implications of doing so and who will require to have a Premium license.
Modern approvals with Power Automate flows
Approvals are the most common workflow scenario when it comes to automating business processes in SharePoint. Transitioning to Power Automate flows, approvals can be streamlined for data in SharePoint, Dynamics 365, forms, SQL, and so on. You can create approvals in your workflow, and view sent and received requests in a unified Actions center. Power Automate approvals enable users to customize flows and create approvals for the following types:
SharePoint approvals such as page approvals, document approvals, and hub association approvals are all integrated and powered by Power Automate flows, providing users the flexibility to customize the business process for each of the approval scenarios.
Authoring classic workflows and flows
To fully understand the improvements of authoring workflows with flows in Power Automate and classic workflows using SharePoint Designer, users must first familiarize themselves with the workflow terminologies used by the workflow tools; that is, SharePoint Designer and Power Automate.
To author workflows, as outlined in the previous sections, users primarily use SharePoint Designer to author classic workflows and Power Automate website portal to author flows.
See the following tables that compare the workflow terminologies, triggers, and actions for most common workflow concepts and support.
While the following lists show some of the most common workflow capabilities, Power Automate offers many more features, and is actively updated with new features. We highly recommend visiting the following Power Automate websites for guided learning:
|Workflow concept||SharePoint workflow||Power Automate|
|A condition that causes the workflow to run or execute||Start options and events||Trigger|
|Building blocks that allow users to customize workflow with business logic||Actions||Actions|
|Apply and perform conditional business logic in workflows||Conditions||Conditions (available under Actions)|
|Get additional input from users when running manual workflows||Initiation form||Trigger Inputs|
|Workflow type||SharePoint workflow||Power Automate flow|
|Reusable workflows||Yes||Not available|
|Site workflows||Yes||Not available|
|SharePoint integration||SharePoint workflow||Power Automate flow|
|Create a custom workflow from a list or library||Yes||Yes, only in Modern Experiences|
|Run or start a custom workflow for an item or a file or a folder||Yes||Yes, only in Modern Experiences|
|Create and respond to standard approval for an item or a file||Yes||Yes|
|Create and respond to classic publishing page approvals||Yes||Not available|
|Create and respond to modern page approvals||Not available||Yes|
|Create and manage Hub Site association approval requests||Not available||Yes|
|List trigger||SharePoint workflow||Power Automate flow|
|When an item is created||Yes||Yes|
|When an item is modified||Yes||Yes|
|When an item is created or modified||Not available||Yes|
|Site workflows||Yes||Not available|
|When an item is deleted||Not available||Yes|
|For a selected item||Yes||Yes|
|List action||SharePoint workflow||Power Automate flow|
|Get items||Not available||Yes|
|Create an item||Yes||Yes|
|Update an item||Yes||Yes|
|Delete an item||Yes||Yes|
|Copy a list item||Yes||Yes, by reusing ‘Create an item' action|
|Get attachments||Not available||Yes|
|Get attachment content||Not available||Yes|
|Add attachment||Not available||Yes|
|Delete attachment||Not available||Yes|
|Set field value in current item||Yes||Yes, using ‘Update an item’ action|
|Get changes for an item||No||Yes|
|List action||SharePoint workflow||Power Automate flow|
|When a file is created||Yes, using List triggers||Yes|
|When a file is created in a folder||Not available||Yes|
|When a file is modified||Yes, using List triggers||Yes|
|When a file is created or modified||Not available||Yes|
|When a file is created or modified in a folder||Not available||Yes|
|When a file is deleted||Not available||Yes|
|For a selected file||Yes, using List triggers||Yes|
|File action||SharePoint workflow||Power Automate flow|
|Get files||Not available||Yes|
|Create file content||Not available||Yes|
|Get file properties||Not available||Yes|
|Create a file||Not available||Yes|
|Create new folder||Not available||Yes|
|Update file properties||Yes, using List triggers||Yes|
|Delete a file||Yes, using List triggers||Yes|
|Copy file||Not available||Yes|
|Copy folder||Not available||Yes|
|Move file||Not available||Yes|
|Get changes for a file (properties only)||No||Yes|
Document management actions
|Document management action||SharePoint workflow||Power Automate flow|
|Check in file||Yes||Yes|
|Check out file||Yes||Yes|
|Delete drafts||Yes||Not available|
|Wait for change in document check out status||Yes||Not available|
Permissions management actions
|Permissions management action||SharePoint workflow||Power Automate flow|
|Grant access to an item or a folder||Yes||Yes|
|Stop sharing an item or a file||Yes||Yes|
|Create sharing link for a file or folder||Not available||Yes|
|Approval action||SharePoint workflow||Power Automate flow|
|Set content approval status of an item or a file or a page||Yes||Yes|
|Create and wait for approval for an item or a file||Yes||Yes|
|Include attachments in approval requests||Not available||Yes|
|Respond to approvals||Yes||Yes|
|Create sequential approvals||Yes||Yes|
|Create parallel approvals||Yes||Yes|
|Custom approval buttons||Yes||Yes|
|Unified approval center||Not available||Yes|
Workflow controls capabilities
|Workflow controls capability||SharePoint workflow||Power Automate flow|
|Workflow primitives: Loops, do until, switch-case, parallels||Yes||Yes|
|Workflow stage||Yes||Yes, works only with Modern Permissions|
|Email designer and rich text editor||Not available||Yes|
|Versioning of workflows||Not available||Not available|
|Workflow administration||SharePoint workflow||Power Automate flow|
|Central location to view all workflows||Yes, only available to view for a given list or library||Yes, 'My flows' lists user flows|
|Share workflows with list or library users||Yes||Yes|
|Share workflows with users||Not available||Yes|
|Save a copy of workflow to create a copy of the workflow||Not available||Yes|
|Workflow versioning||Not available||No|
|Create a workflow with elevated permissions||Yes, by granting permissions to workflow app and then using App Step action and SharePoint Add-ins||Not available|