Top
Sharegate migration Nintex

Nintex Workflow Migration from on premise to Office 365


Recently I’ve been involved in that project, where data and information that was being created for years in on premise SharePoints had to be migrated to the Sharepoint Online environment in Office 365. All migration was said to be a simple, straightforward and easy due to the usage of Sharegate, but… the real truth turned out to be way more dark.

Before the real migration started I sat down and started reading about the process and possible obstacles. I can now divide them into 3 groups:

  1. Limitations of Sharegate
  2. Limitations of SharePoint Online
  3. Limitations of Nintex for Office 365.

First things first. I will guide you through all and each from them.

Limitations of Sharegate

Sharegate is a really great tool. Honestly. It saved me dozens of hours but as well made me frustrated. But still it is great. It really allows not straightforward migrations to be possible (like from SP2007 directly to SP2013 and so on), is the only tool that allows automatic migration from on premise to online, allows migration of sites, users, managed metadata and many, many more.

Currently Sharegate supports migration of 30 actions that are present in on premise (source: Nintex FAQ – Sharegate):

Action Name OnPremisesMapped Action in Office 365
Action SetAction Set
Assign Flexi taskStart a Task Process
Build StringBuild String
Calculate dateAdd Time to Date
Change stateChange State
Check in itemCheck In Item
Check out itemCheck Out Item
Commit Pending Changes---
Convert ValueConvert Value
Create itemCreate List Item
Delete itemDelete Item WM Action
Discard check outDiscard Check Out Item
End workflowTerminate Current Workflow
FilterFilter
For EachFor Each
Log in history listLog to History List
LoopLoop with Condition
Math operationDo Calculation
Pause for...Pause For Duration
Pause until...Pause Until
Query ListQuery List
Regular expressionRegular Expression
Run ifRun If
Run parallel actionsParallel Block
Send notificationSend an email
Set a conditionConditional Branch
Set field valueSet field in current item
Set variableSet Workflow Variable
Set workflow statusSet Workflow Status
State machineState Machine
SwitchSwitch
Twitter TweetTwitter Tweet
Update itemUpdate List Item
Yammer MessageYammer Message 

To use Sharegate you have to really review each from your workflows and re-build it, so that you can expect that it will be migrated. Note, that:

  1. there are some crucial actions, that are totally unsupported but can be “workarouned”.
  2. there are actions that just cannot be migrated and must be re-created after the migration.

What to do with them? I recommend the following approach:

BEFORE MIGRATION

  1. user defined actions – During migration they will be replaced with a blank placeholder leaving you with nothing. All actions from inside will be lost. I recommend converting them into a “Run If” action block (which is “migrate-able”) and putting all actions from UDA inside it. Then if I needed to reuse those actions replacing UDAs. Oh, and the rule to execute it was always set to “true”.
  2. query list must have a defined number of rows to be returned. Field cannot be left empty. Oh, and by default querying list is always “recursive” in O365
  3. action set is not supported as UDA. See point no. 1 how to resolve.
  4. for each loop actions are as well not supported as UDA and Action Sets. See point no. 1 how to resolve;
  5. workflow constants are not supported in Nintex for O365, thus Sharegate cannot migrate them. You should either remove them, turn them into workflow variables or create a SP List to keep them (so if you are using them in many workflows) and then just query the list.
  6. workflow context variables – some are not supported in Nintex for O365, thus Sharegate cannot migrate them (like the one with Approval Comments). You should either replace them with a workflow variable, or remove because may cause troubles during migration;
  7. inline functions – are not supported in Nintex for O365, thus Sharegate cannot migrate them. You should either replace them with a workflow variable, or remove because may cause troubles during migration;
  8. commit pending changes – this action is not present in O365 as the architecture is different. Actions are not grouped and executed with batches. Everything goes synchronously. All such actions should be deleted before.

AFTER MIGRATION

On premise actionOffice 365 action counterpartRemarks
Query/ Update XMLQuery/ Update XMLActions are not supported because of the architecture differences. Sharegate will migrate them as a blank placeholders.
User Profile actionsOffice 365 User Profile actionsSharegate will migrate them as a blank placeholders.
flexi taskStart a task process/ Assign a task (based on how many approvers you have)No "To Do" task either. You cannot set mail priority, you cannot chose to which from "assigned" user the notification will be sent, you cannot delegate (workaround: https://community.nintex.com/community/build-your-own/blog/2015/02/26/delegation-in-o365), you cannot calculate time to send reminder. Oh, and you cannot attach files to the notification message. Some workarounds are possible after the migration, some are not available at all.
search queryOffice 365 Search QuerySharegate will migrate it as a blank placeholder.
dynamics crm"Dynamics CRM" actionsSharegate will migrate it as a blank placeholder.
convert document action"Document Generation"Sharegate will migrate it as a blank placeholder.
set item permissions Office 365 update item permissionsSharegate will migrate it as a blank placeholder.
Update documentNo direct counterpartSharegate will migrate it as a blank placeholder.
Create item in another siteOffice 365 Create List Item or Document SetSharegate will migrate it as a blank placeholder.
Update/ Delete multiple itemsPossibly by some HTTP Request callSharegate will migrate it as a blank placeholder.
Collection operationBy a proper Collection operationActions differs. There is a dedicated "Collection operation" per each operation, not one for all as in on premise. Sharegate will migrate them as a blank placeholders.
Store/ Retrieve dataNo direct counterpartThere is no possibility for the workflows in O365 to "talk" with each other. Consider change of the workflow design.
Start workflowStart workflowAction is not supported for migration because of the architecture differences. Sharegate will migrate them as a blank placeholders.
Create site collectionBy a proper Office 365 create site collection 
Delete site By a proper Office 365 delete site  
Delegate workflow taskBy Assign a task and custom workFor example: https://community.nintex.com/community/build-your-own/blog/2015/02/26/delegation-in-o365
Request approvalOffice 365 set approval status Action is not supported for migration because of the architecture differences. Sharegate will migrate them as a blank placeholders.
And many, many more... Read the attachment.
  

Complete list of “non-migratable” actions is listed here: Nintex FAQ – Sharegate.

Limitations of SharePoint Online

One and the most irritating limitations are the thresholds (Software boundaries and limits for SharePoint 2013). And in Online you CANNOT CHANGE THEM  Be aware of them and don’t get angry when migrating:

  1. Workflow file cannot exceed 5MB – (source: https://community.nintex.com/message/57706-re-what-is-the-default-limitation-in-nintex-for-exporting-a-workflow?commentI…) that simply means, it shouldn’t have more than 100 actions inside.
    HOWEVER I had a “pleasure” to migrate workflows having like 5 actions without a success and so far I have no idea why Sharegate was reporting errors when migrating.
  2. Infopath file cannot be larger than 5MB (be aware if you have forms with attachments).
  3. List/ library cannot hold more than 5.000 items. If you do exceed it during the migration, be prepared to observe abnormal behavior of your tenant.

Limitations of Nintex for Office 365

Those limits have already been described during in the “Sharegate limitations” – those limits are most often caused by the differences in the SharePoint Online hosted environment limitations, thus some actions were just impossible to be re-created and had to be done from a scratch, some has different architecture and cannot be directly migrated. And still, there is a huge lack of functionality in Nintex for Office 365:

  1. There is no conditional start for workflows, however it can be replaced with filter action
    [tds_info]  Conditional Start is present in NWO365 since January 2018[/tds_info]
  2. There are no site scheduled workflows, but you can workaround it by either using 3rd party: Plumsail Workflow Scheduler or simply work them around: Scheduled Workflows in Office 365;
    [tds_info]  Scheduled Workflows are present in NWO365 since end of July 2017[/tds_info]
  3. When comparing you are more than often not able to verify if a value “is empty”. You can only compare whether it equals or not (but you cannot set equation to nothing );
  4. No “workflow constants”.
    [tds_info]  Some functionality related to “Workflow Constants”: Connection Manager, allowing workflow designer to define credentials that will be then used to authenticate all “Office 365” actions, across a tenant, is present in NWO365 since February 2018.[/tds_info]
  5. No “inline functions”.
  6. No “UDA” actions.
    [tds_info]  As UDAs are really not going to appear in O365, there is going to be a decent counterpart – “Component Workflows” which were announced during the “Nintex Xchange 2018“.[/tds_info]
  7. No action sets.
    [tds_info]  Action Sets are present in NWO365 since end of June 2017[/tds_info]
  8. No support for custom actions.
    [tds_info]  During the mentioned above conference “Nintex Xchange 2018” Nintex has also announced introduction of “Xtensions” functionality to Office 365, what will bring the possibility of creating your own actions.[/tds_in

Some examples of the mapping for actions from on-prem to online:

Action in Nintex On premiseAction in Nintex for O365
Query LDAPNo such feature available in O365
Query Nintex ReportingNo such feature available in O365
Capture document set versionPossibly via the "Office 365 Query List", but haven't tested it.
Copy to file shareNo such feature available in O365
Copy to SharePointFor copying list attachements there is a workaround described in the Community (using Office 365 Upload File action). No feature for copying Infopath attachments.
Create item in another siteOffice 365 Create List Item or Document Set
Create listNo such feature available in O365. Only via REST API.
Declare as recordNo API set for record declaration in Office 365 as yet, thus no feature available (https://nintex.uservoice.com/forums/218291-3-nintex-workflow-for-office-365/suggestions/4476977-declare-a-record)
Set field valueSet Field in Current Item, or in case of different site: Office 365 update items
Undeclare as recordNo API set for record declaration in Office 365 as yet, thus no feature available (https://nintex.uservoice.com/forums/218291-3-nintex-workflow-for-office-365/suggestions/4476977-declare-a-record)
Action setNo such feature available in O365
Calculate dateAdd Time to Date or Set Time Portion of Date/Time Field
Collection operationThis is split. Each operation is a separate action: Add Item to Collection, Check if Item Exists in Collection, Clear Collection, Count Items in Collection, Get Item from Collection, Join Items in Collection, Remove Duplicates from Collection, Remove Item from Collection, Remove Last Item from Collection, Remove Value from Collection, Sort Items in Collection
Retrieve dataNo such feature available in O365. Only workarounds using ex. saving values on the list and getting them in a second workflow.
Store dataNo such feature available in O365. Only workarounds using ex. saving values on the list and getting them in a second workflow.
Wait for check out status changeNo direct counterpart. You can use: Wait for Field Change in Current Item and set ex. "Checked out is equal null".
Complete workflow taskNo such feature. Only by Update List Item - set Task list item status to "Complete"
Delegate workflow taskNo such feature. Workaround only: https://community.nintex.com/community/build-your-own/blog/2015/02/26/delegation-in-o365
Request approvalNo such feature. Workaround only: https://community.nintex.com/community/tech-blog/blog/2016/05/05/no-to-do-or-request-data-tasks-in-o365-no-problem
Request dataNo such feature. Workaround only: https://community.nintex.com/community/tech-blog/blog/2016/05/05/no-to-do-or-request-data-tasks-in-o365-no-problem
Request reviewNo such feature. Workaround only: https://community.nintex.com/community/tech-blog/blog/2016/05/05/no-to-do-or-request-data-tasks-in-o365-no-problem
Task reminderFeature only available as a configuration inside "Assign a Task" and "Start a task process" actions.

Summary

I just felt that this post cannot end up like this. So there is a hope for all of that. Both Sharegate and Nintex are working to develop their products – Sharegate to support migration for new actions (I heard UDAs and Action Sets are on their roadmap), what is Nintex working on you can find here: 3 – Nintex Workflow for Office 365: Hot (300 ideas) – Customer Feedback for Nintex.

I wish you all all best in your migration projects 🙂

If you have any questions or stories you’d like to share feel free to leave them in comments. I’m sure there are more issues I am not aware of yet  🙂

You can also download a file containing all actions with information whether they are supported or not and possible workarounds:

[wpdm_package id=’709′]


Tomasz Poszytek

Hi, I am Tomasz. I am expert in the field of process automation and business solutions' building using Power Platform. I am Microsoft MVP and Nintex vTE.

2 Comments

Post a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.