SiteDesign¶
Best practise¶
- Best Practices on SharePoint Site Design
- SharePoint Modern Page Best Practices
- Site Designs for Good Information Architecture
- Site Design Deployment Made Easy
- How to create a Board of Directors Site in SharePoint Online
List templates¶
Modern Site Provisioning¶
- SPSBE18: New era of customizing site provisioning
- SPSBE2018-powershell
-
Provisioning complex Modern Sites with Azure Functions and Microsoft Flow – Part 1 – Architecture
- Provisioning complex Modern Sites with Azure Functions and Flow – Part 2 – Create and Apply Template
- Provisioning complex Modern Sites with Azure Functions and Flow – Part 3 – Post Provisioning Site Configuration
- Building SharePoint Site Designs with Themes and Azure Functions
- Update site design to all of your sites
Deploying¶
Flow / REST¶
- Invoking a Site Design Task using REST
- Invoking unlimited actions with Site Design Tasks and Microsoft Flow
- Create Site Script and Site Template Using Power Automate in SharePoint
- How to Apply Site template (Site Design) via Power Automate
- SharePoint PnP Provisioning with Azure Logic Apps and Azure Automation
- Modern SharePoint site creation with site designs and REST
Reports¶
Success runs
Get-SPOSite -Limit All | ForEach-Object {
$failedRuns = Get-SPOSiteDesignRun $_.Url | Get-SPOSiteDesignRunStatus | Where-Object {$_.OutcomeCode -ne "Success"};
if($failedRuns) {
Write-Output $_.Url
$failedRuns
}
}
Failed runs
Get-SPOSite -Limit All | ForEach-Object {
$failedRuns = Get-SPOSiteDesignRun $_.Url | Get-SPOSiteDesignRunStatus | Where-Object {$_.OutcomeCode -eq "Faulure"};
if($failedRuns) {
Write-Output $_.Url
$failedRuns
}
}
Tips¶
Know how many Site Designs and Site Scripts you have:
(Get-SPOSiteDesign | Measure).Count
(Get-SPOSiteScript | Measure).Count
Delete a Site Design or a Site Script based on its unique identifier:
Remove-SPOSiteDesign -Identity $siteDesignId
Remove-SPOSiteScript -Identity $siteScriptId
Delete all Site Designs or Site Scripts at once:
```Powershell
Get-SPOSiteDesign | foreach { Remove-SPOSiteDesign -Identity $_.Id }
Get-SPOSiteScript | foreach { Remove-SPOSiteScript -Identity $_.Id }