Serverless workflows are in my opinion an important piece of the architecture of a cloud-based ERP solution (and this is the reason why I’m pushing its adoption on different posts, training and speaking). Serverless workflows permits you to create complex integrations between systems by linking a series of serverless tasks together in a sequence defined by your business needs, without infrastructure management, with scalability and reliability and with built-in monitoring.
When architecturing solutions with serverless workflows and orchestrations, there are essentially 3 main technologies, that spans from low code to full code:
- Power Automate
- Azure Logic Apps
- Azure Durable Functions
These services can all define input, actions, conditions, and output. You can run each of them on a schedule or trigger and you don’t have to choose just one of them. They integrate with each other as well as they do with external services.
I don’t want to cover the third approach here (if you attended my workflow session at recent Directions EMEA in Milan I’ve done a workflow demo with a process solved by using Durable Functions and I’ve explained some hidden features of this powerful orchestration engine) but this post wants only to answer a common question that I always receive when talking about serverless low-code workflows: for my Dynamics 365 Business Central projects, should I use Power Automate or Azure Logic Apps?
The first answer is: it depends! 🙂
Power Automate is a low-code and designer-first automation tool. It works on Office 365 (in-browser editor) and it relies on connectors and flow templates. Power Automate allows anyone with knowledge of the business process to create repeatable flows that when triggered leap into action and perform the process for them.
Power Automate has a Premium Connector for Dynamics 365 Business Central:
and provides a set of predefined templates (flows) integrated into Dynamics 365 Business Central that you can edit, customize and use:
Azure Logic Apps
Azure Logic Apps is a cloud-based platform for creating and running automated workflows that integrate apps, data, services and systems (member of Azure Integration Services). Azure Logic Apps is a super-set of Power Automate, targeted to Azure Developers. Azure Logic Apps have a simple user interface that does not require a single line of code (same editor as Power Automate + Visual Studio or Visual Studio Code editor) and the only prerequisite is having an Azure subscription. As a fully managed Azure service, users do not have to worry about scaling, monitoring, hosting, or managing their solutions.
Also a Logic App relies on connectors, triggers and actions:
Power Automate vs Azure Logic Apps
These two low-code workflows orchestrations platform have lots of similarities (Power Automate relies on Logic Apps) but also many important differences. Here I want to summarize some of them and I’ve underlined what personally I think are the most important things to know when architecturing a cloud-based solution with these technologies.
- Built and maintaned from flow.microsoft.com. Only users with Power Automate license can access it.
- Flows are bound to a user. Visible to others only after share.
- Two built-in roles (Owners and Run-only). If you remove all owners of a Flow, it will be removed as well.
- Location of flow is determined on the location of the Power Platform environment.
- Not possible to filter who can trigger the flow. Office 365 security and Compliance audit logs, DLP.
- Basic logging (notifications for flow owners and flow monitor).
- ALM process (DevOps) managed via Solutions.
- Fixed cost per user (free and premium tier). Some connectors require a Premium license
Azure Logic Apps:
- Built and maintained through Azure Portal or Visual Studio Code/Visual Studio.
- Flows are bound to a resource group.
- Full RBAC capabilities of Azure (Resource Groups permissions, Logic App Contributor, Logic App Operator).
- You can choose the region where the app will run. Full scalability.
- Possibility to configure restrictions on who can trigger the flow (via Workflow Settings). Can use managed identities. Azure API Management integration. Full Azure security.
- Advanced logging and alerting (Azure Monitor).
- Full DevOps (ARM templates) and code view.
- Cost based on consumption (billed per executed action) or fixed.
As you can see from the above summary, there are lots of common capabilities between Power Automate and Azure Logic Apps but also some differences that can play a significant role when determining the best workflow engine for your business needs.
Generally speaking, Power Automate is better suited when you have simple requirements and user-centric workflows, whereas Azure Logic Apps is better suited for complex workflows where reliability, performance, security and scalability play a crucial role.
I spend most of my time architecturing cloud solutions in general, but when evaluating cloud workflows for Dynamics 365 Business Central, these are my personal rules:
Power Automate is better suited when you need:
- Easy workflow creation and user tasks automation.
- Office 365 integration.
Azure Logic Apps are better suited when you need:
- Building integration solutions (not linked to user-centric flow) and leveraging extensive list of connectors required.
- Complex B2B workflows
- Visual tools to manage and troubleshooting workflow is required.
- Stateful and Stateless workflows.
- Control scalability, security and performances of your flows.
I often see to much consultants proposing Power Automate as the platform for solving all integrations tasks and needs with Dynamics 365 Business Central. That’s an error, you should think on the above mentioned aspects if you really want to provide to your customers a solution that rocks in the cloud.
Obviously, the goal of this post is not to say you should not use Power Automate. I think you should use both, but please use the right tool for the right task.
You should use Power Automate when you need to automate tasks that affects user-centric processes (approvals, notifications etc.), not every type of integrations you have. For automating integration tasks or B2B processes, Logic Apps should be the way to go.
When working on integrations between external systems and Dynamics 365 Business Central APIs, Logic Apps should be your solution. You can secure your flow, you can scale it as needed, you can geo-replicate it (if you need extreme reliability), you can create more flow instances (maybe on different regions) and use Traffic Manager to redirect users to the right flow instance, you can use Azure Monitor and full Azure Security and (important!) the flow is not running under the context of an Office 365 user.
There’s certainly more to say about serverless workflows technologies, but I hope that this post gives you some hints at least about the low-code approaches to propose to your customers.