How many times have you had a need to provision sites? Project sites, Teams sites and whatever kind of other sites. So many times I hear people say that Microsoft Flow is only there for small processes.

To implement a provisioning process you will most likely have created a site requests list, where users can add a list item and then a web service kicks in and handles these site requests and sites get provisioned like magic.

Recently I created a solutions where my aim was to :

  • To provision sites without any code, or if needed as little as possible
  • Have an option to manage my site templates
  • Update sites using the template as templates change

Site Requests and Sites overview

I started by creating a few SharePoint lists in my modern team site that I use to manage my provisioning process.

  • Site Requests –  this is where users can provide the details of a site request
  • Sites – this list displays contains the active sites
  • Site Templates – this list contains the details for each type of site

With the column formatting options in the modern look-and-feel  you can even make these lists look great within no time.

Then as site requests are added to the Site Request list an approval flow is started within Microsoft Flow and on approval the site is provisioned according to the definition in the template site. I had a use some HTTP requests to add lists and web parts to the sites. But that was possible using Microsoft Flow’s Send an HTTP request to SharePoint.A new site request was submitted approval dialog

In my case the Team Sites that were created were close to the out of the box team sites and only a few additional lists needed to be added to the standard template.

List of Site Templates in SharePoint

The details of each element of the template is specified in a 4th list, Site Elements

List of Site elements

This is where each additional element (compared to the out of the box site site), can be specified. I’m using list item attachments when I want to upload files to SharePoint and the details field to specify the details of lists, web parts and any other elements. To make it easy for myself I’m using the data in the same format as I would need in the REST API calls that the Flow process will need to make.

Are you interested in using the above process in your environment? Then please leave a comment below and then we can work together to implement a similar process as the above in your organisation.

 

Advertisements