Skip to main content

Hi All,

 

How can I find a list of Nintex forms and workflows on a site collection or subsite in SPO?  I searched around and couldn't find anything

 

Thanks,

Nathan

I had this same question a few years ago and there is no feature that I know of to find all your Nintex Forms and Workflows in O365.



 



If you go to Nintex Customer Central, under Usage, 



https://customer.nintex.com/usage/Pages/default.aspx )



 



it shows # of Production Workflows Used, Production Forms Used, Development Workflows Used, and Development Forms Used, so you would think it could also show you where to find them.



 



I can easily tell that when it tells me I have 35 production forms in use, that number is high.  Maybe someone here created a form for testing and then deleted it or deleted the list and it still counts for these numbers, but those numbers are wrong.  We maybe have 10 forms in production, at best, so it would be nice to go through and clean up any unused forms.



 



 



 


For forms, you might try the following PowerShell script to get a list of site collections that have the Nintex app installed in them. You'll need to be at least a SharePoint tenant admin:



 



$cred = Get-Credential

Connect-PnPOnline 'https://domainname-admin.sharepoint.com' -Credentials $cred

#Search for a specific app by list name

$ListName = 'NintexFormXml'

$SiteCollections = Get-PnPTenantSite

$SiteCollectionsCount = $siteCollections.Count

foreach ($SiteCollection in $SiteCollections){

$SiteCollectionUrl = $SiteCollection.Url

try {Write-Host "Trying to connect to: $SiteCollectionUrl"

Connect-PnPOnline -Url $SiteCollection.Url -Credentials $cred

}

catch {Write-Host "Cannot connect"}

$list = Get-PnPList -Identity $ListName

if ($list) {

$list

}

$SiteCollectionsCount = ($SiteCollectionsCount - 1)

$SiteCollectionsCount

}


 


I hope this helps someone else out. I wrote a PnP PowerShell script to get the Forms and Form Count

# Connect to your SharePoint admin site
Connect-PnPOnline -Url "https://yourSPSiteName-admin.sharepoint.com/" -Interactive

$entitlementType = "<EntitlementType>Production</EntitlementType>"
$ProductionFormsCount = 0
$DevelopmentFormsCount = 0

# Get all site collections
$siteCollections = Get-PnPTenantSite

foreach ($SiteCollection in $SiteCollections) {
$SiteCollectionUrl = $SiteCollection.Url
try {
#Write-Host "Trying to connect to: $SiteCollectionUrl"
Connect-PnPOnline -Url $SiteCollection.Url -Interactive

# Check if the web has a "NintexForms" list
$nintexFormsList = Get-PnPList -Identity "NintexFormXml"

if ($null -ne $nintexFormsList) {
Write-Host "Site: $SiteCollectionUrl"
# Get all items in the "NintexForms" list
$nintexFormsItems = Get-PnPListItem -List $nintexFormsList

foreach ($item in $nintexFormsItems) {
$formType = ""

try {
$xmlFile = Get-PnPFile -Url $item["FileRef"] -AsString

if ($xmlFile -match $entitlementType) {
$formType = "Production"
}
else {
$formType = "Development"
}
}
catch {
Write-host -f foregroundcolor red "Encountered Error:"$_.Exception.Message
<#Do this if a terminating exception happens#>
}
$fileLeafRef = $item["FileLeafRef"]
$splitString = $fileLeafRef -split "_"
$listId = $splitString[1]

try {
$formList = Get-PnPList -Identity $listId
Write-Host ("Form Type: " + $formType + ", List Name: " + $formList.Title + ", View Url: " + $formList.RootFolder.ServerRelativeUrl )
if ($formType -eq "Production") {
$ProductionFormsCount = ($ProductionFormsCount + 1)
}
else {
$DevelopmentFormsCount = ($DevelopmentFormsCount + 1)
}

}
catch {
#Write-Host "List does not exist"

}
}
Write-Host " "
}
}
catch {
<#Do this if a terminating exception happens#>
}
}
Write-Host ("Production Forms Count: " + $ProductionFormsCount + ", Development Forms Count: " + $DevelopmentFormsCount)

 


Reply