SharePoint Site Provisioning in Office 365

by | Jan 15, 2019 | Blog, Provisioning, Site Collections

Provisioning in Office 365

What is SharePoint site provisioning?

SharePoint site provisioning is the process of creating and configuring SharePoint sites programmatically based on business requirements.

A SharePoint site provisioning tool can help to control site sprawl and other governance requirements in an Office 365 tenant.

What should a SharePoint site provisioning tool do, other than creating sites?

Other than creating and configuring SharePoint sites, a SharePoint site provisioning tool should also provide support for governance and lifecycle management. This allows sites to be created in a controlled and consistent manner, managed and maintained through their life and then disposed when they are no longer required.

One such provisioning tool for Office 365 is ProvisionPoint. ProvisionPoint is more than just a SharePoint site provisioning tool. It is a provisioning, lifecycle and governance tool for SharePoint sites, Office 365 groups and Microsoft Teams.

This post looks at the different aspects of SharePoint site provisioning supported by ProvisionPoint, specifically around site configuration.

PnP Provisioning Templates

What are PnP Provisioning Templates? PnP Provisioning Templates are a mechanism of defining granular configuration options for a wide range of components in a SharePoint site in an xml schema. The template can be applied to a SharePoint site and all the configuration will be set on the site components. PnP Templates are a very powerful way to apply configuration to a SharePoint site and can be used to (to name a few):

  1. Create lists with content types, views, content and more.
  2. Set permissions on the site and lists, break permission inheritance and more.
  3. Activate and deactivate features.
  4. Install SharePoint Addins, SharePoint Framework web parts and extensions.
  5. And the list goes on…

In ProvisionPoint, a service definition can be configured to create a SharePoint site using one of the site templates available in the tenant and apply a PnP Provisioning Template. There’s no need for any additional PowerShell commands or anything like that. There’s even an option to generate a PnP Template from a model site.

When a SharePoint site is created from this service definition, the site is created and the PnP Template is applied. Any issues are handled in ProvisionPoint and all the progress is logged and the request can be restarted when the issues are resolved or passed if they were transient issues in Office 365.

Using PnP Templates is the most powerful way to configure a SharePoint site during the ProvisionPoint provisioning process.

SharePoint Site Designs

What are SharePoint Site Designs? SharePoint Site Designs are a mechanism of running (configuration) actions against a SharePoint site. They consist of one or more Site Scripts. A Site Script has one or more actions that are run in sequence. The available actions can be found on the Site Designs JSON schema reference page and include:

  1. Create and configure lists
  2. Apply a theme
  3. Set a site logo (not for Office 365 groups)
  4. Join a hub site
  5. Trigger a flow
  6. And (a few) more…

The most interesting action for me here is the action to trigger a flow. It’s like a fall back to call a flow to run more configuration actions that are not supported in Site Designs.

The Site Designs are held in Office 365 and are surfaced in several places such as the standard create site page and the hub site settings page. A Site Design can also be applied programmatically to a site after it have been created.

In ProvisionPoint, a service definition can reference an existing Site Design in Office 365. When a site is created from the service definition, the site is created and the Site Design is applied.

Custom CSOM code

ProvisionPoint can call a webhook before the provisioning process starts (the pre-webhook) and after the provisioning process completes (the post-webhook). The webhook can have many providers but we mainly use Azure Functions.

The pre-webhook allows custom code to be run prior to the provisioning process to set some pre-requisites or to perform some checks.

The post-webhook allows custom code to be run after the provisioning process has completed. It can be used to further configure the site with CSOM to set aspects that are not supported in either Site Designs or PnP Provisioning Templates. It can also be used to do more business specific configurations or call out to other systems to perform some actions. The possibilities are endless here which makes them a very powerful addition to the provisioning process.

Putting it all together

We’ve discussed three different configuration methods that can be used in a SharePoint site provisioning process, PnP Provisioning Templates, SharePoint Site Designs and Custom CSOM code. With ProvisionPoint as your SharePoint site provisioning tool, you don’t need to make a choice between which one to use and accept the limitations. You can use any combination of these three methods and use each for the benefits they provide, making the best use of their respective feature sets. No limitations, no compromise, just harness the full power with ProvisionPoint.