Skip to main content
Nintex Community Menu Bar

Introduction

We're excited to announce that as of today, our Nintex Forms for Office 365 customers can now publish and use forms in either the Nintex Forms add-in or the Nintex Automation Cloud SPFx apps. For those who aren't already aware, Microsoft is moving away from add-in apps, and you'll need to transition to SPFx apps. For more details, check out this link. This important feature follows the completion of the final features for our Form Upgrade tooling, which helps customers upgrade to New Responsive forms. This is the next crucial step in this transition.

 

Prerequisites

  • Form must be upgraded to New Responsive Format
  • Must have a Nintex Automation Cloud Tenant
  • Must have a valid active license

 

Steps to Get Started

  1. Install the SPFx app from the store. Help Link
  2. Open the New App and you should see "Customize SharePoint list forms" as an option. Click on that.
  3. If it is your first time opening List Forms in SPFx, you will also need to grant consent for the app, so each user doesn’t need to login. This will need to be an Admin who has permissions to grant consent.
  4. If you already have a New Responsive Form published on the list, you will see it as a draft for review.
  5. Publish this form, and you've successfully moved the form to SPFx.

 

What's Next?

You might be wondering, "That's great for one form, but how do I move all my forms?"

We understand that migrating multiple forms can be a significant task. To help streamline this process, we've developed a set of PowerShell scripts designed for bulk movement. These scripts will assist with:

  • Bulk Republishing: Quickly republish multiple forms to the SPFx app.
  • Form Identification: Easily identify form locations, versions, and the app they're currently using.
  • Bulk Install the SPFx App

Download the Scripts and Instructions: Here

Important Notes:

  • These scripts are provided as-is, and you should thoroughly review and test them in a non-production environment before implementing them in your production environment.
  • Please refer to the included instructions for detailed guidance on using the scripts.

We're also continuing to work on finishing the remaining parity features to ensure we provide the functionality you're used to and more. This will further simplify your migration to SPFx.

We're committed to supporting you through this transition. If you encounter any issues or have questions about the scripts, please don't hesitate to reach out.

 

FAQ

If you have any additional questions not listed, please respond to this post and we will get it answered and added to the FAQ.

  • What if the form on the list is a responsive or classic Form?
    • You will not see legacy forms in the new SPFx app. The recommendation is to upgrade the Form in the add-in app before moving to SPFx.
    • Alternatively, you can import a legacy form definition directly into the New Responsive designer.
  • What if I use multiple content types?
    • Each content type is treated separately, so you can have one published in the old and one in the new app.
    • You will only see new responsive published forms in SPFx. So, you will need to upgrade the Form in the old add-in app before you will see a form for that content type in the new app.
  • What about if I don’t have the add-in and we are going straight to SPFx?
    • You can import your old classic or old responsive forms directly into the designer to upgrade these forms
  • Can I remove the old app after upgrading and publishing in SPFx?
    • Yes, however you will not be able to rollback after removing the old app and would be recommended you complete your testing before removing the old app.

@brandiwoodson Correct, there was an issue identified with guest/external user which are working on resolving. If you have raised a ticket they will be able to keep you in the loop on it’s release.

Yup, I will follow up on our ticket. Thanks!


@brandiwoodson Correct, there was an issue identified with guest/external user which are working on resolving. If you have raised a ticket they will be able to keep you in the loop on it’s release.

Any updates on script?


@nico ​@brandiwoodson Just wanted to let you know the post has been updated with the scripts.


Hi ​@leighburke,

 

Thank you for this article, just a few questions on my behalf.

 

  1. When opening a New Responsive Form in Nintex SPFx for the first time, it opens just like the New Responsive Designer from the Nintex Forms for Office 365 Designer. Once I publish the form in the SPFx version, will anything change for the end user, or will this new SPFx version of the form take over from the Add in version of the form?
  2. We have a few Forms published on Nintex Mobile. Once they are migrated over to the new SPFx, will the configuration for the accounts on Nintex Mobile change? (Will Nintex for Office 365 still be the option chosen when they log into the account, or will this change?)

Thank you again for the article.

 

ConradWilkie


Have anyone gotten the report.ps1 script to work?

I have registered an app in microsoft entra, granted it the permissions as the the PDF file, generated a client secret, and tried to execute it.  Initially I was getting the following error:

Then after I made the following modification to the script, it appears to be able to get the access token now:

However, it erred again at:

Looks like the Connect-PnPOnline does not like -AccessToken?

I am using Powershell 7.0 with the latest PnP.Powershell package.


Hi ​@leighburke,

 

Thank you for this article, just a few questions on my behalf.

 

  1. When opening a New Responsive Form in Nintex SPFx for the first time, it opens just like the New Responsive Designer from the Nintex Forms for Office 365 Designer. Once I publish the form in the SPFx version, will anything change for the end user, or will this new SPFx version of the form take over from the Add in version of the form?
  2. We have a few Forms published on Nintex Mobile. Once they are migrated over to the new SPFx, will the configuration for the accounts on Nintex Mobile change? (Will Nintex for Office 365 still be the option chosen when they log into the account, or will this change?)

Thank you again for the article.

 

ConradWilkie

@ConradWilkie20 

  1. Should be basically the same, there is some differences in the url of the form that loads but overall shouldn’t change the end user experience.
  2. Shouldn’t be any changes to how the form is loaded in mobile.

Have anyone gotten the report.ps1 script to work?

I have registered an app in microsoft entra, granted it the permissions as the the PDF file, generated a client secret, and tried to execute it.  Initially I was getting the following error:

Then after I made the following modification to the script, it appears to be able to get the access token now:

However, it erred again at:

Looks like the Connect-PnPOnline does not like -AccessToken?

I am using Powershell 7.0 with the latest PnP.Powershell package.

@TinTex Potentially indicates an issue with your pnp you have installed:

  • May have multiple versions of the PnP.PowerShell module installed on your machine.
  • Or there may be some misconfiguration

Suggested Fix:

  • Uninstall all version of PnP.Module
    • Uninstall-Module PnP.PowerShell -AllVersions -Force
  • Reinstall the latest version(Should be using version 2.x.x or later for full compatibility)
    • Install-Module -Name PnP.PowerShell
  • Verify the installed version
    • Get-Module PnP.PowerShell -ListAvailable

 


Have anyone gotten the report.ps1 script to work?

I have registered an app in microsoft entra, granted it the permissions as the the PDF file, generated a client secret, and tried to execute it.  Initially I was getting the following error:

Then after I made the following modification to the script, it appears to be able to get the access token now:

However, it erred again at:

Looks like the Connect-PnPOnline does not like -AccessToken?

I am using Powershell 7.0 with the latest PnP.Powershell package.

@TinTex Potentially indicates an issue with your pnp you have installed:

  • May have multiple versions of the PnP.PowerShell module installed on your machine.
  • Or there may be some misconfiguration

Suggested Fix:

  • Uninstall all version of PnP.Module
    • Uninstall-Module PnP.PowerShell -AllVersions -Force
  • Reinstall the latest version(Should be using version 2.x.x or later for full compatibility)
    • Install-Module -Name PnP.PowerShell
  • Verify the installed version
    • Get-Module PnP.PowerShell -ListAvailable

 

Thanks ​@leighburke! It looks like after uninstalling and reinstalling the PnP.Powershell Module, the script is now working.


The links in the ‘Nintex SPFx Migration - PowerShell scripts guide.pdf’ file are not clickable, is there another version of this file with clickable links?


Have anyone gotten the report.ps1 script to work?

It looks like in the section below, the ‘DisplayFormUrl’ field of the $contentType object is null/empty so the check for UFO is failing.

 

        $ContentTypes = Get-PnPContentType -List $listTitle

 

        foreach ($contentType in $ContentTypes) {

            $contentTypeId = $contentType.Id.toString()

            $contentTypeName = $contentType.Name

            $displayFormUrl = $contentType.DisplayFormUrl

            $displayFormSpfxUrl = $contentType.DisplayFormClientSideComponentProperties

            $displayFormClientSideComponentId  = $contentType.DisplayFormClientSideComponentId

            Write-Host "Accessing ContentTypeId - $contentTypeId"

            Write-Log "Accessing ContentTypeId - $contentTypeId"

 

            if (checkSharepointOrNintexForm -displayFormUrl $displayFormUrl -contentTypeId $contentTypeId) {

                if ($displayFormUrl -like "*/UFRuntime*") {

                    Write-Host "The form ContentTypeId: $contentTypeId is a UFO Form"

                    Write-Log "The form ContentTypeId: $contentTypeId is a UFO Form"

                    $ufoData.Add(Tpscustomobject]@{

                        URL             = $listUrl

                        ListTitle       = $listTitle

                        ContentTypeId   = $contentTypeId

                    })

                }

                elseif ($displayFormSpfxUrl -ne $null -and $displayFormSpfxUrl -ne "") {

                    Write-Host "The form ContentTypeId: $contentTypeId is an SPFx Form"

                    Write-Log "The form ContentTypeId: $contentTypeId is an SPFx Form"

                    $spfxData.Add(fpscustomobject]@{

                        URL             = $listUrl

                        ListTitle       = $listTitle

                        ContentTypeId   = $contentTypeId

                    })

                }

            }


The links in the ‘Nintex SPFx Migration - PowerShell scripts guide.pdf’ file are not clickable, is there another version of this file with clickable links?

@TinTex  Fixed the links in the pdf, just need to redownload the zip.


Hi ​@leighburke  - When we migrate the forms to NAC using spfx, will the associated o365 workflows work until they are migrated?


Hi ​@leighburke  - When we migrate the forms to NAC using spfx, will the associated o365 workflows work until they are migrated?

never mind, just found the answer.


Have anyone gotten the report.ps1 script to work?

It looks like in the section below, the ‘DisplayFormUrl’ field of the $contentType object is null/empty so the check for UFO is failing.

 

        $ContentTypes = Get-PnPContentType -List $listTitle

 

        foreach ($contentType in $ContentTypes) {

            $contentTypeId = $contentType.Id.toString()

            $contentTypeName = $contentType.Name

            $displayFormUrl = $contentType.DisplayFormUrl

            $displayFormSpfxUrl = $contentType.DisplayFormClientSideComponentProperties

            $displayFormClientSideComponentId  = $contentType.DisplayFormClientSideComponentId

            Write-Host "Accessing ContentTypeId - $contentTypeId"

            Write-Log "Accessing ContentTypeId - $contentTypeId"

 

            if (checkSharepointOrNintexForm -displayFormUrl $displayFormUrl -contentTypeId $contentTypeId) {

                if ($displayFormUrl -like "*/UFRuntime*") {

                    Write-Host "The form ContentTypeId: $contentTypeId is a UFO Form"

                    Write-Log "The form ContentTypeId: $contentTypeId is a UFO Form"

                    $ufoData.Add(hpscustomobject]@{

                        URL             = $listUrl

                        ListTitle       = $listTitle

                        ContentTypeId   = $contentTypeId

                    })

                }

                elseif ($displayFormSpfxUrl -ne $null -and $displayFormSpfxUrl -ne "") {

                    Write-Host "The form ContentTypeId: $contentTypeId is an SPFx Form"

                    Write-Log "The form ContentTypeId: $contentTypeId is an SPFx Form"

                    $spfxData.Add(rpscustomobject]@{

                        URL             = $listUrl

                        ListTitle       = $listTitle

                        ContentTypeId   = $contentTypeId

                    })

                }

            }

Found the culprit.  It was using PnP.Powershell version 2.2.0, which can connect and iterate the lists, but may not have returned $contentType.DisplayFormUrl.  Updating to PnP.Powershell version 3.1.0 resolved the issue.


Hi, for step number 3 we need to create an app registration for this new Nintex SPFx app, where can I find the list of api permissions required by the app?

  1. If it is your first time opening List Forms in SPFx, you will also need to grant consent for the app, so each user doesn’t need to login. This will need to be an Admin who has permissions to grant consent.

@DamienT here is screenshot 

 


@DamienT here is screenshot 

 

 

Yes thank you that is useful, I also need the specific permissions to be added into the Azure App registration. if you hit the drop down arrows, does it show the exact API permission required? 

 

 

Cheers


@DamienT these are the ones added based on consent on behalf of org 

 


@DamienT these are the ones added based on consent on behalf of org 

 

 

A Man amongst men. Thank you.


Reply