DEV Community

Cover image for Power Platform extensibility options in Power Automate
Kinga
Kinga

Posted on • Originally published at pnp.github.io

Power Platform extensibility options in Power Automate

Where to place logic

Power Automate Cloud flows are always asynchronous, while Classic workflows may be either background (asynchronous) or real-time (synchronous) workflows. Microsoft recommends to use Cloud Flows instead of classic background workflows.

Power Automate supports transactions through ChangeSets which can be used with the Dataverse connector to perform atomic transactions. For transactions not related to Dataverse, custom rollback logic must be implemented.

Power Automate can function autonomously as a workflow triggered manually, on a schedule, or by an event such as the arrival of an email or the creation of an item in a list. It may also be used to execute business logic that is not intended for client-side execution within Power Apps.

Power Automate is great for use cases where you need to run complex logic, need multiple connectors, or you don't want the user to wait for the action to finish. Consider it if:

  • Logic needs to run across multiple connectors.
  • You're creating an approval process.
  • Output is being produced in another format.
  • You want to reduce dependency on device-side processing power.
  • The process is well understood and consistent, runs frequently and there's a potential ROI
  • High risk and/or impact of a failure could be mitigated through automation.

It's recommended to build separate flows instead of a single automation that covers the entire process.

Key developer extensibility points

  • Create custom connectors to communicate to your external data sources and services. A custom connector is a wrapper around a REST API and can be created using tools like Azure Functions and Azure API Management
  • Use workflow definition functions to build complex expressions

Source: Introduction to Microsoft Power Platform for developers

Summary of extensibility options in Power Automate

Extensibility options in Power Automate

See full resolution here

Cloud Flows Desktop Flows Business Process Flow Classic workflows
Formulas - Power Apps Power Fx
Low-code plugins Power Fx, Connectors
Custom process action declarative ✅*
Custom API .NET
Workflow activities/assemblies .NET
Custom connectors REST API ✅**
Office Scripts in Excel TypeScript
Custom actions for Power Automate for Desktop .NET
Custom script in Desktop flows DOS command, VBScript***, JavaScript, PowerShell, Python, .NET

* To allow business process flow execute the custom process action, define table entity and enable "As a Business Process Flow" in action properties

** By using custom process action that uses custom connector

*** VBScript is deprecated from Windows

Formulas using Power Fx

Read more: Formulas

Formulas combine many elements, for example:

  • Functions: take parameters, perform an operation, and return a value. Functions are modeled after Microsoft Excel functions. Some functions have side effects, such as SubmitForm, which are appropriate only in a behavior formula such as Button.OnSelect.
  • Signals return information about the environment. For example, Location returns the device's current GPS coordinates. Signals don't take parameters or have side effects.
  • Enumerations return a pre-defined constant value. For example, Color is an enumeration that has pre-defined values for Color.Red, Color.Blue, and so forth.
  • Named operators, such as ThisItem and Self, provide access to information from within a container.

Constraints and limitations

Not all functions area available in all Power Platform components. For example regular expressions like IsMatch, Match, and MatchAll are available in both, Canvas and Model-driven apps but not in Power Automate.

Low-code Plug-ins using Power Fx

Read more: Low-code Plug-ins

With the low-code plug-ins, you can create plug-ins with minimal or no coding required, and without the need for compiling solution and manual registration.

Low-code plug-ins are stored within a Dataverse database and can be seamlessly integrated into Power Apps and Power Automate. They are defined using the Power Fx expression language and can directly connect with Dataverse business data and external data sources through Power Platform connectors.

Idea: You may use low-code plugins as a way to execute regular expressions in Power Automate.

Constraints and limitations

Low-code plug-ins are stored within a Dataverse database and are created using Dataverse accelerator app, which must be installed in the environment. All new environments have the Dataverse accelerator app automatically installed as of October 1st 2023.

Use of low-code plugins in your solution requires Premium licenses.

Limitations

Custom process actions (declarative)

Read more: Custom process action

Custom process actions, also known as Custom actions, allow creating custom reusable actions that encapsulate specific business logic, and may be invoked directly from a workflow.

The business logic of a custom process action is implemented using a workflow. When you create a custom process action, the associated real-time workflow is automatically registered to execute in the main operation stage of the message execution pipeline.
They are stored in Dataverse and may use a context of a table, or be defined as global.

See Dataverse page for a more details.

Constraints and limitations

To allow business process flow execute the custom process action, define table entity and enable As a Business Process Flow in action properties

Custom API using .NET

Read more: Custom API

Custom API is a newer way to define custom messages with many advantages for developers. If you do not intend to use the no-code capabilities that custom process actions provide to configure business logic, custom API provides better capabilities for developers to create their own messages.

See Dataverse page for a more details.

Constraints and limitations

Compare Custom Process Action and custom API

Workflow activities/assemblies

Read more: Workflow activities/assemblies

As reusable components, workflow extensions can be added to any workflow or custom action.

See Dataverse page for a more details.

Custom connectors using REST API

Read more: Custom connectors

Use to communicate to your external data sources and services. A custom connector is a wrapper around a REST API and can be created using tools like Azure Functions or Azure API Management.

New connectors-both Microsoft first party and third party-are added constantly, and as an administrator you should be aware of new connectors and ensure they are classified accordingly in your Data loss prevention (DLP) policies

Constraints and limitations

Power Platform only supports REST API, while Logic Apps also supports SOAP APIs.

Custom connector FAQ for Azure Logic Apps, Power Automate, and Power Apps

Known limitations

Office Script in Excel using TypeScript

Read more: Office Script in Excel

Office Scripts in Excel let you automate your day-to-day tasks. You may record manual steps, or write your script on your own.

Although it's meant for editing workbook, you don't have to access Excel contents at all. Instead, you may use Office Script in Excel to execute your TypeScript functions, to execute any logic that is not available using Power Fx.

Constraints and limitations

To use Excel Online (Business) connector (standard)
in Power Automate you must have a business license of Microsoft 365

Excel Scripts may be saved either in OneDrive or in a SharePoint

Requests and responses in Excel are limited to 5MB, and the maximum size of parameters passed to the Run script action is 30,000,000 bytes (28.6MB).

External calls from a script are NOT supported

Data security in Office Scripts with Power Automate
Limits and configuration in Power Automate
Known issues and limitations for the Excel Online (Business) connector
Power Automate specific restrictions
TypeScript restrictions in Office Scripts

Custom actions for Power Automate for Desktop using .NET

Read more: Custom actions for Power Automate for Desktop

Custom actions exist at the environment level.
Custom actions developed by your organization and uploaded to the respective environments can be included in desktop flows and utilized like actions that belong in the standard library of automation actions.

Constraints and limitations

.dll files describing Custom actions, their dependency .dll files, and the .cab files are properly signed with a digital certificate trusted by your
organization. The certificate should also be installed on the device under the trusted root certificate authority where the desktop flow with custom
action dependencies is modified and/or executed.

Known limitations

Custom script in Desktop flows

Read more: Custom script in Desktop flows

Scripting actions enable you to run blocks of code and implement custom behavior in your desktop flows using:

  • DOS command,
  • VBScript*,
  • JavaScript,
  • PowerShell,
  • Python and
  • .NET.

* VBScript is deprecated from Windows. In future releases of Windows, VBScript will be available as a feature on demand before its removal from the operating system

Constraints and limitations

To prevent unauthorized access, Windows require administrator rights to access protected resources. To access protected resources (such as files) using the scripting actions, run Power Automate with administrator rights.

Top comments (0)