🔒 Guided

Pre-launch preview. Authorised access only.

Incorrect code

Guided by A Guide to Cloud
Explore AB-900 AI-901
Guided PL-400 Domain 6
Domain 6 — Module 1 of 3 33%
24 of 26 overall

PL-400 Study Guide

Domain 1: Create a Technical Design

  • Solution Architecture: What Goes Where Free
  • Security by Design: Auth, Roles & DLP Free
  • Designing UX Components: Canvas, PCF & Client Scripts Free
  • Designing Platform Extensions: Connectors, Plug-ins & APIs Free
  • Integration & Automation Blueprints Free

Domain 2: Build Power Platform Solutions

  • Environment Setup & Security Troubleshooting
  • Solutions & Layers: ALM Foundations
  • CI/CD Pipelines for Power Platform

Domain 3: Implement Power Apps Improvements

  • Advanced Power Fx & Canvas Components
  • Troubleshoot & Optimise Apps

Domain 4: Extend the User Experience

  • Client Scripting: Form Events & the Client API
  • Commands, Buttons & Custom Page Navigation
  • PCF Components: Build & Lifecycle
  • PCF Components: Package, Deploy & Advanced Features

Domain 5: Extend the Platform

  • The Plug-in Pipeline: How Dataverse Processes Events Free
  • Writing Plug-ins: Business Logic, Service & Registration
  • Custom APIs & Business Events
  • Custom Connectors: OpenAPI & Authentication
  • Custom Connectors: Azure, Policies & Code
  • Dataverse APIs: Web API & Organisation Service
  • Azure Functions for Power Platform
  • Cloud Flows: Dataverse Triggers & Expressions
  • Cloud Flows: Security, Errors & Child Flows

Domain 6: Develop Integrations

  • Publishing Dataverse Events
  • Service Endpoints: Webhooks, Service Bus & Event Hub
  • Data Sync: Change Tracking, Alternate Keys & Upsert

PL-400 Study Guide

Domain 1: Create a Technical Design

  • Solution Architecture: What Goes Where Free
  • Security by Design: Auth, Roles & DLP Free
  • Designing UX Components: Canvas, PCF & Client Scripts Free
  • Designing Platform Extensions: Connectors, Plug-ins & APIs Free
  • Integration & Automation Blueprints Free

Domain 2: Build Power Platform Solutions

  • Environment Setup & Security Troubleshooting
  • Solutions & Layers: ALM Foundations
  • CI/CD Pipelines for Power Platform

Domain 3: Implement Power Apps Improvements

  • Advanced Power Fx & Canvas Components
  • Troubleshoot & Optimise Apps

Domain 4: Extend the User Experience

  • Client Scripting: Form Events & the Client API
  • Commands, Buttons & Custom Page Navigation
  • PCF Components: Build & Lifecycle
  • PCF Components: Package, Deploy & Advanced Features

Domain 5: Extend the Platform

  • The Plug-in Pipeline: How Dataverse Processes Events Free
  • Writing Plug-ins: Business Logic, Service & Registration
  • Custom APIs & Business Events
  • Custom Connectors: OpenAPI & Authentication
  • Custom Connectors: Azure, Policies & Code
  • Dataverse APIs: Web API & Organisation Service
  • Azure Functions for Power Platform
  • Cloud Flows: Dataverse Triggers & Expressions
  • Cloud Flows: Security, Errors & Child Flows

Domain 6: Develop Integrations

  • Publishing Dataverse Events
  • Service Endpoints: Webhooks, Service Bus & Event Hub
  • Data Sync: Change Tracking, Alternate Keys & Upsert
Domain 6: Develop Integrations Premium ⏱ ~11 min read

Publishing Dataverse Events

Push events from Dataverse to external systems. Learn to publish events using IServiceEndpointNotificationService and the Plug-in Registration Tool, and choose the right listening strategy.

Sending events to the outside world

☕ Simple explanation

Think of publishing events like a news agency sending bulletins.

When something important happens in Dataverse, it can broadcast that event to external systems. There are two ways: automatically (configure it in PRT — no code) or programmatically (C# code using IServiceEndpointNotificationService for conditional publishing).

Event publishing sends messages to registered service endpoints when data operations occur. Two mechanisms: PRT-based registration (configuration-only, publishes on every matching event) and IServiceEndpointNotificationService (code-based, enables conditional publishing with custom payloads).

Two publishing approaches

PRT for 'publish everything'; code for selective publishing
FeaturePRT Registration (No Code)IServiceEndpointNotificationService (Code)
SetupConfigure in Plug-in Registration ToolWrite C# in a plug-in
Conditional publishingNo — publishes on every matching eventYes — publish only when your code decides
Custom payloadStandard execution contextExecution context — you control WHEN to publish (the payload is still the context, enriched via shared variables)
Plug-in modeN/A — configured via PRT stepMust be registered as an ASYNCHRONOUS plug-in
Best forSimple event broadcastingConditional publishing, enriched payloads

Code-based publishing

// IMPORTANT: This plug-in must be registered as ASYNCHRONOUS
public class ConditionalEventPublisher : IPlugin
{
    public void Execute(IServiceProvider serviceProvider)
    {
        var context = (IPluginExecutionContext)
            serviceProvider.GetService(typeof(IPluginExecutionContext));
        Entity target = (Entity)context.InputParameters["Target"];
        
        // Only publish if order value exceeds threshold
        decimal orderValue = target.GetAttributeValue<Money>("totalamount")?.Value ?? 0;
        
        if (orderValue > 10000)
        {
            var notificationService = (IServiceEndpointNotificationService)
                serviceProvider.GetService(typeof(IServiceEndpointNotificationService));
            
            Guid endpointId = new Guid("your-endpoint-id");
            notificationService.Execute(
                new EntityReference("serviceendpoint", endpointId), context);
        }
    }
}

Choosing a listening strategy

Choose based on reliability needs and consumer count
ListenerDeliveryReliabilityBest For
WebhookHTTP POST to URLLow — lost if endpoint downSimple notifications, low volume
Service Bus (Queue)Message in queueHigh — guaranteed deliveryReliable processing, one consumer
Service Bus (Topic)Message to topicHigh — filtered subscriptionsMultiple subscribers
Event HubEvent in streamHigh — massive throughputTelemetry, analytics, streaming
Power AutomateFlow triggerMedium — built-in retryLow-code reactions
💡 Exam tip: Webhook vs Service Bus

If the question mentions reliability, guaranteed delivery, or consumer might be offline — the answer is Service Bus. If it says simple notification to an always-available endpoint — webhook is fine.

Question

What is IServiceEndpointNotificationService?

Click or press Enter to reveal answer

Answer

A Dataverse service in plug-in code that programmatically publishes events to registered service endpoints. Unlike PRT-based publishing (fires on every event), code-based publishing gives you conditional control — publish only when specific criteria are met.

Click to flip back

Question

What is the difference between Service Bus queues and topics?

Click or press Enter to reveal answer

Answer

A queue delivers each message to ONE consumer (point-to-point). A topic delivers to MULTIPLE subscriptions (pub-sub). Each subscription can have its own filter. Use queues for single-consumer; topics for multiple systems.

Click to flip back

Knowledge Check

A developer needs to publish Dataverse events to a warehouse system that may be offline for hours during maintenance. Which approach?

🎬 Video coming soon

Next up: Service Endpoints — configuring webhooks, Azure Service Bus, and Event Hub.

← Previous

Cloud Flows: Security, Errors & Child Flows

Next →

Service Endpoints: Webhooks, Service Bus & Event Hub

Guided

I learn, I simplify, I share.

A Guide to Cloud YouTube Feedback

© 2026 Sutheesh. All rights reserved.

Guided is an independent study resource and is not affiliated with, endorsed by, or officially connected to Microsoft. Microsoft, Azure, and related trademarks are property of Microsoft Corporation. Always verify information against Microsoft Learn.