How to – Use Custom API to create custom messages in Dynamics 365
Custom API (preview) allows us to define our custom messages that can be called from web services, similar to Custom Actions. Usually, we would be creating custom workflow actions just to create a new message, to which we can hook our plugin, without defining any logic in the workflow. For this scenario or pattern now we can use Custom API instead.
There are different ways of creating a custom API.
Through the Maker Portal.
Using Web API or Organization Service.
Editing the solution files.
The 3 key entities involved here are
CustomAPI
CustomAPIRequestParameter
CustomAPIResponseProperty
Let us try creating a CustomAPI through the maker portal.
Create a new solution, and click on New and select Custom API
Let us start with a very basic custom action.
Unique Name
This will be the name of the message. Should have the prefix same as solution’s publisher.
Name
The name of the Custom API will show up inside the solution
Display Name
Localized display name of the Custom API
Description
Localized description of the Custom API
Binding Type
Value: 0 Label: Global
Value: 1 Label: Entity
Value: 2 Label: EntityCollection
Bound Entity Logical Name
Logical name of the entity in case of binding type – Entity and EntityCollection.
Is Function
Value: 0 Label: No
Value: 1 Label: Yes
Allowed Custom Processing Step Type
Value: 0 Label: None Meaning: No custom processing steps allowed.
Value: 1 Label: Async Only Meaning: Only asynchronous custom processing steps allowed
Value: 2 Label: Sync and Async Meaning: No restriction. 3rd party plug-ins can add synchronous logic to change the behavior of the message
Execute Privilege Name
Name of the Privilege that is required for the execution of the Custom API.
Plugin Type
Reference of the plugin registered for the Custom API
So right now we have a very basic custom API registered of Global type, which doesn’t allow any steps to be registered and doesn’t need any privileges to execute
Let us write a sample plugin and associate with this new message.
Let us register the assembly
Now let us go back to our Custom API record and associate the Plugin registered.
Let us trigger the plugin by calling the Custom API through the Postman.
Let us check the plugin trace log inside Dynamics 365 App.
I recently came across a small but useful addition to the Dynamics 365 / Power Apps lookup experience: the Drawer Lookup Control. With the standard lookup, selecting a value typically opens the familiar lookup…
Recently we had a requirement to export the working hours of Bookable Resources from Dynamics 365 for a specified date range and make that information available to a third-party system. Rather than reading the…
A common requirement with Business Process Flows is this: the user must capture all the required details on the form before they are allowed to move to the next stage of the BPF. The…
Microsoft 365 Copilot brings conversational AI directly into Model-Driven Apps, allowing users to ask natural language questions about Dataverse data, quickly locate records, and improve productivity without leaving the application. In this post, we…
Recently, I cleared the Microsoft Certified: Architecting Agentic AI Business Solutions (AB-100) exam. While preparing, I ended up creating this one-page Architect’s Compass for my last-minute revision. Instead of memorizing every Microsoft service, I…
Power Apps now lets us render a column’s data as a small graphic in the grid – a gauge, a sparkline, a colored bar, or stars – instead of plain text. We tried it…
Scenario Working on a custom multi-entity Business Process Flow (Opportunity → Quote) recently, we ran into this error while trying to reactivate the process: The BPF (custom_salesprocess) had already traversed several stages — Generate…
We recently refactored a large JavaScript solution — replacing a number of deprecated methods with their supported equivalents, along with some performance improvements — the kind of change that touches a lot of files…
Recently, we ran into an interesting issue while working with a Dynamics 365 / Dataverse environment. Even though the user was assigned the System Administrator security role, the environment did not appear in either…
While validating record counts for a Work Orders view in Dynamics 365 Field Service, we ran into the same underlying issue covered in an earlier post – Why SQL4CDS Record Counts May Not Match…
11 thoughts on “How to – Use Custom API to create custom messages in Dynamics 365”