# Integration Services: Azure's secret free integration platform

> Azure Integration Services as a cheap iPaaS: Functions, Logic Apps and Azure Storage cover most integration work for cents a month, Logic Apps is Microsoft's successor to BizTalk, and IT-owned integrations belong in Azure rather than Power Automate.

Source: https://ali.id.au/blog/azure-integration-services/ (last edited 2026-10-17)

Before you buy an iPaaS (integration platform as a service) like MuleSoft, Workato, Scribe or Boomi, look at what's already in your Azure subscription. Functions, Logic Apps and a storage account do most of what those platforms do, and Microsoft calls Logic Apps [an iPaaS](https://learn.microsoft.com/rest/api/logic/) itself. One of my integrations costs 11 cents a month.

That's also why you haven't heard of it. Microsoft barely markets Azure Integration Services, because it doesn't make much money from it.

## What you need

- **[Functions](https://learn.microsoft.com/azure/azure-functions/functions-overview)** for the code.
- **[Logic Apps](https://learn.microsoft.com/azure/logic-apps/logic-apps-overview)** for the workflow and the connectors.
- **[A storage account](https://learn.microsoft.com/azure/storage/common/storage-introduction)**: queues to hand work along, tables for state, blobs for payloads.

That's enough for most jobs. When it gets bigger, or has to be live, add [Service Bus](https://learn.microsoft.com/azure/service-bus-messaging/service-bus-messaging-overview), [Event Grid](https://learn.microsoft.com/azure/event-grid/overview) and [API Management](https://learn.microsoft.com/azure/api-management/api-management-key-concepts). Microsoft sells the set as [Azure Integration Services](https://azure.microsoft.com/products/category/integration).

[An overview of Azure Integration Services | Azure Friday (YouTube)](https://www.youtube.com/watch?v=sbqhJsWhKAs)


## Why it's nearly free

Functions and Logic Apps Consumption bill per run, and storage bills per gigabyte and per operation, so a quiet integration costs next to nothing. Check the [Functions](https://azure.microsoft.com/pricing/details/functions/) and [Logic Apps](https://azure.microsoft.com/pricing/details/logic-apps/) pricing pages for your own numbers.

## BizTalk became Logic Apps

Most people don't know this. Microsoft took BizTalk into Azure, and [in December 2025](https://techcommunity.microsoft.com/blog/integrationsonazureblog/microsoft-biztalk-server-product-lifecycle-update/4478559) called Logic Apps "the successor of BizTalk Server". BizTalk Server 2020 is the final version. Mainstream support ends in April 2028, and all support in April 2030.

## Azure or Power Automate

IT gets this wrong too. **If IT owns an integration, it belongs in Azure. If one person owns it, it belongs in Power Automate.**

Plenty of things that should be Logic Apps live in Power Automate, and they fail for lack of monitoring and shared management. Logic Apps gets you [managed identities, role-based access and source control](https://learn.microsoft.com/azure/logic-apps/power-automate-migration#migration-benefits), and Microsoft has a [guide to moving flows across](https://learn.microsoft.com/azure/logic-apps/power-automate-migration).

## The UI is SPFx

When people need screens, put them in SharePoint as an [SPFx](https://learn.microsoft.com/sharepoint/dev/spfx/sharepoint-framework-overview) web part. The web part calls your Function with [`AadHttpClient`](https://learn.microsoft.com/sharepoint/dev/spfx/use-aadhttpclient-enterpriseapi), signed in as the user, and [App Service authentication](https://learn.microsoft.com/azure/app-service/overview-authentication-authorization) (Easy Auth) on the Function App checks the Entra token before your code runs. No keys in the browser, and the Function knows who's asking. An admin approves the web part's access once, under [API access](https://learn.microsoft.com/sharepoint/api-access) in the SharePoint admin centre.

Add [react-jsonschema-form](https://github.com/rjsf-team/react-jsonschema-form) and it gets very powerful. The Function hands the web part a JSON Schema, and the form draws and validates itself from it. Change the schema and the form follows, without redeploying the web part.

## When not

Behind an on-premises firewall, cloud Functions can't reach your systems without [virtual network plumbing](https://learn.microsoft.com/azure/azure-functions/functions-networking-options). For that I use [az-functions-onprem](https://github.com/clearpathcloud/az-functions-onprem): Functions-style handlers in TypeScript, on Windows Server or Docker, behind the firewall. Scheduled syncs, webhook receivers, an ERP feeding a cloud CRM. The handlers port to Azure Functions with cosmetic changes, so the work moves to the cloud when you're ready. Microsoft's own answer is [Logic Apps hybrid deployment](https://learn.microsoft.com/azure/logic-apps/set-up-standard-workflows-hybrid-deployment-requirements) on Arc-enabled Kubernetes, if you run Kubernetes on site.

