Ever had the customer request to create a reusable project site? Sounds familiar, right?
Now you think, ‘that’s a piece of cake’. Just create a new site template (Not the best way, I know, but fast and low budget to start with), maybe use some code or Powershell for easy provisioning and off you go.
That’s at least what I thought before I knew it involved SharePoint Online in combination with Nintex. In that case, it’s not that easy anymore. This blogpost tells you about the things I run into and what solution finally did the job.
What are the requirements
The customer wanted a provisionable project site on SharePoint online. To support the business process of the projects, they wanted workflows sending tasks and set statuses and field values within the project site as well as across site collections. Due to the large amount of data to be stored a site collection per project is needed.
What barriers did I run into
Save as template – First of all Microsoft doesn’t promote Site Templates for a long period now, since they give all kinds of issues. On SharePoint Online, it was still possible to use it, but strongly advised NOT to use it. Now, as I write this, this option is even no longer available in the site settings. So, what other options do we have?
Provision with Nintex – The workflow can create new site collections, unfortunately all based on existing site templates. Since you can’t create new lists or libraries or declare new columns with Nintex, we had to fall back to a custom site template if we wanted to use this solution.
Provision with Powershell or custom code – Besides it’s a hell of a job to script a complete site with powershell and you always need developer to maintain your site and you preferable have to do somethings with Azure which we can all overcome, the biggest problem is that Nintex (still) doesn’t have a SDK ready for Nintex Online. So there’s no way to provision the created workflow’s in an easy manner.
The manual way - Creating every site manually (preferably on a, I don’t dare to say, site template) has crossed my mind but was gone pretty fast. There’s the high risk of inconsistency and though the workflows can be imported it’s highly unmaintainable, especially the permission settings.
So all roads seemed to be blocked. The best I could get, was starting with the un-promoted site template. And so I did. Created a sweet looking template based on a default team site, added lists, libraries and the Nintex app and some of the workflows. Even added a good looking Google app. Just a few clicks away from a more or less deployable solution I hit the ‘Save as Template’ link. But instead of a ‘Succeeded’ I received an error ‘Unfortunately, something went wrong. This site can’t be saved as template, This site contains apps that do not work in templates: Nintex Workflow for Office365’.
(Don't freak out, it's Dutch :-))
It turns out that the app-model prohibits the use of third party apps when saving as site template! Now I was back at starting point.
The final solution
After google | Bing | colleagues | Nintex support, my excellent colleague Katharina pointed me in the direction of Sharegate. I knew the tool for their migration strategy but wasn’t aware of the close partnership with Nintex. On top of their Enterprise solution, they offer the possibility of migrating, and also provisioning, Nintex workflows back and forth to all SharePoint on prem and online solutions. It copies (or moves) all list and libraries (off course) but also the Nintex app and workflows as well as the permission settings. It also offers the Insane mode, which is a built in deployment of the Office 365 Migration API.
(Click picture to start 6 min Sharegate How To video).
So I finally got it working by creating an empty base site (not a site template!!) with all functionality, workflows and permissions. With Sharegate I easily create a new copy of the base site as a new site collection. And with very little manual intervention I have a new project site available. It’s even possible to script the copy part of it, but for now we start it manually.
Good thing about this approach is that we can easily, by the means of a power user, add new functionality or change permissions on the base site and have all future sites based on this new functionality. Even better than the save as site template!
Still it’s not 100% perfect though. Sharegate doesn’t support the copying of Microfeeds and you can’t delete Microfeeds from the site if you don’t need it. So Sharegate will mark this as an error. Also other than Nintex, no third party apps are supported (because of the app model restriction). So my Google app had to leave the site.
What did I learn from all of this?
- Microsoft is going very fast with SharePoint online, not all functionality is properly thought over, especially the app model restrictions
- Nintex is working hard to get their workflow actions at the same level as on prem, but there’s still a gap
- Sharegate is by definition a few steps behind Nintex but the partnership seems strong enough to be very close
And one other lesson learned: save Nintex Online workflows in Internet Explorer because Chrome or Edge can give undocumented errors that doesn’t seem to do any harm (it publishes and runs like you expect) but it causes Sharegate to error on the workflows. Better be warned.