Posts

How to Debug a Dynamics 365 Plugin: Trace Logs, the Profiler and the Usual Suspects

A plugin that throws a clear error is easy. The ones that cost you an afternoon are the quiet ones: the step that never fires, the update that silently does nothing, the async job that fails at two in the morning and leaves no trace anyone thinks to look for. This is the order I work through when a Dynamics 365 plugin misbehaves, from the cheapest check to the most involved. It follows on from the plugin development guide and from the older post on enabling tracing on-premises , and it assumes you are working against a sandboxed plugin in Dynamics 365 online, where you cannot attach a debugger to the server. Step 1: establish whether the plugin is running at all Before you write a single line of diagnostic code, answer one question: is your code even being invoked? A surprising share of “my plugin does not work” turns out to be “my plugin never ran.” Open the step in the Plugin Registration Tool and check five things. Message. Create and Update are not the on...

Everyday Dynamics 365 Form JavaScript: Read-Only Fields, Lookup Filters, Autocomplete and Metadata

Alongside the Web API series, this blog has carried a handful of very short posts over the years — a code snippet, a sentence of explanation, and not much else. Individually they were notes I wrote so I would not have to work the same thing out twice. Together they cover something more useful: the small pieces of JavaScript and metadata plumbing you end up needing on almost every Dynamics 365 form. I have merged five of those posts into this one, kept the code exactly as it worked, and added the context that was missing the first time round: when to use each one, what breaks, and what has changed now that Xrm.Page is deprecated. 1. Make every field on a form read-only This comes up whenever a record reaches a state where it should be locked — an approved order, a closed case, a submitted application. Rather than disabling forty fields one at a time in business rules, walk the controls collection and disable everything. function makeFieldsReadOnly() { var controls = Xrm....

Dynamics 365 Web API: The Complete CRUD, FetchXML and Actions Reference

Between 2018 and 2022 I published a series of short posts on this blog, each covering one Dynamics 365 Web API operation: create, retrieve, update, delete, associate, disassociate, calling actions. They were written as notes to myself while working on real implementations, and over the years they became the posts people landed on most often. The problem with that format is that nobody works on one operation in isolation. When you write JavaScript for a Dynamics 365 form you usually need three or four of these at once, and jumping between ten browser tabs to copy each helper is a poor way to spend an afternoon. So I have merged the whole series into this single reference, corrected a couple of mistakes that were in the original snippets, added the missing helper function they all quietly depended on, and brought the guidance up to date for Dynamics 365 in 2026. Everything below is code I have actually used in production environments. Where something is now deprecated I have said so and ...

Dynamics 365 CRM & Power Platform Learning Roadmap for Fresh Graduates: A Calm Step-by-Step Guide from Zero to Job-Ready Skills

⚠️ NEW READER: Read this whole page once to see the full picture. Then close it. Tomorrow morning, open this page again, scroll to Phase 1 , and only focus on that. One step at a time. You have got this. If you are a fresh graduate, starting with Microsoft Dynamics 365 and the Power Platform can feel like drowning in alphabet soup. You will hear words like Dataverse, Plugins, Xrm API, ALM, and Solutions —and your first instinct might be to close the tab and walk away. Don't. Take a deep breath. The goal is not to learn everything at once. The goal is to learn the right things in the right order . This roadmap is designed to hold your hand from absolute zero to interview-ready, one small step at a time. 🎯 Before You Start: Know Which "Hat" You Want to Wear Dynamics 365 professionals generally fall into two tracks. Read these carefully: Role What You Do Certification Path Functio...

Power Platform + AI in 2026: Why Low-Code Is Becoming Agentic (And Why That Matters for You)

Quick question: when was the last time you built a Power Automate flow that only followed rigid if/else logic? If it was recently, you're already behind where the platform is heading. In 2026, the biggest shift in the Power Platform world isn't a new connector or a UI refresh, it's that low-code automation is quietly becoming agentic, and the teams who figure this out first are shipping smarter apps with less rework. From "low-code" to "low-code + AI agent" For years, Power Platform meant Power Apps for interfaces, Power Automate for wiring things together, and Power BI for reporting. That's no longer the full picture. Microsoft Copilot Studio now lets you build agents that plug directly into flows and apps, agents that can interpret unstructured input, reason over context, and decide what happens next instead of just executing a fixed script. As Microsoft describes it, an agent can "autonomously determine the best action to take based on its...

Dynamics 365 CRM in 2026: How AI Copilot and Autonomous Agents Are Redefining Customer Engagement

Microsoft Dynamics 365 has quietly stopped being "just a CRM." Over the past couple of release waves, it has turned into something closer to an AI-powered command center for customer engagement, where sellers, marketers, and service agents lean on Copilot and autonomous agents to do the busywork so humans can focus on relationships and decisions. If you manage, sell on, or build for Dynamics 365, here are the shifts worth paying attention to right now. 1. Copilot and AI Agents Are No Longer an Add-On Copilot used to feel like a helpful sidebar. Today it is woven into the core workflow: drafting follow-up emails from a call transcript, summarizing a messy case history before a support agent even opens the record, or flagging which leads are actually worth a rep's time. The bigger change is the rise of semi-autonomous agents that can complete multi-step tasks on their own, such as qualifying inbound leads or triaging service tickets, and only loop in a human when judgmen...

Mastering Dynamics 365 Plugin Development: A Complete Step-by-Step Guide

If you have been working with Microsoft Dynamics 365 or the Power Platform for any length of time, you have almost certainly hit a scenario where out-of-the-box configuration is not enough. That is exactly where plugins come in. Plugins let you execute rich, custom server-side business logic at precisely the right moment — before a record saves, after it saves, or asynchronously in the background — and they fire regardless of how the data change was triggered. In this comprehensive guide we cover everything from setting up your environment to writing, registering, testing, and deploying production-ready plugins. What Is a Dynamics 365 Plugin? A plugin is a .NET class library assembly that implements the IPlugin interface provided by the Dataverse SDK. When registered against a specific event — for example Create on the Account entity — Dataverse automatically invokes your plugin's Execute method every time that event fires, passing a rich IServiceProvider context you can ...