Should I use the PnP provisioning engine or use a Site Script to build a provisioning process for a client?

Often, this is a question that I’ve had in conversations with colleagues and I find myself considering. The answer, as usual, is “it depends”. A slide that I find helpful to understand this dilemma on the provisioning process is from a presentation by Laura Kokkarinen.  Note: Some things might have changed since then, but I don’t think they’ve changed much.

Image displays unique features between the PnP provisioning template and site designs
Credit to Laura Kokkarinen –

A Manual Approach for Admins

To begin, one thing that I do appreciate about Site Designs/Scripts is that they’re available through the SharePoint UI. This means that you’re offering Admins a manual approach for provisioning a site based on a custom template. No matter how low friction you make a site request process, there’s always going to be that one executive type who will refuse to use it.

Depending on how robust your provisioning template is, you may need a more powerful, tool like the PnP Provisioning Engine. This is because there may be things that you just can’t do with a Site Design.

But, what if you want to still enable users to create sites using the SharePoint UI?

The Solution, a PnP Provisioning script

Fortunately, with a little setup, you can have your Site script trigger a PnP Provisioning script. It involves creating a flow that calls an Azure Function that executes the script. This is too much to get into here but a process that’s well documented.  It’s the best of both worlds, right?  You can read more about site designs, scripts and how to create both by reading the official documentation.

Or, if you’re interested in finding a partner to help you design and implement templates, governance, and/or provisioning, reach out here and we’d love to help.