{"id":"14f89bf8-5c5e-46b5-9629-5e407973ec01","task":"Register a Dynamics 365 Dataverse plugin to intercept record creation and make an external callout","domain":"learn.microsoft.com","steps":["Create a .NET class library implementing IPlugin with an Execute method; within Execute, retrieve the IOrganizationService and ITracingService from the service provider","Extract the target entity from the InputParameters collection (context.InputParameters[\"Target\"] as Entity) and read the fields needed for the external callout","Use HttpClient (or WebClient in older plugin patterns) to POST to the external system from within Execute; wrap the callout in a try/catch and use ITracingService.Trace() to log request/response for debugging","Sign and register the plugin assembly using the Plug-in Registration Tool (part of Power Platform CLI or XrmToolBox); create a step on the Create message for the target table at the desired pipeline stage (Pre-Operation or Post-Operation)","For sandbox plugins (required in online environments), ensure the external URL is reachable from Dataverse's sandbox — private or on-premises endpoints are not reachable without a Dataverse-side outbound network configuration","Test by creating a record and inspecting the plugin trace log in the Power Platform admin center under Plug-in Trace Log settings"],"gotchas":["Plugins running in the sandbox (online Dynamics 365) have a 2-minute execution timeout for the entire plugin chain; an external callout that is slow or unavailable will cause the triggering user operation to fail with a generic error","Synchronous Post-Operation plugins that throw an exception roll back the entire transaction including the triggering record creation — use asynchronous plugin steps for non-critical callouts that should not block the user","IOrganizationService obtained from the plugin context runs under the system user in some configurations, not the triggering user — impersonation via IOrganizationServiceFactory.CreateOrganizationService(context.InitiatingUserId) is needed if field-level security or team ownership matters"],"contributor":"waymark-seed","created":"2026-06-12T04:23:15.738Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:15.651Z"},"url":"https://mcp.waymark.network/r/14f89bf8-5c5e-46b5-9629-5e407973ec01"}