Custom connectors

While Azure Logic Apps, Microsoft Power Automate, and Microsoft Power Apps offer over 1,000 connectors to connect to Microsoft and verified services, you might want to communicate with services that aren't available as prebuilt connectors. Custom connectors address this scenario by allowing you to create (and even share) a connector with its own triggers and actions.

Screenshot of custom connectors - overview.

Lifecycle

Screenshot of custom connectors - lifecycle.

1. Build your API

A custom connector is a wrapper around a REST API that allows Logic Apps, Power Automate, or Power Apps to communicate with that REST or SOAP API. These APIs can be:

  • Public (visible on the public internet) such as Spotify, Slack, Rackspace, or an API you manage.
  • Private (visible only to your network).

Logic Apps also supports SOAP APIs.

For public APIs that you plan to create and manage, consider using one of these Microsoft Azure products:

For private APIs, Microsoft offers on-premises data connectivity through an on-premises data gateway.

2. Secure your API

Use one of these standard authentication methods for your APIs and connectors (Microsoft Entra ID is recommended):

You can set up Microsoft Entra ID authentication for your API in the Azure portal so you don't have to implement authentication. Or, you can require and enforce authentication in your API's code. For more information about Microsoft Entra ID for custom connectors, see Secure your API and connector with Microsoft Entra ID.

2.1. OAuth 2.0

Newly created custom connectors that use OAuth 2.0 to authenticate automatically have a per connector redirect URI. Existing OAuth 2.0 connectors must be updated to use a per-connector redirect URI before February 17, 2024.

  • If you created your custom connectors with the web interface, edit your custom connectors, go to the Security tab and check the box, Update to unique redirect URL, and then save to enable the per connector redirect URI.
  • If you created your custom connectors with multi-auth using the command line interface (CLI) tool, you need to update your connector using the CLI tool to set "redirectMode": "GlobalPerConnector".
  • Once the custom connectors are updated to use the per-connector redirect URI either through the setting in the Security tab or using the CLI tool, you should remove the global redirect URI from your OAuth 2.0 apps. You should add the newly generated unique redirect URL to your OAuth 2.0 apps.
  • We'll enforce this update for existing OAuth 2.0 custom connectors starting on February 17, 2024. Any custom connector that hasn't been updated to use a per connector redirect URI stops working for new connections, and shows an error message to the user.
  • To find out which custom connectors need an update to migrate to per connector redirect URL, you can create a simple flow that uses the Get Custom Connectors as Admin action of Power Apps for Admin connector and parse its result. The flow attached later in this article fetches all the custom connectors using the same. It then applies a filter condition on the connection parameter's property to filter out non-Oauth custom connector, followed by another filter to select only connectors that don't use the per connector unique redirect URL. Finally, it puts the selected custom connectors into an array variable initialized in the beginning of the flow and generates an HTML table showing name and creator of those connectors. You can import this flow into your environment by importing this solution. You can extend the flow further to send the HTML table as an email to yourself. or you can extend it to send emails to the connector creators directly and provide them with the names of the connector that needs to be updated.

3. Describe the API and define the custom connector

Once you have an API with authenticated access, the next thing to do is to describe your API so that Logic Apps, Power Automate, or Power Apps can communicate with your API. The following approaches are supported:

OpenAPI definitions and Postman collections use different formats, but both are language-agnostic, machine-readable documents that describe your API. You can generate these documents from various tools based on the language and platform used by your API. Behind the scenes, Logic Apps, Power Automate, and Power Apps use OpenAPI to define connectors.

4. Use your connector in a Logic App, Power Automate, or Power Apps app

Custom connectors are used the same way prebuilt connectors are used. You need to create a connection to your API in order to use that connection to call any operations that you expose in your custom connector.

Connectors created in Power Automate are available in Power Apps. Likewise, connectors created in Power Apps are available in Power Automate. This isn't true for connectors created in Logic Apps. However, you can reuse the OpenAPI definition or Postman collection to recreate the connector in any of these services. For more information, see the appropriate tutorial:

5. Share your connector

You can share your connector with users in your organization the same way that you share resources in Logic Apps, Power Automate, or Power Apps. Sharing is optional, but you might have scenarios where you want to share your connectors with other users.

For more information, see Share custom connectors in your organization.

6. Certify your connector

If you'd like to share your connector with all users of Logic Apps, Power Automate, and Power Apps, you can submit your connector for Microsoft certification. Microsoft reviews your connector, checks for technical and content compliance, and validates functionality.

For more information, see Submit your connectors for Microsoft certification.

Tutorial

The tutorial uses the Cognitive Services Text Analytics API. Microsoft already provides a connector for this API. It's a good example for teaching the custom connector lifecycle and how custom connectors can support unique scenarios.

Scenario

The connector you build exposes the Text Analytics Sentiment operation, which returns the sentiment score (0.000 to 1.000) for the text input.

Prerequisites

  • One of the following subscriptions:

  • Basic understanding of how to create Logic Apps, Power Automate flows, or Power Apps.

  • API key for the Cognitive Services Text Analytics API.

Get an API key

The Text Analytics API uses an API key to authenticate users. When a user creates a connection to the API through a custom connector, the user specifies the value of this key. To get an API key:

  • Request an API key to try out the API. This doesn't require an Azure subscription.

  • Add the Text Analytics API to your Azure subscription. Once you have the API resource in your subscription, get the API key from the Keys section:

    Get API key

Start the tutorial

Advanced guidance

The tutorials and video in this section give you the required insight to leverage Power Platform connectors as part of your implementations.

Tutorials

The following tutorials provide more detail for specific custom connector scenarios:

Video

The following 45-minute video shows you how Power Platform connectors work. It also demonstrates how to create simple and advanced custom connectors.

Virtual Network support

When the connector is used in a Power Platform environment linked to a Virtual Network, limitations apply:

  • When custom code is used: Limitations are explained in Write code in a custom connector.

  • Custom connectors that were created before the environment was associated to a Virtual Network need to be resaved.

Provide feedback

We greatly appreciate feedback on issues with our connector platform, or new feature ideas. To provide feedback, go to Submit issues or get help with connectors and select your feedback type.