Recently I’ve looked at many SharePoint Designer workflows and migrated them to Microsoft Flow or Azure Logic Apps. There isn’t really a set approach that will work for all but as a starting point you could consider going for a like for like migration. Each Condition, Action and Loop in your SharePoint Designer workflows can quite quickly be replaced with the equivalent in Microsoft Flow. In this post I’m going through a full list of steps that you can migrate across.
Within Microsoft Flow or Azure Logic Apps ever flow or app will start with a trigger. Where SharePoint Designer is always triggered by either something happening to a list item, document or a moment in time, Microsoft Flow and Azure Logic Apps can be triggered by many other applications.
Once you have created your trigger you will be able to open the following menu:
This is where actions, conditions, loops, scopes and branches can be added. Most actions will have similar names in both SharePoint designer and Flow. But be careful! Migrating from SharePoint Designer to Flow is not a 1:1 migration.
With this post I’m hoping to make your life easier. If you prefer to get help then feel free to contact me.I’m always happy to help with your Flow migrations.
|SharePoint Designer||Microsoft Flow/Azure Logic Apps|
|If any value equals any value condition in SharePoint Designer makes it possible to compare any value with any value.|| The following Condition block is available from the Add a condition option.
SharePoint Designer has a few extra operations available.
Is empty and is not empty, matches regular expression and equals (ignoring case) are still missing.
If you need to test for Empty you can use the function Null to compare with
|Created by a specific person|| Via the Get-Items or Get-Item followed by an if conditions you could replicate this.
Often you might use the SharePoint item as a trigger of your flow. Therefore the Created field would be available as a variable.
|Created in a specific date span|| Via the Get-Items followed by an if conditions you could replicate this.
Once again it is likely that you would use the SharePoint item as a trigger of your flow. Therefore the Created field would be available as a variable.
|Modified by a specific person|| Via the Get-Items followed by an if conditions you could replicate this.
The Modified field would be available as a variable if you use a trigger based on an item change.
|Modified in a specific date span|
|Within Flow or Logic Apps you could verify an account using the Azure AD Get User action followed by an if that does the checks.|
|Title field contains keywords|| Via the Get-Items or Get Item followed by an if conditions you could replicate this.
The Title field would be available as dynamic content if you use SharePoint based triggers
|Start a list workflow|| I have been looking for a Start a list Flow but that doesn’t exist. The only way to replicate the Start workflow functionality is either by calling a service or to update a SharePoint list item that then triggers another Flow.
If you are looking for starting a SharePoint Designer workflow then you could use the REST API as described in this post
|Start a site workflow||I have been looking for a Start a site Flow but that doesn’t exist. The only way to replicate the Start workflow functionality is either by calling a service or to update a SharePoint list item that then triggers another Flow.If you are looking for starting a SharePoint Designer workflow then you could use the REST API as described in this post|
|Add a comment||Adding a comment can be done by selecting the add a comment within any action or condition:|
|Add time to a date||If you want to do calculations, within Flow or Logic apps you will need to use Expressions:|
|Call HTTP Web Service||Within Azure Logic you can create HTTP calls to webservices, however quite often you will find that a specific Connector already exists for the application that you try to integrate with. Therefore the need for a plain HTTP call might not be needed.
The HTTP – HTTP action might be the closest option the the CALL HTTP Web Service call in SharePoint Designer:
|Count Items in a Dictionary||Within Microsoft Flow and Logic App the length Expression will return the number of items in an Array:|
|Do Calculation||For basic calculations Microsoft flow has some expressions available:|
|Get an item from a Dictionary||Although the straightforward option may not be available, there are many query actions available in Microsoft Flow. Depending on the use this could be migrated.|
|Log to History List||Although there may not be an option to log a message to the history list of Flow. you could create history items in other application, for example SharePoint.|
|Pause for Duration||A Pause can be implemented with an Do Until using the utcNow and addDays expressions:|
|Pause until Date||A Pause can be implemented with an Do Until using the utcNow and addDays expressions:|
|Send an Email||Not just sending an email is easy in Flow. Sending approval emails (with pretty buttons) is a piece of cake. Simply select one of the actions and you will be sending emails in no time.|
|Set Time portion of Date/Time Field||With the time functions available it might be a challenge to get this done, but probably not impossible.|
|Set Workflow Status||Not applicable. Unless you want to set a field in a SharePoint list item or a database record.|
|Set Workflow Variable||Variables are a bit different in Flow. Dynamic content will take a away the need for a lot of variable. As an alternative you can set properties with expressions:
Or you can of course always use the variable in Flow:
|Check in Item||Check in and check out seems to be missing in the connectors with SharePoint.|
|Check out Item||Check in and check out seems to be missing in the connectors with SharePoint.|
|Copy document||The copy document options can be replaced by Copy file:|
|Create List Item||The create item action is available within Flow and Log Apps:|
|Delete Item||Once again the Delete Item has a direct match in Flow and Logic Apps:|
|Discard Checkout Item||Check in and check out seems to be missing in the connectors with SharePoint.|
|Set Content Approval Status||The Set Content approval status has a direct match in Flow and Logic Apps.|
|Set Field in Current item||Items can be updated in|
|Translate Document||I must admit that I have never use the translation options in SharePoint Designer. The only translation options currently available in Flow and Logic Apps are in preview:|
|Update List Item||Items can be updated in|
|Wait for Event in List Item||As with the Pause until actions, wait for a list event can be implement with a Do Until|
|Wait for Field Change in Current Item||As with the Pause until actions, wait for a field change can be implement with a Do Until|
|Assign a task||Implementing a task system can be done in multiple ways and there are too many option to consider for me to include them in this post.|
|Start a task process||See assign task|
|Extract Substring from End of String||Logic Apps and Flow have a substring expression available that can handle all of the substring actions like in SharePoint Designer:|
|Extract Substring from Index of String||Flow and Logic Apps have a function substring available that can handle all of the substring actions in SharePoint Designer:|
|Extract Substring from Start of String||Logic Apps and Flow have an expression substring available that can handle all of the substring actions in SharePoint Designer:|
|Extract Substring of String from Index with Length||Logic Apps and Microsoft Flow have a substring expression vailable that can handle all of the substring actions in SharePoint Designer:|
|Find Interval between Dates|
|Find Substring in String||Like in SharePoint Designer, Logic Apps and Flow have an expression substring available that can handle all of the substring actions:|
|Replace Substring in String||Logic Apps and Flow have an expression replace available that can handle all of the replace actions in SharePoint Designer:|
As you can see most of the SharePoint Designer actions are there in Microsoft Flow. It isn’t always easy to make the actions in Flow or Azure Logic Apps work the same way, but hopefully this post will help a bit.