Save library as template in SP online

Save list or library as template

Many times when you setup a document library (or a list) with lots of metadata columns, views, etc you want to save it as a template so that you can reuse that model on all other sites without having to do the same setup over and over. But if you go to the Settings of a modern site in SharePoint online you will not find a link to “Save list or library as template” anymore. As an on prem user, you are used to work like this, using templates to be able to setup a list or library quickly somewhere else and that will save you lots of work since you don’t have to recreate the same columns/views etc again. Here are two options to achieve this in SharePoint online:

Option 1: Using Powershell

To enable the “save as template” option you must run a Powershell command. I tried this and it works just fine: you will see the link in the library settings and if you go to “Add an app” your list template will show up as we are used to. Note: you must go to “add an app” because in modern views, if you click on “New” and “Document library” you will not see the list of templates.

When things like this are removed or hidden in SharePoint online, it is of course for a reason, but I cannot tell or judge if it’s a risk to enable this link using the PS command. Maybe someone who reads this knows? Then please leave a comment, it would be much appreciated! It has worked fine in my tenant and the libraries that I added using my template works exactly the same as any other modern library. But I can only say: run this at your own “risk” 🙂

The following cmdlet must be run on the site where the library is that you want to save as template, and then also on the other sites where you want to use the template. So you are not enabling the command on your entire tenant. Open SharePoint online management shell and run the following cmdlet:

1 $SiteURL = “”
2 Connect-SPOService -Url “”
3 Set-SPOsite $SiteURL -DenyAddAndCustomizePages 0
Now when you go to a library (or list) settings you will see this link:

Option 2: Using Content Type Hub

The second option is to use the Content Type Hub. You will not achieve the exact same result as when using a template, but you will get the site columns at least. Go to the content type hub by adding “/sites/contenttypehub” after your tenant url. You cannot publish only the site columns (again: WHY? I cannot answer this either, but it’s not good) so you have to create a Content Type first. I added one called “Word template” and it will contain my site columns. As soon as you add this to your library, all columns are automatically added too. The steps are:
Create a new Content Type, select “Document Content Types” and “Document” as parent content type and add it to your own custom group (I recommend to add your own group and name it after the company or the area where it will be used because then it will be easier for the users to find the custom content types)
Then add the site columns on “Add from new site column”, configure it and then store it in a custom group (then you will be able to add any of these site columns from any site in your tenant).
When your columns are added, don’t forget to click on “Manage publishing for this content type” and click on “Publish”!! Otherwise nothing will be pushed out to your sites! And if you update this content type, you must click it again and select “Republish”. The publishing can take up to one hour.
When all this is done and published, you can go to the library where you want these columns. First you must enable the option “Allow management of content types” in advanced settings of the library, otherwise you will not be able to add your new own content types:
A new section “Content types” is added in the library settings. Click onb Add from existing site content types and select your own content type from the list. Now the columns are also added into the library and you can make them visible on the “All documents” view.
This is not exactly as what you get using a library template, but at least you are not modifying any backend settings and this is certainly a recommended solution. What you don’t get using this is any custom views, filters, etc but still a good alternative.

Episode 14 of WitGirls Podcast SharePoint is on FIRE!!

We have followed Ignite from Stockholm of course and discuss some of the news (there were so many this year!) around SharePoint, OneDrive and Teams and some more… We need an extra show about the news only! You can watch all the on-demand sessions at

Lise has worked as an extra for two different tv-shows and one of them will go up on Netflix next March, we will post more info on that then! ?

We are very proud to announce that we have our own theme music now and it’s made by Mikael Wejsflog, THANK YOU so much for this, we love it!!! You can hear the full track on our Soundcloud page on

If you like our podcast, please rate us in iTunes, we would be so happy!
Thank you for listening!
Cheers from Lise (@sharepointbabe) and Christina (@bananisen) and we are @witgirlspod on Instagram.

Check empty fields before Submit

Some of you might shiver now, but this blog post is about InfoPath! Yes! That old form application 

I still think it’s good though for on-prem customers who don’t have PowerApps available.

I built a form that I needed to validate before the user press “Submit” and the validation is to check if mandatory fields has a value. So simply put: check for empty strings before Submit. I tried using Rules but you can only have up to 5 conditions, and I have 8 fields that must be checked. So that did not cover all fields of the form. Here is a screen shot of all fields in the form that are mandatory:

So how do you validate if fields are empty on a web enabled form?

You can not use the Validation rules that are built in, because they will only work when you fill in the form in InfoPath client. But, we can check if the field has any text in it.

The solution:

I added a text field that I called “AllEmptyFields”, that will be hidden on the form. And in that field I added the following formula:

string-length(YourFieldName) * string-length(YourNextFieldName) * …  add all the fields you want to check!

So what you are doing is counting if there are any strings inside the field, and if they don’t it gets the value 0. Now add all the fields that you want to check, and separate them by the * sign. Which means that this field will default have the value 0 and then, when you have filled in all fields in the form, it will calculate a number that simply counts and sums all the characters in those fields. (The screen shot shows the formula in Swedish – sorry. But you get the point, right?)

Then on the Submit button you add a Formatting rule. The rule is to hide the Submit button if the calculated field “AllEmptyFields” contains 0:

If “AllEmptyFields” = 0 then Hide the control (and the control in this case is the Submit button):

Now when I fill in the form, the Submit button will not be visible until all mandatory fields are filled in! Very nice and no risk of empty forms being submitted.

Easy ways to change the look in SharePoint online

Are you using modern team sites or communication sites in SharePoint online? Then there are some good news for you when it comes to changing the look on them. Some of the news are easy to change in the UI and others you must use PnP Powershell to enable.

Change the theme on a modern site

There is a new setting called “Change the look” on the wheel menu.

This will open a pane where you can choose what theme you want for your site. If you don’t see a list of different themes, then the tenant Administrator might have prevented users from changing themes. Read more here. Select a theme:

When you select the theme a new link “Customize” will appear that let’s you do further customizations. The “Header emphasis” controls the background color of the site header. Default it is set to “None”:

Change the header of a site

Here are screen shots of how the different header emphasis looks like:




Change the look on a hub site

If you have a hub site then you can change the theme and all the connected sites will inherit the same theme.

Change the look on a classic site

You have the same option “Change the look” on classic sites, but then you come to this old familiar page:

Mega Menu – is it coming or just a rumour??

This is something that I have read about but not been able to activate on my sites. Not sure it has been released yet, or if it’s just a rumour… Or I just don’t know how to enable it 🙂 Anyway, when you enable levels in the navigation then you get that “fly-out” effect, which is annoying because if you click outside it the menu disappears:

I would like to use the mega menu instead to make the menu larger, more informative and easier to use. Now there’s supposed to be a PnP cmdlet (you cannot do this in the UI) called MegaMenuEnabled that you can set to True or False, that should control if you want to enable or disable a mega menu. But when I run that in PnP PowerShell I get the following error “The property ‘MegaMenuEnabled’ cannot be found on this object. Verify that the property exists and can be set”:

No luck finding it on this command either: Get-Command -Module *PnP* 

Guess I have to be patient, not my strongest side though! I will update this post after Microsoft Ignite, maybe that is something that will be launched there! Exciting!


Delete and Rename channels in Teams

“I have renamed a channel in Teams, and now the files are gone, help!”

That was the reason why I am writing this blog post. To start with, the connection between the Files tab in Teams and SharePoint works like this: when you add a new Teams team and a channel, a SharePoint site collection will be added (unless of course you choose to add a team based on an existing site). They are then connected and you can see this by going to the “Files” tab in Teams. Let’s say you add a new Team that is called “O365Projects”. Now this will generate a site collection with the URL “”. On that site a folder will be added into the Documents library, and it’s called “General”:

That connected SharePoint folder is then displayed on the “Files” tab of your team in Teams and the files within it, the “General” folder in example here:

When you then add another channel in that same Teams group, let’s call it “Instructions”:

Then a new folder called “Instructions” will be added in the Documents library in SharePoint:

So what happens if someone either Rename or Delete these folders? Because they are connected now. I will describe four scenarios, what the effects are if you do any of the following actions. An important note: while I was testing this I did not close Teams in between and sometimes it looked like renaming worked, but when I restarted Teams it updated and then it was not working, so it may look like it works in Teams and that is just because it did not refresh properly so be sure to restart Teams when you rename or delete channels!v

Scenario 1: Rename a channel in Teams

If you click the three dots after a channel, and then select “Edit this channel” then you can rename the channel.

I changed the name to “Trainings”. The effect was that the channel was renamed, of course, but the folder in my SharePoint documents library did not change name – it was still called “Instructions”. But.. the connection still works. If I upload documents into either Teams or SharePoint to that channel, the files are visible on both places. But of course, this could end up in confusion when you go to the SharePoint site and look for documents connected to that channel and the name is totally different. Anyway, this works, but not recommended. The natural step would be to change the name in the document library to the same, what happens then? That is in our next scenario!

Scenario 2: Rename a folder connected to a channel in SharePoint

So we changed the name of our channel in Teams to “Trainings”. Now we want to change the folder name in the SharePoint document library to the same, to avoid confusion, right. Okey here we go, in SharePoint on the folder, click the vertical dots and select “Rename”:

Go back into Teams, what happens there? The Files area is emtpy! And the reference on Files is still pointing to “Instructions”. So that will break the connection. As you can see the channel is “Trainings” but it wants to find files in a folder called “Instructions”, so if you are uncertain on what folder the channel is connected to, then you will see that in the top of the Files tab in Teams (here the yellow mark is on the “Trainings” channel which is connected to the “Instructions” folder):

And now what happens in SharePoint is that it will automatically add back a new folder in the library called “Instructions”! So SharePoint will automatically match the channels, if they do not exist in there. Now I both have my new “Trainings” and the old “Instructions” folder. And this is where it could get confusing, because now you have a channel called “Trainings”, which points to the “Instructions” folder which is empty because your files are stored in the “Trainings” folder…. :

Recommended solution: Move the files out of the channel (example: move all files from “Instructions” folder) to a temporary folder in SharePoint. Then delete the channel and folder, and in Teams create a new channel with the name you want. Then move the files back from the temporary folder into that new channel’s folder.

Scenario 3: Delete a channel in Teams

Okey let’s delete a channel in Teams and see what happens in SharePoint. I will delete the channel “Trainings”. Note the message that the files will still be available (it means now on SharePoint) and you can copy that link to go to the connected folder:

And yes, after deletion the folder is still on SharePoint. So that worked. What if I then want to restore the channel? You will find it on the Teams settings tab and Channels, there is section called “Deleted”. Choose to restore the channel there:

That worked because the connected folder was still on SharePoint.

What if we had deleted the folder in SharePoint also, and tried to restore the channel? Then it will restore the channel, and as soon as you click on the “Files” tab it will add back that folder to the library on SharePoint BUT the folder is… EMPTY!! So your files are gone! Teams will not restore your files. I looked in the recycle bin on SharePoint and you can restore the files from there, but it gets stuck on Restoring so not sure that will work. You cannot access the files inside folders from the recycle bin, so that may not work.

Recommended solution: For governance and traceability, do not delete the folders from SharePoint! Then you know you can always restore a channel after it is deleted and the channel will connect back to the original folder.

Scenario 4: Delete a folder connected to a channel in SharePoint

Let’s find out what happens if you delete a channel folder from SharePoint while the channel is still in Teams. I deleted the folder “Presentations” in SharePoint:

Went into Teams and the Files tab and it is empty, as expected:

Go back into SharePoint to find a new folder added called “Presentations”. So SharePoint will add a new folder automatically. What if we want to restore the deleted folder and files then? We did delete this by mistake! Well, that restore does not seem to work, it is stuck on “Restoring”.. So these files are probably gone!

Scenario 5: Delete a channel and add a new with the same name

What if we delete a channel in Teams, the folder and files are still available in SharePoint, and then we do not use the “Restore” but instead try to add a new channel with the same name? That will not be possible,  and you will get a message saying that the channel name is already taken:

Recommended solution: Go into the tab “Channels” and restore the deleted channel. Then the connection to the folder will work and you will get back the conversations etc.