šŸ”’ Guided

Pre-launch preview. Authorised access only.

Incorrect code

Guided by A Guide to Cloud
Explore AB-900 AI-901
Guided PL-400 Domain 5
Domain 5 — Module 8 of 9 89%
22 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 5: Extend the Platform Premium ā± ~13 min read

Cloud Flows: Dataverse Triggers & Expressions

Build smart automations with Dataverse triggers and complex expressions. Learn trigger configuration, filtering, retry policies, and the expression language for Power Automate.

Making flows that react intelligently

ā˜• Simple explanation

Think of a Dataverse trigger as a doorbell camera.

It watches for specific events (someone approaches the door) and triggers an action (record video, send notification). But a smart camera does not trigger for every movement — it filters: only trigger for people, not cars or animals. It also has a retry plan: if the notification fails to send, try again in 30 seconds.

Expressions are the brains of your flow. They transform data, make decisions, and calculate values. Think of them like formulas in a spreadsheet — but for flow actions.

The Dataverse connector provides triggers (When a row is added, modified, or deleted) and actions (Create, Update, List rows, etc.) for Power Automate cloud flows. Triggers can be configured with filter expressions (OData $filter) to limit which records fire the flow, column selection to trigger only on specific field changes, and retry policies to handle transient failures.

Expressions in Power Automate use the Workflow Definition Language (WDL) — a set of functions for string manipulation, date/time, math, logical operations, and data transformation. Complex flows often require nested expressions to transform data between steps.

Dataverse trigger configuration

TriggerFires WhenKey Settings
When a row is addedNew record createdTable name, scope (org/BU/user)
When a row is added, modified or deletedAny CRUD operationChange type (added/modified/deleted), column filter, row filter
When an action is performedCustom API or bound action calledTable name, action name

Trigger filters (critical for performance)

Without filters: The flow triggers on EVERY change to the table — even changes your flow does not care about. This wastes flow runs and can cause throttling.

With filters: The flow only triggers when specific conditions are met:

Filter TypeHow to ConfigureExample
Column filterSelect specific columnsOnly trigger when statuscode or priority changes
Row filterOData $filter expressionstatuscode eq 1 — only trigger for Active records
ScopeOrganisation, Business Unit, UserOrganisation = all records; User = only records owned by the flow owner

OData filter examples

// Only trigger for high-priority orders
priority eq 1

// Only trigger for records in specific region
regioncode eq 'NZ' and statuscode eq 1

// Only trigger for records with value over $10,000
totalamount gt 10000
šŸ’” Exam tip: Column filters prevent infinite loops

A common exam scenario: ā€œA flow triggers when a record is modified. The flow updates a field on that same record. This creates an infinite loop.ā€ The fix: use a column filter to trigger ONLY when specific fields change — not the field your flow updates.

Example: Flow triggers when statuscode changes. Flow updates processeddate. Since processeddate is not in the column filter, the update does not re-trigger the flow.

Complex expressions

Power Automate expressions use functions for data transformation:

String functions

// Concatenate
concat('Hello, ', triggerOutputs()?['body/firstname'], '!')

// Format a date
formatDateTime(triggerOutputs()?['body/createdon'], 'dd MMM yyyy')

// Extract substring
substring(variables('orderNumber'), 0, 3)

// Replace text
replace(body('Get_item')?['description'], 'OLD', 'NEW')

Conditional expressions

// If-then-else
if(equals(triggerOutputs()?['body/priority'], 1), 'Critical', 'Normal')

// Coalesce (first non-null value)
coalesce(triggerOutputs()?['body/preferredname'], triggerOutputs()?['body/firstname'])

// Null check
if(empty(triggerOutputs()?['body/email']), 'No email', triggerOutputs()?['body/email'])

Date/time functions

// Add days to a date
addDays(utcNow(), 7)

// Difference between dates
div(sub(ticks(variables('endDate')), ticks(variables('startDate'))), 864000000000)

// Start of month
startOfMonth(utcNow())

Retry policies

Actions in Power Automate can be configured with retry policies for transient failures:

PolicyBehaviourBest For
Default4 retries with exponential intervalsMost actions
Fixed intervalRetry at set intervals (e.g., every 30s)When you know recovery time
ExponentialIncreasing intervals (1s, 2s, 4s, 8s…)API rate limiting
NoneNo retry — fail immediatelyWhen retries would cause duplicates
Question

How do you prevent a cloud flow from creating an infinite loop when it modifies its own trigger table?

Click or press Enter to reveal answer

Answer

Use column filters on the trigger. Only trigger when specific fields change (e.g., 'statuscode'). The flow's own updates to other fields (e.g., 'processeddate') will not re-trigger the flow because those fields are not in the column filter.

Click to flip back

Question

What is the coalesce() expression in Power Automate?

Click or press Enter to reveal answer

Answer

coalesce() returns the first non-null value from a list of arguments. Example: coalesce(preferredName, firstName, 'Unknown') returns preferredName if it exists, otherwise firstName, otherwise 'Unknown'. Useful for handling optional fields with fallback values.

Click to flip back

Question

What retry policy should you use when calling an API that returns HTTP 429 (rate limit)?

Click or press Enter to reveal answer

Answer

Exponential backoff — increasing intervals between retries (1s, 2s, 4s, 8s...). This gives the API time to recover and reduces the chance of hitting the rate limit again. The Retry-After header from the 429 response should be respected when available.

Click to flip back

Knowledge Check

A cloud flow triggers when any record in the Contact table is modified. The flow updates the 'Last Processed' field on the same Contact. Users report that the flow runs hundreds of times per minute. What is the root cause and fix?

šŸŽ¬ Video coming soon

Next up: Cloud Flows: Security, Errors & Child Flows — managing sensitive data, error handling patterns, and reusable flow logic.

← Previous

Azure Functions for Power Platform

Next →

Cloud Flows: Security, Errors & Child Flows

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.