Switching from Classic to New Designer in Power Automate
Introduction
Have you ever encountered a stubborn Power Automate flow that won’t open in the new designer? For a long time, I stuck with the classic designer due to issues I faced with the new designer. However, I recently decided to make the switch for these reasons:
- New Power Automate features will only be available in the new designer
- Microsoft will get rid of classic designer
- Future proof flows as they might not be editable if classic designer is gone unless Microsoft caters for incompatible action schemas
In this blog post, I’ll share my experience and the steps I took to transition from the classic designer to the new designer in Power Automate.
The Challenge
Some flows created using an older format won’t work with the new designer. Unfortunately, actions can’t be copied directly from the classic designer to the new designer. This means you need to recreate certain actions from scratch.
The Solution
I decided to create a new flow and switch to the classic designer to copy and paste the actions one by one saving each time to identify the actions that caused the toggle to the new designer to turn off. I removed the offending actions and recreated them in the new designer.
Example: Send HTTP Request to SharePoint
Classic Designer versus Modern Designer
This is because the schema shown is different between classic and modern view.
e.g. Send Http Request to SharePoint code view within classic designer
{
"inputs": {
"host": {
"connection": {
"name": "@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$connections']['shared_sharepointonline_1']['connectionId']"
}
},
"method": "post",
"body": {
"method": "GET",
"uri": "_api/web/lists(guid'@{variables('varLibraryGUID')}')?$select=Title"
},
"path": "/datasets/@{encodeURIComponent(encodeURIComponent(parameters('Controlled Documents - Admin Site Url (contoso_controlleddocuments_adminsiteurl)')))}/httprequest",
"authentication": {
"type": "Raw",
"value": "@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"
}
},
"metadata": {
"operationMetadataId": "9c00eb6d-5c54-4654-a2a9-6bc49f257d97",
"flowSystemMetadata": {
"swaggerOperationId": "HttpRequest"
}
}
}
Modern designer
{
"type": "OpenApiConnection",
"inputs": {
"parameters": {
"dataset": "@variables('varSiteUrl')",
"parameters/method": "GET",
"parameters/uri": "_api/web/lists(guid'@{variables('varLibraryGUID')}')?$select=Title"
},
"host": {
"apiId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline",
"connection": "shared_sharepointonline",
"operationId": "HttpRequest"
}
},
"runAfter": {
"Initialize_libraryGuid": [
"Succeeded"
]
},
"metadata": {
"operationMetadataId": "3acf6ce1-950d-492a-8dd1-4f8f43375c5a"
}
}
Recreating Actions
The actions had to be recreated within new designer as they couldn’t be copied as the copy was disabled.
The message is
The action you're trying to copy and paste doesn't match the current flow schema. Please add this action manually.
This is because of schema mismatch
The actions I had to recreate from the old designer within new designer are:
- Create an approval action
- Send an HTTP request to SharePoint
- Get file properties SharePoint action
- Get List Items SharePoint action
- Send an email(V2)
- Get file content using path
- Convert to PDF Encodian action
- Create File SharePoint Action
Before switching, make sure to publish draft changes.
After recreating all the actions, the flow can be opened in the modern designer.
Conclusion
Using the modern designer offers a lot of benefits:
- Access to Power Automate Copilot
- Version history though it might still be buggy
- Additional features and sleeker UI
However, there are still improvements to be made:
- The name of the selected file trigger changes to “manual” even when attempting to change it.
- The paste action is missing, even though the copy action is available.
References
Power Automate: New vs Classic Designer - what’s the difference?