SharePoint Online: How to Disable Microsoft Flow (Power Automate) in Lists and Libraries?

Requirement: Disable flow in SharePoint Online.

Microsoft Flow is a great tool to automate business processes by building workflows. In some cases, to take control over customization, You may want to disable Flows by hiding the “Flow” button in modern lists and libraries in SharePoint Online.

disable flow sharepoint online

How to Disable Flow in SharePoint Online?

There is no way to disable Microsoft Flow Out-of-the-box through the browser. We’ve to use PowerShell. Assuming you have the latest SharePoint Online Management Shell installed in your machine, here is how to disable or enable Flow in SharePoint Online site collection via SharePoint Online Management Shell.

#Set parameter values

#Connect to SharePoint Online Admin Site
Connect-SPOService -Url $AdminSiteURL -Credential (Get-Credential)

# Disable flows on a site collection
Set-SPOSite -Identity $SiteURL -DisableFlows Disabled

#To Enable, use: 
#Set-SPOSite -Identity $SiteURL -DisableFlows NotDisabled

This turns off flow on all the lists and libraries for the given site collection.

turn off flow sharepoint online

Disable Flow on SharePoint Online Site Collection using CSOM:

Instead of SharePoint Online Management Shell, we can also utilize CSOM scripts to turn off flow in SharePoint Online.

#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll"

#Set parameter values

$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($AdminSiteURL)
$Ctx.Credentials = $Credentials

#Get the tenant object 
$Tenant = New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($ctx)

#Get the current Settings for flow
$SiteColl=$Tenant.GetSitePropertiesByUrl($SiteURL, $true)

#Disable/Enable Flow
$SiteColl.DisableFlows = [Microsoft.Online.SharePoint.TenantAdministration.FlowsPolicy]::Disabled #To enable, set:  NotDisabled

This disables Microsoft Flow for all lists and libraries in a given SharePoint Online modern site. All your existing Flows will work as usual but you no longer see that button in the interface. You can still start flow through the waffle, however!

Disable Flow on a Site (Sub-Site):

The above methods disable Microsoft flow for the entire site collection. In some cases, you may want to disable Microsoft flow on a particular subsite. Here is my PowerShell script to disable Microsoft Flow on a particular site.

#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

#Set parameter values

#Get Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Disable flow on the Web (Root Web!)
$Web = $Ctx.Web

#Disable Flow
$Web.DisableFlows= $true

Disable Microsoft Flow (Power Automate) using PnP PowerShell

#Set Variables
$SiteURL = ""
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential) 

#disable Microsoft Flow
Set-PnPSite -DisableFlows $True

However, on Group-connected sites, I see it’s failing with “Set-SPSite : is a Groups site collection.”

You can also remove Flow Licenses from users in Office 365 Admin Panel to restrict them from creating Flows!

Salaudeen Rajack

Salaudeen Rajack is a SharePoint Architect with Two decades of SharePoint Experience. He loves sharing his knowledge and experiences with the SharePoint community, through his real-world articles!

One thought on “SharePoint Online: How to Disable Microsoft Flow (Power Automate) in Lists and Libraries?

  • July 9, 2020 at 6:32 AM

    Group connected site cannot set this using the default command or CSOM. Here is the way I found that works.

    $cre = Get-Credential
    Connect-PnPOnline –Url -Credentials $cre
    Foreach ($site in $sites){
    Connect-PnPOnline –Url $site.url –Credentials $cre
    $ctx = Get-PnPContext
    $ctx.Site.DisableFlows = $true;
    Write-host “completed on $($Site.URL)”


Leave a Reply