Bypass Power Automate Flows in Dynamics 365 Data Load Process

30 May 2023
KingswaySoft Team

Your Dynamics 365 system might be powered with many Power Automate flows in order to facilitate an event-triggered integration or process automation. When using API-based tools to load data into Dynamics 365, these Power Automate flows are generally automatically fired. This can create a couple of issues:

  • Such Power Automate flows can create some overhead for the data load process, which could include some unnecessary record creation or process automation.
  • They may incur some cost to you or your client as Power Automate is generally a usage-based subscription. The cost can be substantial when you work with a large number of records in your data load process.

The good news is that Microsoft Dynamics 365 API team has recently introduced a new platform feature designed to bypass Power Automate flows when the feature is enabled in SDK service calls. This feature is delivered under the SuppressCallbackRegistrationExpanderJob feature, according to Microsoft's online documentation.

  • If you are a Dynamics 365 developer, the following would be the way to enable the feature when working with the organization service call - we should note that this code snippet is based on the sample code provided by Microsoft, in the documentation above, with some minor adjustments.
    var account = new Entity("account");
    account["name"] = "Adventure Works";
    var request = new CreateRequest
        Target = account
    request.Parameters["SuppressCallbackRegistrationExpanderJob"] = true;
  • When working with the WebAPI service endpoint, the option should be inserted as an HTTP header.
    POST [Organization URI]/api/data/v9.2/accounts HTTP/1.1
    OData-Version: 4.0
    OData-MaxVersion: 4.0
    Content-Type: application/json
    Accept: application/json
    MSCRM.SuppressCallbackRegistrationExpanderJob: true
        "name": "Adventure Works"

It is worth noting that the feature was added in a manner that is almost identical to the the BypassCustomPluginExecution platform feature previously available, which makes the development significantly easier than if it had been done differently.

With the feature available, our team was able to enable such support in our recent v23.1 software releases, thanks to the information shared by the Microsoft team via the online documentation page and other channels. For reference, the feature is part of our Process Optimization feature group in our CRM/CDS Destination Component. When enabled, it should bypass your Power Automate flows.

It is worth mentioning that you will need to have our v23.1 release or above installed to be able to see and leverage the feature. We should mention that it was initially released as a preview feature in our v23.1 release.

The feature is straightforward to use, as you can see from the screenshots above. It is a single checkbox to enable the feature. Once enabled, your data load process should not trigger the firing of your Power Automate flows. We hope you find this useful for your large-scale data integration and migration.