While Azure Logic Apps, Microsoft Power Automate, and Microsoft Power Apps offer over 1,000 connectors to connect to Microsoft and verified services, you may 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.
1. Build your API
A custom connector is a wrapper around a REST API (Logic Apps also supports SOAP APIs) 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).
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):
- Generic OAuth 2.0
- OAuth 2.0 for specific services, including Microsoft Entra ID, Dropbox, GitHub, and SalesForce
- Basic authentication
- API Key
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
- Once the custom connectors have been 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, and add the newly generated unique redirect URL to your OAuth 2.0 apps.
- We will enforce this update for existing OAuth 2.0 custom connectors starting on February 17, 2024. Any custom connector that has not been updated to use a per connector redirect URI will stop working for new connections, and show 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 simply 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 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:
An OpenAPI definition (formerly known as a Swagger file)
A Postman collection
Start from scratch using the custom connector portal (Power Automate and Power Apps only)
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 Microsoft-managed connectors are used. You'll need to create a connection to your API in order to use that connection to call any operations that you've exposed 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:
- Use a custom connector from a flow
- Use a custom connector from an app
- Use a custom connector from a logic app
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 may 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 will review your connector, check for technical and content compliance, and validate functionality.
For more information, see Submit your connectors for Microsoft certification.
The tutorial uses the Cognitive Services Text Analytics API. Microsoft already provides a connector for this API. It is a good example for teaching the custom connector lifecycle and how custom connectors can support unique scenarios.
The connector you'll build exposes the Text Analytics Sentiment operation, which returns the sentiment score (0.000 to 1.000) for the text input.
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:
Start the tutorial
If you're using Logic Apps, see:
If you're using Power Automate or Power Apps, see:
The tutorials and video in this section will give you the required insight to leverage Power Platform connectors as part of your implementations.
The following tutorials provide more detail for specific custom connector scenarios:
- Extend an OpenAPI definition
- Create a Postman collection for a custom connector
- Authenticate with Microsoft Entra ID
- Create a connector for a web API
- Use a webhook as a trigger
- Create a Logic Apps SOAP API connector
The following 45 minute video shows you how Power Platform connectors work. It also demonstrates how to create simple and advanced custom connectors.
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.