Did you know? In SharePoint Online, you can hide a list from the site experience without deleting data or breaking integrations. This is perfect for:
- “Technical” lists used by Power Apps/Power Automate that shouldn’t show up in navigation
- Configuration repositories for solutions
- Temporary migrations
- Reducing noise for end users while keeping permissions and integrations intact
What “hide” really means
- The list stops appearing in site navigation and standard UI surfaces
- Direct URLs and integrations (Power Apps, Power Automate, APIs) keep working
- Permissions do not change
- You can revert anytime
Hide a list with PnP PowerShell
Prereqs
- PnP.PowerShell module installed
- Permissions to manage the site/list
Steps
- Connect to the site
PowerShell
Connect-PnPOnline -Url “https://yourtenant.sharepoint.com/sites/YourSite” -Interactive - Mark the list as hidden
PowerShell
#Use the list’s internal name to avoid ambiguity
Set-PnPList -Identity “InternalListName” -Hidden $true - Verify the status
PowerShell
Get-PnPList -Identity “InternalListName” | Select Title, Hidden - Revert (if needed)
PowerShell
Set-PnPList -Identity “InternalListName” -Hidden $false
Practical tips
- Prefer InternalName to avoid clashes when multiple lists share similar titles.
- Document which lists are hidden and why (governance).
- Combine hiding with views and permissions for a “quiet” end-user experience.
Hide via REST (optional, for devs)
HTTP PATCH
Endpoint: https://yourtenant.sharepoint.com/sites/YourSite/_api/web/lists/getbytitle(‘YourListTitle‘)
Headers: Accept: application/json;odata=nometadata, IF-MATCH: *, X-HTTP-Method: MERGE
Body:
{
“Hidden”: true
}
Automate with Power Automate: “Hide support lists on provision”
Scenario
You deploy solutions that rely on support lists (logs, parameters). At provision time, you want those lists hidden automatically.
Flow overview
- Trigger: Manually or when an item is created in a “Solutions Registry” list
- Action: HTTP request to SharePoint (or Azure Automation/PowerShell) setting Hidden=true
- Logs: Record success/failure for auditing
Step-by-step (using “Send an HTTP request to SharePoint”)
- Trigger
- Manual button in Power Automate OR
- “When an item is created” in your Solutions Registry list (fields: SiteUrl, ListTitle)
- Variables (optional)
- varSiteUrl = SiteUrl from the item
- varListTitle = ListTitle from the item
- Action: Send an HTTP request to SharePoint
- Site Address: use varSiteUrl
- Method: POST
- Uri: _api/web/lists/getbytitle(‘@{variables(‘varListTitle’)}’)
- Headers:
- Accept: application/json;odata=nometadata
- IF-MATCH: *
- X-HTTP-Method: MERGE
- Content-Type: application/json;odata=nometadata
- Body:
{
“Hidden”: true
}
- Error handling and logging
- Configure “run after” to capture failures
- Add a Compose or “Create item” in a Logs list with:
- Solution name
- Site
- List
- Status (Success/Failure)
- Message (request outputs)
- Security and permissions
- Use a Connection Reference with proper site permissions
- Consider a Service Account + PIM
- Optional: auto-unhide
- Add a second HTTP action setting Hidden=false for maintenance windows if needed
FAQ
- Is hiding the same as removing permissions? No. Hiding does not change permissions; it only affects default visibility.
- Does this affect Power Apps? No, apps continue to work as long as they connect via the standard connector/URL.
- Can I hide document libraries? Yes. Libraries are specialized lists and support the same flag.
- What about search? Hidden lists won’t show in navigation. Items may still be searchable based on indexing settings—adjust Search settings to fit your needs.
Quick checklist
- Do I really need to hide, or would views/permissions be enough?
- Have I documented why this list is hidden?
- Do I have a quick rollback plan?
- Is this automated with Power Automate for consistency?
Hiding lists in SharePoint Online is a simple, powerful, and safe way to declutter your front-end without disrupting your solution architecture. Did you know? Now you do—and you can automate it with Power Automate to level up your governance.








Leave a comment