What's changed: Created PL-400 Chapter 3 (domain: Extend the platform, part 1 = plug-ins): Dataverse plug-ins (pipeline stages pre-validation/pre-operation/post-operation, sync/async, execution context IPluginExecutionContext, Pre/Post Images, Organization service CRUD, sandbox/performance, Plug-in Registration Tool) and custom APIs and business events (custom API message bound/unbound, Dataverse business events, plug-in implementation).
3.2Custom APIs and business events
Understand custom API messages (bound/unbound), Dataverse business events, registration/publishing, and invocation from plug-ins.
Bundle repeated server operations into a custom API as a custom message, reusable from multiple clients/plug-ins.
3.2.1Custom API and bound/unbound
A custom API defines a reusable custom operation (message) in Dataverse with input/output parameters, implemented by a plug-in. Choose bound (operates on a specific table’s record) or unbound (table-independent, global). It is distinct from a custom connector (which ingests an external REST API)—a custom API is an in-server custom operation.
3.2.2Dataverse business events
Dataverse business events publish business occurrences (e.g., order confirmed) as events that subscribers react to. Unlike CRUD table-operation events, you can define/publish semantically meaningful business events. Combine with custom APIs to compose extensible logic.
Cues: "reusable in-server custom operation" = custom API. "tied to a specific table" = bound; "table-independent global" = unbound. "publish a business occurrence as an event" = Dataverse business events. Custom API (own message) vs custom connector (ingest external API) differ.
Watch the mix-ups: (1) Custom API (in-server message) vs custom connector (ingest external API). (2) Bound (table-tied) vs unbound (global). (3) Business events (business) vs CRUD table events. (4) A custom API is implemented by a plug-in.
3.2.3Section summary
- Custom API = reusable custom message; bound (table)/unbound (global)
- Dataverse business events publish business occurrences as events
- A custom API is implemented by a plug-in; distinct from a custom connector
Sign in to track progress — Log in.
Quick check
(just a quick review)Q1. You want a reusable custom operation (message) in Dataverse callable from multiple clients/plug-ins. Best?
Q2. You want a custom API that operates on a specific table’s record. Which kind?
Q3. You want a global custom API not tied to any table. Which kind?
Q4. You want to publish a business occurrence like "order confirmed" as an event for subscribers to react. Best?
Q5. Which correctly distinguishes a custom API from a custom connector?
Keep track of your progress
The full study guide is free to read. Sign up free to practice with the question bank, track what you have read, review your mistakes, and highlight passages.

