Blog Post

Apps on Azure Blog
5 MIN READ

Announcing managed connectors for Azure Functions (Preview)

nzthiago's avatar
nzthiago
Icon for Microsoft rankMicrosoft
Jun 02, 2026

Azure Functions now includes managed connectors in public preview - the same 1,400+ connector ecosystem behind Logic Apps and Power Platform - as first-class triggers in your Functions code, plus typed SDKs for invoking connector actions from your function body. Build event-driven integrations with Microsoft 365, Salesforce, ServiceNow, SAP, Dynamics 365, and 1,400+ other systems using familiar Functions syntax.

This release is the result of close collaboration between the Azure Functions team and the Connectors team, the same team that builds and maintains the connector ecosystem behind Logic Apps and Power Platform. Triggers, SDKs, and the connection runtime were designed together so that connectors feel native to Functions, and so that the connector library that already powers thousands of Logic Apps workflows in production is available to Functions developers.

The integration is built on the new Connector Namespace service, which brings the Logic Apps/Power Platform connector runtime to developers as a programmable integration layer.

A quick look: new Outlook email → post to Teams

Here's a function example (adapted from the sample app): the Office 365 trigger fires on every new email in the watched inbox, and the function posts a notification to a Teams channel using the Teams connector SDK.

using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Extensions.Connector;
using Azure.Connectors.Sdk.Office365.Models;
using Azure.Connectors.Sdk.Teams;
using Azure.Connectors.Sdk.Teams.Models;

public class ProcessEmail(TeamsClient teams)
{
    private readonly string _teamId    = Environment.GetEnvironmentVariable("TEAMS_TEAM_ID")!;
    private readonly string _channelId = Environment.GetEnvironmentVariable("TEAMS_CHANNEL_ID")!;

    [Function("OnNewEmail")]
    public async Task Run([ConnectorTrigger] Office365OnNewEmailTriggerPayload payload)
    {
        foreach (var email in payload.Body?.Value ?? [])
        {
            var message = new PostMessageRequest
            {
                Recipient    = new() { GroupId = _teamId, ChannelId = _channelId },
                MessageBody  = $"<b>📧 New email</b><br/><b>From:</b> {email.From}<br/><b>Subject:</b> {email.Subject}"
            };

            await teams.PostMessageToConversationAsync("Flow bot", "Channel", message);
        }
    }

    private sealed class PostMessageRequest : DynamicPostMessageRequest
    {
        public RecipientInfo Recipient   { get; set; } = new();
        public string        MessageBody { get; set; } = "";
    }

    private sealed class RecipientInfo
    {
        public string GroupId   { get; set; } = "";
        public string ChannelId { get; set; } = "";
    }
}

The TeamsClient is registered with DI at startup against the Teams connection's runtime URL — the same managed identity the trigger uses authenticates the outbound call. No OAuth code in the function. No HTTP client. No token handling.

For the complete end-to-end samples see the Functions Connectors Samples repo.

What's shipping in preview

  • Connector triggers. First-class Functions triggers backed by Connector Namespace connections - Office 365 new-email, Teams message-posted, SharePoint item-created/updated, Dataverse row-changed, Salesforce record-updated, calendar events, and more. Configured via the [ConnectorTrigger] attribute (C#) and equivalent decorators as language SDKs roll out.
  • Typed connector SDKs. Strongly-typed client libraries for invoking connector actions from inside your function — OutlookClient, TeamsClient, Office365UsersClient, DataverseClient, SalesforceClient, and growing. Built jointly by the Connectors and Functions teams.
  • Auth via managed identity and built-in authentication. Configure the function app with built-in authentication to allow only the Connector Namespace to trigger the function. See .NET sample: built-in authentication with managed identity.
  • Observability. Every connector trigger run is recorded with information about the run. End to end tracing into the Function App is on the roadmap.

Typed SDKs are rolling out incrementally. Not all 1,400+ connectors have strongly-typed SDKs today, and language coverage will expand over time. You can see the ones supported in the different SDK repos for .NET, Python, and Node.js.

The connector catalog

The full catalog is the Logic Apps connector library is in scope. Below are the categories most relevant to enterprise integrations:

Microsoft 365

  • Outlook (Office 365) â€” send email, create drafts, search mailbox, read calendar, manage events
  • Microsoft Teams â€” post messages, create channels, list team members, manage meetings and tabs
  • SharePoint â€” read and write lists and document libraries, subscribe to item-created/updated events
  • OneDrive for Business â€” upload and download files, manage folders, track changes
  • Excel Online (Business) â€” read and write worksheets, add rows, call named functions in workbooks

CRM and operations

  • Dataverse / Dynamics 365 â€” full entity CRUD across all standard and custom tables; use ODATA filters
  • Salesforce â€” query and write contacts, leads, opportunities, and cases via SOQL
  • ServiceNow â€” create and update incidents, change requests, and CMDB records
  • Workday â€” read worker, position, and organization data

ERP and data

  • SAP â€” call BAPIs and read tables (uses on-premises data gateway for SAP behind a firewall)
  • SQL Server â€” execute queries, stored procedures, and table operations
  • Oracle Database â€” same surface as SQL Server
  • PostgreSQL â€” query and write via the generic SQL connector

Developer and platform

  • Azure DevOps â€” read and write work items, pipelines, repositories, and pull requests
  • GitHub â€” manage issues, PRs, and repository content.

More trigger examples

// Office 365 — new email
[Function("OnNewEmail")]
public Task OnNewEmail([ConnectorTrigger] Office365OnNewEmailTriggerPayload payload) { /* ... */ }

// Teams — new channel message
[Function("OnTeamsMessage")]
public Task OnTeamsMessage([ConnectorTrigger] TeamsOnNewChannelMessageTriggerPayload payload) { /* ... */ }

// SharePoint — list item created
[Function("OnTicketCreated")]
public Task OnTicketCreated([ConnectorTrigger] SharePointOnNewListItemTriggerPayload payload) { /* ... */ }

// Salesforce — record updated
[Function("OnOpportunityUpdated")]
public Task OnOpportunityUpdated([ConnectorTrigger] SalesforceOnRecordUpdatedTriggerPayload payload) { /* ... */ }

The connection that backs each trigger is configured on the Connector Namespace as part of deployment, so trigger declarations stay focused on the event payload, not on auth or connection wiring.

Pricing

There is no extra cost for the integration itself. You pay:

  • Existing Azure Functions pricing for execution (Flex Consumption per-second billing).
  • Existing Logic Apps connector pricing for connector calls, billed at the same per-action rates Logic Apps customers pay today.

See the Logic Apps pricing page for current connector rates and standard/enterprise connector tiers.

Preview restrictions

  • Language and runtime support: typed SDKs and the [ConnectorTrigger] attribute ship first for C# (.NET 10 isolated worker), followed closely by Python and Node.js. Java, and PowerShell are on the roadmap.
  • Typed SDK coverage: not every connector in the 1,400+ catalog has a typed SDK yet but coverage is expanding.
  • Regional availability: connector triggers are enabled per region as Connector Namespace rolls out. Check the documentation for the current region list.

Calls to action

  • Developers building integrations with SaaS or enterprise systems should explore managed connectors in Azure Functions to reduce integration complexity and accelerate delivery.
  • Partners can position this for customers migrating from on-premises integration platforms or looking to modernize custom integration code into a serverless, event-driven architecture.
  • Customers running both Logic Apps and Functions today can consolidate integration logic: keep workflow-style orchestrations in Logic Apps, and move code-first event-driven integrations into Functions with the same connector library.

Get started

Looking for connectors as tools for AI agents? That's covered in the serverless agents Azure Functions runtime, which builds on this same Connector Namespace integration to expose connections as MCP tool servers for the agents runtime.

Updated May 29, 2026
Version 1.0
No CommentsBe the first to comment