Home / Blog / Azure Automation Platform
Cloud Automation

Building a Modern Automation Platform with Azure Functions, Power Automate, and Azure Container Apps

Power Automate, Azure Functions, and Azure Container Apps solve different parts of the automation problem. Used together, they create a secure and scalable platform for approvals, integrations, background processing, and enterprise workflows.

By Fletcher Technology GroupPublished Jul 24, 2026Updated Jul 24, 202617 min read

Business Automation Is More Than Replacing Manual Data Entry

Most companies do not have an automation problem because they lack tools. They have an automation problem because their tools, people, applications, and data are disconnected.

A request begins in email. Someone copies the information into a spreadsheet. A manager approves it through Microsoft Teams. An administrator runs a script. Another employee updates an internal application. A weekly report is manually generated so leadership can confirm the process was completed.

Every step may work individually, but the overall process is slow, difficult to audit, and dependent on employees remembering what to do next.

A mature automation platform should improve process consistency, approval speed, data quality, security enforcement, auditability, system integration, operational scalability, productivity, customer response times, and business continuity.

Power Automate coordinates people. Azure Functions coordinates events and code. Azure Container Apps runs the custom workloads that need more control.

The goal is not merely to make a manual process run faster. The goal is to redesign the process so work moves predictably between people and systems with fewer opportunities for delay, error, and unauthorized action.

The Three Layers of a Modern Automation Architecture

A practical Microsoft automation platform separates human workflow, event-driven integration, and custom compute. The services overlap in some areas, but they are not interchangeable.

Human Workflow Layer

Forms, approvals, Teams notifications, Outlook email, SharePoint activity, user decisions, escalations, reminders, and business-friendly workflow logic.

Integration and Event Layer

Webhooks, API endpoints, file and message events, validation, transformation, scheduled code, Azure service integration, and focused custom logic.

Custom Compute Layer

Containerized applications, queue workers, specialized dependencies, scheduled batch jobs, CPU- or memory-intensive work, and independently scalable services.

Reference Flow

One process can use several services behind the scenes while still appearing simple to the business.

1. IntakeEmployee, customer, form, Power App, or business application starts the request.
2. WorkflowPower Automate routes approvals, notifications, Teams messages, and Microsoft 365 updates.
3. IntegrationAzure Functions validate data, call APIs, transform payloads, and publish queue messages.
4. ProcessingAzure Container Apps workers or jobs handle long-running or dependency-heavy work.
5. RecordThe system of record receives the result, and the workflow reports business completion.

Identity

Microsoft Entra ID, managed identity, least privilege, role assignments, and access reviews.

Messaging

Service Bus, Storage Queues, retry controls, dead-letter handling, and asynchronous processing.

Operations

Azure Monitor, Application Insights, Log Analytics, Power Platform analytics, and runbooks.

Power Automate: The Business Workflow Layer

Microsoft Power Automate is a low-code automation platform designed to connect applications, data, and business processes through triggers and actions.

Its greatest strength is that it allows organizations to automate processes involving employees and familiar business applications without developing an entire custom workflow system.

Power Automate is particularly effective when a workflow contains human decisions or Microsoft 365 activity. Common examples include routing purchase requests, requesting legal approval, notifying a team when a high-priority ticket is created, creating SharePoint folders, collecting onboarding information, sending approval reminders, and starting an Azure process after a user submits a request.

Power Automate can work with Microsoft Teams, Outlook, SharePoint Online, OneDrive, Microsoft Forms, Dataverse, Dynamics 365, SQL Server, Salesforce, ServiceNow, Azure DevOps, and many other supported connectors. Microsoft maintains a current Power Automate connector catalog.

Where Power Automate Should Stop

A low-code platform should not become a substitute for sound application architecture. Power Automate becomes difficult to maintain when a flow contains large amounts of custom code, complex nested branching, heavy transformation, long-running processing, specialized software dependencies, high-volume message processing, or logic that should be reused by many applications.

In those cases, Power Automate should orchestrate the business process and call a purpose-built Azure service for the technical work.

Power Automate receives the request
-> Power Automate obtains approval
-> Power Automate calls an Azure Function
-> The Function validates the request and publishes a queue message
-> A Container Apps worker performs the processing
-> Power Automate sends the final notification

Azure Functions: The Event-Driven Code Layer

Azure Functions is a managed, event-driven compute platform that runs code in response to triggers without requiring traditional server management.

A function can run when an HTTP request is received, a Service Bus message enters a queue, a file is uploaded to Azure Storage, a schedule is reached, an Event Grid event is published, or another supported event source changes.

Functions are a strong bridge between Power Automate and backend systems. They are well suited for focused units of custom logic such as validating a request, transforming JSON, querying an internal API, generating a unique project identifier, processing a webhook, reading or writing Azure SQL data, creating a temporary access package, publishing a queue message, reacting to a blob upload, or running a scheduled maintenance task.

Functions Create Reusable Business Capabilities

Suppose the organization needs to validate a customer account against an ERP system. That logic could be embedded directly into one Power Automate flow, but then every other workflow would need to recreate the same validation.

A better design is to expose the validation through a secured Azure Function API. The same function can then be called by Power Automate, a Power App, a custom website, a mobile application, an Azure Container App, or another backend service.

Durable Functions for Stateful Technical Workflows

Durable Functions extends Azure Functions with stateful workflow patterns. It can coordinate activities while the platform manages state, checkpoints, retries, and recovery.

Use Power Automate when the process is primarily about people, approvals, Microsoft 365, and business-facing workflow steps. Use Durable Functions when the process is primarily a code-driven technical workflow that requires reliable state management.

Azure Container Apps: The Custom Compute Layer

The term Azure containers covers several services, including Azure Container Instances, Azure Container Apps, and Azure Kubernetes Service. For many business automation platforms, Azure Container Apps provides a strong balance between container flexibility and managed operations.

Container Apps allows an organization to deploy containerized applications without operating a Kubernetes cluster directly. It is particularly effective for background workers, internal APIs, queue consumers, microservices, custom processing engines, scheduled jobs, event-driven jobs, and workloads with specialized runtimes or libraries.

When a Container Is Better Than a Function

Azure Functions is excellent for short-lived, event-driven code. A container is often better when the workload requires a specific operating-system package, native binaries, custom fonts, browser automation, media processing tools, large dependency sets, longer execution, greater runtime control, a continuously running worker, Docker packaging, or more predictable CPU and memory allocation.

Examples include converting CAD files to PDFs, running FFmpeg against uploaded media, generating complex reports, processing a large queue of documents, running a vendor-provided Linux application, or performing a nightly reconciliation across several systems.

Container Apps Services Versus Container Apps Jobs

A continuously available API or worker should normally run as an Azure Container App. A finite task with a defined beginning and end may be better implemented as an Azure Container Apps Job.

Jobs support manual execution, scheduled execution, and event-driven execution. They are useful for nightly payroll exports, monthly billing reconciliation, one container execution per large document, scheduled vulnerability reporting, batch user provisioning, data import and cleanup, and periodic report generation.

Container Apps can scale based on HTTP traffic or supported event sources. Azure Container Apps uses scaling capabilities based on Kubernetes Event-Driven Autoscaling, commonly known as KEDA, for many event-driven scenarios.

Power Automate vs. Azure Functions vs. Azure Container Apps

ServiceBest ForAvoid Using It ForCommon Triggers
Power AutomateApprovals, notifications, Microsoft 365 workflows, business-friendly process orchestration, and connector-based automation.Heavy custom code, long-running compute, large transformations, high-volume processing, and logic that should be version-controlled as software.Form submissions, SharePoint changes, emails, Teams actions, scheduled flows, connector events.
Azure FunctionsFocused event-driven code, APIs, validation, transformation, webhook handling, queue publishing, and short-lived integration logic.Large dependency-heavy workloads, continuous workers, CPU-heavy processing, and long-running jobs that need container control.HTTP requests, Service Bus, Storage, Event Grid, timers, database or supported events.
Azure Container AppsContainerized workers, custom runtimes, APIs, queue consumers, longer processing, scheduled jobs, and workloads with specialized dependencies.Simple approval flows, tiny event handlers, or business workflows better expressed through Power Automate.HTTP traffic, queue messages, KEDA-supported events, schedules, manual job execution.

How the Three Services Work Together

Employee Onboarding

HR submits new employee information. Power Automate requests manager and HR approval. An Azure Function validates naming, department, and start date. Service Bus receives an approved provisioning request. A Container Apps worker coordinates custom provisioning tasks. Power Automate sends status notifications and writes the final result to the onboarding record.

Invoice and Purchase Approval

A purchase request starts in Microsoft Forms, Power Apps, or a procurement system. Power Automate handles business approval. Azure Functions validate vendor and budget data. A queue decouples the workflow from backend processing. Container Apps performs the ERP or accounting integration and returns status to the requester.

Document Processing

Power Automate tracks the user-facing request and approval process. Azure Functions receive file events, validate metadata, and publish processing jobs. Container Apps performs OCR, conversion, extraction, classification, or report generation with the libraries and runtime control the workload requires.

Customer Request Intake

A customer request enters through a website or form. Azure Functions validate and normalize the request. Power Automate routes the human review and sends notifications. Container Apps handles custom backend work such as enrichment, document generation, or integration with a line-of-business system.

Scheduled Business Reporting

Container Apps Jobs run finite scheduled workloads such as reconciliation, reporting, or data cleanup. Azure Functions provide API endpoints and lightweight coordination. Power Automate notifies owners, requests review, and captures approval of the published result.

Security and Governance Decide Whether Automation Scales

Automation platforms often fail because the first few flows are useful, but nobody defines production standards. Every production workflow needs an owner, a support model, a connection strategy, monitoring, and a continuity plan.

Identity, Managed Identity, and Key Vault

Production automations should avoid embedded credentials wherever possible. Azure Functions and Container Apps should use managed identities to access Azure resources such as Key Vault, Storage, Service Bus, and Azure SQL. Permissions should be scoped to the responsibility of each component.

A report-generation worker should not automatically receive subscription-owner permissions. A Power Automate connection should not have unrestricted access to every SharePoint site.

Power Platform Data Policies

Power Platform data policies help control how connectors are grouped and which connectors can exchange organizational data. Without those guardrails, a maker could unintentionally design a flow that moves sensitive SharePoint data into an unapproved consumer service.

Private Networking

Depending on data classification and risk, the architecture may use private endpoints, VNet integration, internal Container Apps environments, storage firewalls, private DNS, site-to-site VPN, ExpressRoute, or API Management.

Observability and Auditability

The platform should track flow failures, approval delays, function exceptions, queue depth, dead-letter messages, container restarts, job failures, processing duration, dependency failures, API latency, and business completion status.

A successful Function invocation does not necessarily mean the employee was onboarded successfully. A completed Power Automate run does not prove the ERP record was accepted. Mature automation records both technical completion and business completion.

Cost Management

Cost planning should include flow licensing, connector classification, Function hosting plan, container CPU and memory, minimum replicas, execution frequency, queue transaction volume, log ingestion and retention, network egress, and supporting storage or databases.

Common Automation Mistakes

Forcing Everything Into Power Automate

Power Automate should not become a 200-step application containing every technical detail of the process.

Replacing Every Flow With Custom Code

Developers sometimes rebuild approvals, notifications, and Microsoft 365 integration that Power Automate already provides effectively.

Using Containers for Tiny Event Handlers

A full containerized service may be unnecessary when a small Azure Function can perform the task cleanly.

Calling Long-Running Workloads Synchronously

Use queues and asynchronous status tracking when backend work may exceed normal request timeouts.

Storing Credentials in Flows or Images

Use managed identity and Key Vault wherever possible.

Skipping Idempotency

A repeated event should not create duplicate employees, invoices, tickets, or payments. Each processing request should have a stable identifier and a safe retry strategy.

Ignoring Failure Paths

Every workflow should define what happens when approval expires, an API is unavailable, a queue message cannot be processed, the target system rejects the update, or the requester submits the same item twice.

Fletcher Technology Group's Automation Methodology

Fletcher Technology Group approaches automation as a business-process and systems-architecture initiative. The objective is not to deploy disconnected flows. It is to build an automation platform that can be secured, supported, measured, and expanded.

Phase 1: Process Discovery

We document the current process, participants, approvers, systems, manual handoffs, data inputs and outputs, failure points, security requirements, compliance requirements, processing volume, and business deadlines.

Phase 2: Workload Classification

Each step is assigned to the correct technology layer: human workflow, event-driven code, containerized processing, messaging, data storage, identity, authorization, and monitoring.

Phase 3: Architecture and Governance

We define environments, subscriptions, resource groups, identity model, network model, data policies, managed identities, secrets management, API boundaries, queue strategy, retry handling, logging, alerting, and deployment standards.

Phase 4: Pilot Automation

A high-value but controlled process is selected for the first implementation. The pilot should be complex enough to prove the platform but limited enough to manage risk.

Phase 5: Production Operations

We establish deployment controls, runbooks, dashboards, ownership, support procedures, alerting, change control, backup and recovery, and periodic review.

Phase 6: Automation Roadmap

Once the platform is proven, additional processes can be prioritized based on labor savings, error reduction, security improvement, compliance value, customer impact, process volume, and implementation complexity.

The Bottom Line

Power Automate provides the business-facing workflow experience. Azure Functions provides focused event-driven code and integration. Azure Container Apps provides controlled, scalable execution for custom and containerized workloads.

The strongest automation strategy is not based on selecting one product and forcing it into every scenario. It is based on clear service boundaries and allowing each platform to do what it does best.

Automate the business process, not just the individual task.

Frequently Asked Questions

What is the difference between Power Automate and Azure Functions?

Power Automate is a low-code workflow platform designed for business processes, connectors, approvals, and user-facing automation. Azure Functions runs custom code in response to events such as HTTP requests, queue messages, schedules, and storage events.

When should a company use Azure Container Apps instead of Azure Functions?

Container Apps is usually a better fit when the workload requires custom container dependencies, longer execution, continuous background workers, specialized runtimes, or more control over CPU, memory, and deployment packaging.

Can Power Automate call an Azure Function?

Yes. Power Automate can call an appropriately secured HTTP-triggered Azure Function or access an API exposed through Azure API Management. Authentication and authorization should be designed rather than relying on an anonymously accessible endpoint.

Can Power Automate access on-premises systems?

Power Automate can access supported on-premises data sources through the on-premises data gateway. Other architectures may use APIs, custom connectors, VPN connectivity, ExpressRoute, or locally deployed agents.

What are Azure Container Apps Jobs?

Azure Container Apps Jobs run finite containerized tasks that start, perform work, and stop. Jobs can be started manually, on a schedule, or in response to supported events.

Should every business workflow use all three services?

No. A simple approval may require only Power Automate. A small event handler may require only Azure Functions. The services should be combined only when the process requirements justify the architecture.

How should production Power Automate flows be governed?

Production flows should have defined owners, approved environments, data policies, documented connections, monitoring, deployment controls, support procedures, and continuity planning.

How are secrets protected in Azure Functions and Container Apps?

Managed identities should be used where supported. Remaining secrets should be stored in Azure Key Vault and made available through controlled references or application configuration.

Can these services automate regulated workflows?

Yes, but the architecture must account for the applicable cloud environment, data classification, licensing, system boundary, identity model, logging, retention, and compliance requirements.

How Fletcher Technology Group Can Help

Fletcher Technology Group designs and implements secure Microsoft automation platforms that connect business users, Microsoft 365, Azure, SaaS applications, and on-premises systems.

Our services include business-process discovery, Power Automate workflow development, Power Platform governance, Azure Functions development, Azure Container Apps architecture, Container Apps Jobs, API and systems integration, Microsoft Entra ID authentication, hybrid connectivity, Service Bus architecture, managed identity, Key Vault, monitoring, alerting, and operational documentation.

Need a cleaner automation platform?

We can help you decide what belongs in Power Automate, what belongs in Azure Functions, and what should run as a containerized workload.

Related content

Technical References

  1. Azure Functions overview
  2. Azure Functions documentation
  3. Azure Functions scenarios
  4. Azure Functions best practices
  5. Durable Functions overview
  6. What is Power Automate?
  7. Power Automate approvals
  8. Power Automate connector reference
  9. Power Automate on-premises data gateway
  10. Power Platform environments overview
  11. Power Platform data policies
  12. Power Platform governance considerations
  13. Managed Environments overview
  14. Azure Container Apps overview
  15. Jobs in Azure Container Apps
  16. Scale applications in Azure Container Apps
  17. Azure Container Apps security
  18. Azure Container Apps Well-Architected guidance
  19. Choose an Azure container service
  20. Choose an Azure compute service