Using Site Designs to Manage Project Life Cycles

Site Designs are a relatively new capability in SharePoint Online. While they were introduced in 2018, there hasn’t been much change to them since. This is disappointing to me, as I believe they have tremendous potential.

One possible use is to manage the life cycle of a unit of work. In this post, I’ll talk about projects, but it could be any set of work your organization undertakes.

Site Designs allow us to do such things as create lists and libraries, apply a theme, install an add-in or solution, set permissions, etc. (See: Site design JSON schema)

We can also trigger a Flow, so that opens up a whole additional world of possibilities. If we can’t accomplish what we need to do in the Flow, we can also call a custom Web Service from the Flow. In the Web Service, we can do anything CSOM opens up to us. In other words, Site Designs are the entry point we can use to do pretty much anything we need in our sites.

So what does this have to do with a project life cycle? Well think about it like this:

  • A project may start as just a proposal. In order to work on that proposal, we may need a library to store the information we are using to put the proposal together. (For some reason, many organizations I work with don’t see the value of connecting the proposal artifacts with the project itself. I do!)
  • Once the proposal is accepted, we need some libraries to store our working documents.
  • When the project starts to wrap up, we’ll want to collect our important learnings and high value artifacts for later reuse.
  • Finally, when the project is truly done we may want to “archive” it.

Site Designs could help us move through this process:

  • When we create the site, we might apply the Proposal Site Site Design. It might create a Proposal Documents library and associate the site with the Active Proposals Hub Site. Associating with the Hub Site would set the theme to “active proposal blue“.
  • If the proposal is accepted, we might apply the Project Site Site Design. This Site Design might instantiate a few Content Types, create a few Document Libraries and apply the Content Types, associate the site with the Active Projects Hub Site, and add the Executive Team to the Site Members. By associating the site with the Active Projects Hub Site, the theme would be set to “active project green“,
  • When the project is nearing completion, we could apply the Knowledge Capture Site Design. This might instantiate a few Content Types, create a Document Library to capture the important outcomes and apply the Content Types, set the theme to “knowledge capture teal“, and add the KM Team to the Site Members.
  • When the project wraps up, apply the Archive Project Site Design, which disassociates the site from the Active Projects Hub Site and associates to the Archived Projects Hub Site. (This would naturally apply the “archived project grey” theme.)

This is a made up series of stages, but I think you could see something similar applying in your world. Because Site Designs are generally additive and always should be idempotent, each application of a new Site Design should have no detrimental effect on the existing containers of content.

Depending on what information you track in the site itself or in another site – perhaps in a Project Inventory list – you could even apply these Site Designs quasi-automatically. For example, apply the Knowledge Capture Site Design when the Project End Date is within two weeks. I say quasi-automatically because it may make sense to add an approval step so if something about the project is out of band, the project manager can decide not to progress yet.

Talking this through with Derek Cash-Peterson (@spdcp), he pointed out there are opportunities to automate much of this as well. We could run a Flow on the Project Inventory list and when a project changes status or a key date is approaching, we could automatically apply the Site Designs. We could also use the search API to find sites with a specific piece or set of content and apply a Site Design with a Flow based upon that discovery.

In other words, if you have a business process you want to support, Site Designs could be an important piece of the puzzle.

Site Designs are powerful today, and I’m hoping they will be even more powerful in the future. Supporting a project life cycle is just one possible example of how we might choose to use them in our overall architecture.

Similar Posts

5 Comments

  1. OK good to see how we can implement the stages in project life cycle example you have taken. thanks for that. How the content changes its shape when you apply new content types in each stage on the site using site designs? Is there any script which does this to update content types for each document, or just leave the existing documents as is and new content types applies only to new docs users are uploading after new site design applied?

    1. @Praveen:

      The goal with Site Designs is to be able to apply them repeatedly as you enhance them. Doing that successfully means thinking about the idempotency of them as realizing that they should mainly build up, as they have little tear down capability. You can absolutely roll out a new Content Type by adding the Site Script to create it to a Site Design.

      Site Designs aren’t really meant to do content conversions, though. For that, you might want to use a tool like Sharegate. You could run a Flow at the end of the Site Design which did some content conversion, though.

      M.

  2. Good use case.
    When I wanted to automate stuff, for One Note for example, it lacked One Note Graph API or Flow Actions. Considering the manual tasks, we fall back on a manual creation process. Hope to use site design soon where I could program everything

  3. Hey Marc,

    do you know if i need a premium connector for triggering a Microsoft Flow from a site design? When yes. How many licenses do I need?

    Only for the designer?

    Regards,

    Andre

Leave a Reply

Your email address will not be published. Required fields are marked *

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