Overview
A Logic Apps custom connector lets you instrument your Azure Logic Apps and Power Automate flows to send tracking data to Business Activity Monitoring (BAM) without writing raw HTTP calls. The connector exposes BAM's Start Transaction and Checkpoint operations as native designer actions, making them available alongside other built-in connectors in the Logic Apps designer and Power Automate flow builder.
Business value
Using a custom connector reduces the effort needed to add BAM tracking to existing Logic Apps and Power Automate flows. Teams familiar with the designer view can drop in BAM actions using dynamic content and output bindings, keeping tracking logic consistent across flows without manual HTTP configuration per stage.
Prerequisites
- A BAM environment deployed in your Azure subscription.
- A business process configured in the Turbo360 portal.
- Your BAM Host API Key and Host URL, available from Configuration > Connection details in the Turbo360 portal.
- Access to the Azure portal (for Logic Apps) or the Microsoft Flow portal (for Power Automate).
Required permissions
| Permission | Role |
|---|---|
| Read BAM configuration and download Swagger | BAM Reader or higher |
| Deploy custom connector to Azure subscription | Azure Contributor on the target subscription |
How it works
BAM provides an OpenAPI (Swagger) specification that describes its tracking endpoints. You import this spec into Azure Logic Apps or Power Automate as a custom connector. Once imported, the connector's actions — Start Transaction Connector and Checkpoint Connector — appear in the designer alongside built-in connectors.
The connector uses the BAM host URL and API key to authenticate calls. Dynamic content from the BAM action responses (such as TransactionInstanceId and StageInstanceId) is available as output for downstream actions in the flow.
- When you deploy the connector to a subscription, it is available exclusively within that subscription.
- The Logic Apps using the connector must be deployed in the same Azure region as the connector.
Steps
The following steps cover deploying the custom connector and instrumenting Logic App and Power Automate flows. Navigate to Configuration > Connection details in the Turbo360 portal before starting to have your Host URL and Host API Key ready.
Deploy the custom connector
Deploying the connector makes it available in the Azure subscription so you can use it in Logic Apps and Power Automate.
You can deploy the connector in one of two ways:
Option 1 — Automated deployment from Turbo360:
- Navigate to Configuration in the Turbo360 portal.
- Click the Actions menu.
- Select Deploy Custom Connector.
- Provide your subscription information and select the target resource group.
- Click Deploy.
Option 2 — Manual import via Swagger file:
- Navigate to Configuration in the Turbo360 portal.
- Click the Actions menu.
- Select Download Swagger to download the connector definition file.
- Go to the Azure portal and create a new Logic app custom connector.
- Import the downloaded JSON file. The Host URL is populated automatically during import.
Access connection details
After creating a business process, retrieve the Host API Key and Host URL before instrumenting your flows.
- Navigate to Configuration in the Turbo360 portal.
- Select Connection details.
- Copy the Host API KEY and Host URL for use in your connector configuration.
Instrument a Logic App flow
Instrumenting a Logic App flow adds BAM tracking actions to an existing orchestration so each stage is recorded in Business Activity Monitoring.
- Navigate to the Azure portal and open or create a Logic App.
- In the designer, add a new Action.
- Search for your BAM custom connector and select the Start Transaction Connector action.
- Configure the connector parameters with your business process and transaction names.
Start Transaction Connector
The Start Transaction Connector initiates the transaction in a business process and acts as the starting stage of the transaction. You can also log exceptions, archive the message, and complete the transaction using this action.
The connector returns three output fields:
| Output | Description |
|---|---|
| TransactionInstanceId | Correlation ID for the complete transaction. Pass this to all subsequent Checkpoint actions in the flow. |
| StageInstanceId | ID for the specific stage instance. Used to update the stage in a transaction. |
| Result | Indicates whether the transaction is completed. |
Checkpoint Connector
The Checkpoint Connector updates the status of stages and transactions. It can also archive the message and collect configured global and tracked properties based on stage configuration.
Required parameters:
| Parameter | Description |
|---|---|
| BAM-TransactionInstanceId | Correlation ID from the Start Transaction output. |
| BAM-Stage | Name of the stage. |
| BAM-StageStatus | Status of the stage: Success, InProgress, or Failure. |
You can also set BAM-IsTransactionComplete and BAM-ArchiveMessage on any checkpoint.
The checkpoint connector returns the same three output fields as the Start Transaction connector: TransactionInstanceId, StageInstanceId, and Result.
Logging exceptions
The Checkpoint connector supports logging exceptions at a stage. Pass the following parameters to record exception details:
| Parameter | Description |
|---|---|
| Exception Message | The reason or message for the exception in the stage. |
| Exception Code | Error code for the exception. |
Correlation between Logic Apps
In async flows where the TransactionInstanceId is not available on the response leg, use the Checkpoint with Correlation connector to look up the transaction instance by a tracked functional property (for example, an order reference number).
To use correlation:
- Ensure the functional property is tracked in the first flow using a standard checkpoint connector.
- In the response flow, use the Checkpoint with Correlation connector.
- Provide the Property Name and Property Value of the correlation property.
The runtime performs a lookup using the rule: "Find the TransactionInstanceId where the specified property name has a value equal to the specified property value." The possible outcomes are:
- 0 results — the runtime creates a new transaction instance.
- 1 result — the runtime updates the matched transaction with the new stage.
- Multiple results — the runtime updates the most recent matching transaction.
BAM-IgnoreNotFound: Enabling this parameter causes the checkpoint to look for the previous stage's flag. If the previous stage cannot be located after several retries, the transaction is ignored.
Instrument a Power Automate flow
Instrumenting a Power Automate flow adds BAM tracking actions to an existing Microsoft Power Automate workflow using the same custom connector.
- Navigate to the Microsoft Flow portal.
- Under Data, create a Custom Connector.
- Import the downloaded JSON file. The Host URL is populated automatically during import.
- Add the Start Transaction Connector action to your flow, then add Checkpoint Connector actions for subsequent stages.
The Start Transaction and Checkpoint connectors for Power Automate behave identically to the Logic Apps versions — the same parameters, outputs, exception logging, and correlation options apply.
For correlation across async Power Automate flows, use the Checkpoint with Correlation connector with the same Property Name and Property Value pattern described above. The same three outcomes apply.
Limitations
- A custom connector deployed to a specific Azure subscription is only available within that subscription. Connectors do not cross subscription boundaries.
- The connector must be deployed in the same Azure region as the Logic Apps that use it.
- The Clone connector operation and message archival (
BAM-ArchiveMessage) are Custom Logging type features and are not available in Data Queries type business processes.
Troubleshooting
-
Custom connector does not appear in the Logic App designer
Cause: The connector was deployed to a different Azure subscription or region than the Logic App.
Fix: Verify the connector and the Logic App are in the same subscription and region. Redeploy the connector to the correct subscription if needed. -
Connector import fails when importing the Swagger file
Cause: The Swagger file was downloaded from a different BAM configuration or is corrupted.
Fix: Re-download the Swagger file from Configuration > Actions > Download Swagger and re-import. -
TransactionInstanceId is empty in the Start Transaction output
Cause: The business process name or transaction name does not match what is configured in the Turbo360 portal.
Fix: Verify the values passed to BAM-BusinessProcess and BAM-Transaction exactly match the names configured in the portal. -
Checkpoint with Correlation creates a new instance instead of updating the existing transaction
Cause: The tracked property was not recorded in the first flow, or the property value does not match.
Fix: Confirm the correlation property is tracked via a standard checkpoint in the initiating flow before the Checkpoint with Correlation is called. -
BAM-IgnoreNotFound is enabled but transactions are still being created
Cause: The previous stage's flag has not been set in the transaction configuration.
Fix: Ensure the stage that sets the flag is successfully completing before the correlated checkpoint call is made.