# How to Build a Project Template in SharePoint With Document Sets

> Set up a SharePoint document set so every new project starts with the same folders, template documents and project metadata, ready the moment it's created.

- URL: https://www.danielanderson.io/articles/sharepoint-document-set-project-template/
- Author: Daniel Anderson, Microsoft MVP (https://www.danielanderson.io/)
- Published: 2025-04-15
- Updated: 2026-10-26
- Video: https://www.youtube.com/watch?v=Y8N-vzuBZOE

## Key takeaways

- A document set's Default Content setting lets you upload template files and give each one a folder name, so every new set is created with those folders and documents already inside.
- Each default file can be given its own content type, so a project initiation document arrives with initiation-specific columns while other files use a different one.
- The setting Add the name of the Document Set to each file name prefixes every default file with the project's name, which keeps copies of the same template apart in search.
- Power Automate's Create new document set action can create a document set when a list item is added, and an Update item step can write the set's link back to the list.

To build a project template in SharePoint, create a custom document set content type for projects, add it to a library, then open its **Document Set settings** and upload your template files under **Default Content**, giving each one a folder name. From then on every new project document set is created with the same folders and starter documents inside, plus the project's own columns on the set.

In my demo, every new project in a Projects library arrives with a **Project initiation** folder holding the initiation template and a **Planning** folder holding the schedule template, so nobody builds the folder tree by hand. If you're new to document sets, read [what a SharePoint document set is](https://www.danielanderson.io/articles/sharepoint-document-sets/) first.

## Before you start

- **Document sets activated.** The **Document Sets** feature must be active under **Site collection features**. Without it, **Document Set Content Types** won't appear as a parent category.
- **Owner-level access.** Creating site content types and changing library settings needs a site owner.
- **Your template files** on your computer. Mine were a project initiation document and a project schedule.

## How to create the project template

1. **Create the content type.** Go to **Settings**, **Site information**, **View all site settings**, then **Site content types** and **Create content type**. Name it (mine was Project document set), set **Parent category** to **Document Set Content Types** and **Content type** to **Document Set**, and select **Create**.
2. **Add the project columns.** On the content type, add new site columns: **Project manager** (person), **Project start date** and **Project close date** (both date and time).
3. **Create the library.** From the site, select **New**, **Document library** and name it Projects.
4. **Allow content types.** In the library open **Settings**, **Library settings**, **More library settings**, **Advanced settings**, set **Allow management of content types?** to **Yes** and select **OK**.
5. **Add the content type.** Under **Content Types** select **Add from existing site content types**, find Project document set and select **OK**.
6. **Open Document Set settings.** In library settings select the Project document set content type, then **Document Set settings**.
7. **Add the default content.** Under **Default Content**, choose the content type, type a folder name (Project initiation), select **Browse** and pick the template. Select **Add new default content** to add the next one: folder Planning, file the schedule template.
8. **Save and test.** Select **OK**, go back to the library, select **New**, **Project document set**, fill in the form and save. The new set opens with both folders and templates inside.

## Give each template its own content type

By default the template files use the plain **Document** content type, so they can't carry columns specific to that kind of document. I created a second site content type called **Project initiation document**, with **Parent category** set to **Document Content Types** and **Content type** set to **Document**, and gave it a **Project initiation date** column. Then, back in the Project document set's **Document Set settings**:

1. Under **Allowed Content Types**, add Project initiation document so it can live in the set.
2. Under **Default Content**, change the initiation template's content type from Document to **Project initiation document**.
3. Select **OK** and create a new project to check.

In my test project the initiation document came through as Project initiation document while the schedule in Planning stayed as Document. Add the **Content type** column to the library view to check yours.

## Prefix each file with the project name

In **Document Set settings**, the box **Add the name of the Document Set to each file name** puts the set's name in front of every default file. It was ticked in my demo, so each project's copy of the initiation document carried that project's name. Leave it on, otherwise every project holds a file with the same name and search results turn into a list of identical titles.

## Create the document set from a Microsoft List

If you track projects in a Microsoft List, Power Automate can create the document set for you. I built this on the **Content scheduler** list template, with an Assets library holding a document set for each post.

Video: A Microsoft List item creates a document set through Power Automate and gets a link back to it (2023 interface). https://www.youtube.com/watch?v=7dl5s37zBKU

The flow has three parts:

1. **Trigger: When an item is created**, pointed at the site and the list.
2. **Action: Create new document set** (SharePoint connector). Choose the site and the library, set **Document Set Path** to the item's **Title** so the set is named after the list item, and fill **Content Type Id** with the ID of your document set content type. The base Document Set content type ID starts with 0x0120D520; a custom one's ID is longer, and you'll see it in the browser address bar when you open the content type from library settings.
3. **Action: Update item** on the same list, using the trigger's **ID**. Build the link from the library's URL plus the item's title and write it to a link column. Pass the item's existing values back into its other fields so the update doesn't fail on a required column.

With some column formatting on the link column, each list item shows a button that opens its document set.

## Where should you set default content?

The steps above set default content on the library's copy of the content type, so it applies in that library only. If several libraries need the same template, set it up on the site content type before adding it to them. And if dates show in US format, change the site's **Regional settings**.

## Why I keep project templates small

I'd rather a template hold three documents people always use than fifteen they delete. Every default file ends up in every project, so an unused template multiplies into hundreds of empty documents that search and Copilot will happily find. If only some projects need a file, keep it in a templates library and let the project manager pull it in.

Then give the templates an owner. Default files are copied when each set is created, so changing a template only affects projects created afterwards, and running projects keep the old version. Without someone deciding when a template changes and whether running projects need it, you end up with several versions of the initiation document and no way to tell which is current.

I'd also put more effort into the set's columns than its folders, because project manager, dates and status at the set level turn the library view into a project register ([folders vs metadata](https://www.danielanderson.io/articles/sharepoint-folders-vs-metadata/) has the reasoning). For permissions on individual projects, see [setting folder permissions in SharePoint](https://www.danielanderson.io/articles/sharepoint-folder-permissions/). My free [SharePoint Document Sets Blueprint](https://www.danielanderson.io/blueprint) walks through document sets, content types, shared columns and views in 23 minutes.

## Frequently asked questions

**Who can create a new project from the template?**
Anyone with edit access to the library can select New and the document set name, and the folders and templates are created for them. Changing the template in Document Set settings needs permission to manage the library.

**Do I need Power Automate to create document sets automatically?**
Only if you want them created from somewhere else, like a list item or a form. Inside the library, New and the content type name creates a set with all its default content, with no flow involved.

**Can people still upload their own files to a templated document set?**
Yes, as long as the files match one of the set's **Allowed Content Types**. If you've removed plain Document from that list, uploads take one of your custom content types instead, so add the Content type column to the view and check which one they got.
