Provision a Hub of sites in Modern SharePoint. The Execution.

Reading Time: 5 minutes

Do you need to auto-provision a common SharePoint site in your Office 365 tenant and then make a Hub of them? This is a common request many of us are being asked to do. Examples of the types of sites that fall into this bucket are: Project sites (Project Hub), Team sites (Team Hub), and Customer sites (Customer Hub). This post series walks thru the steps to auto-provision Customer sites in a Customer Hub. The intent of the series is not to be prescriptive on what should go on your Customer site, but to demonstrate the technique that could be applied to your own provisioning use-case. Let’s go!

According to Wikipedia, a CRM is a Customer Relationship Management approach to managing a company’s interaction(s) with current and potential customers.

Although there are several dominant players in the CRM space today offering full-blown products for managing these interactions, I was recently asked to come up with a CRM Light  (i.e. Customer Hub) using current tools and provisioning capabilities in SharePoint Online and Office 365. After all, why not use the tools already available to you instead of purchasing another? (SharePoint, Planner, Outlook, ToDo, OneNote, etc.) Now that I’ve seen this entire solution built end-to-end, I’m confident the Customer Hub would suffice for many organizations’ light-weight CRM needs.

Credit: The approach to this solution was based on a session given by Drew Madelung and Vlad Catrinescu at the Microsoft Ignite 2018 session titled: From start to finish: How to create your modern SharePoint site provisioning solution

This is part 3 of a 3-part blog post series to show the final product.

In part 1, we designed the site and information architecture and determined the overall process for the solution. In part 2, we built the components of the solution. Now, it’s time to see it in action!


  1. Add an item (new Current customer) to the Customer Details list
  2. Microsoft Flow will automatically run and invoke the Azure Runbook
  3. Azure Runbook will provision the site (and a few other things)
  4. Email will be sent to the requester and Customer Account Rep
  5. Voila! We’ve built a CRM-Light!

To demonstrate this, I’ll add a new Manufacturing Customer called Tailspin Tools in the East Region.

Add a new Customer

This is a simple matter of adding a new item into the Customer Details list with a Current status. In the image, the request status is Pending(default) and there is no URL yet filled in.

Alternatively, a customer lead can also be added with a Potential status (like XYZ Enterprises above). Once the customer has been won, the end-user would update the customer status to Current which would trigger the Flow to provision a Customer site.

Before the site is provisioned, the top navigation in the Customer Hub looks like this under the Manufacturing navigation node:

Microsoft Flow Runs

The Flow will run and invoke the Azure Runbook. It passes several parameters to the Runbook based on what the end-user entered in the list. (Customer Name, Account Rep, Navigation Node – based on the Industry they selected, and a Site URL built from the Customer Name)

Azure Runbook Runs

This is the brains of the solution. Based on the input parameters (image), it provisions a new Modern Team site, applies the Site Design (including adding the Customer Contacts list), adds the Account Rep identified in the Customer Details list item as an Owner, and adds the new site to the Customer Hub’s navigation under the Manufacturing navigation node.

The Tailspin Tools Modern Team site has been successfully provisioned with the Customer Contacts list created and added to the Quick Launch navigation on the site.

To confirm the Site Design applied, select the Gear icon on the top right of the Customer site and select the Site designs option. It will display the site design applied to the site:

Also, the Account Rep (Susan Smith in this example), has been successfully added to the Azure AD Owners group for the Tailspin Tools Modern Team site:

Control returns to Flow

Once the Runbook finishes executing, control is returned to Flow and the Customer Details list item on the Hub is updated with the Site URL and and updated SiteRequestStatus.

Email Sent

Using native Office 365 email notification behavior for a Modern Team site when Ownership is granted to a user, an email is automatically sent to both the requester of the site and the Account Rep.

Customer Hub is the “CRM Light”

What does the Hub look like? Navigation now includes Tailspin Tools under the Manufacturing navigation node.

It has all Customer Sites joined to it which means it is now our new CRM Light. Here are some advantages to the Hub model:

  • Search is now scoped to all Customer Sites in the Hub
  • Hub navigation will automatically include a link to all Customer Sites organized by industry vertical
  • The Customer Details list can be sliced and diced by industry vertical and region (and you could include many more pieces of metadata as required)
  • Contacts from across all Customer Sites can be surfaced on the Customer Hub in a Highlighted Content Web Part with a Type of Contacts
  • All Customer sites will link back to the Hub with shared navigation
  • Using site designs, we can continue to configure a consistent Information Architecture(IA) across all Customer sites joined to the Hub allowing us to customize it to suit the needs of the organization
  • We can include master templates on the Customer Hub for all sites to have access to:

My Parting Thoughts

Although this post series was a prescriptive design for a CRM Light, the same technique could be used for many other use-cases. If you have more sophisticated site requirements, you could add a PnP provisioning template into the Azure Runbook as was demonstrated by Drew and Vlad in their Microsoft Ignite 2018 session. You may want to look at that option if you have advanced CRM capabilities requiring a higher level of customization.

The possibilities are endless with this combination of tools and I can’t wait to build more solutions using them!

Thanks for sticking with me. 🙂


Leave a Reply

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