Skip to main content

Posts

Showing posts from January, 2026

Integrating ERP with D365 CE: Where Most Projects Go Wrong

  Integrating ERP with D365 CE: Where Most Projects Go Wrong CRM–ERP integration is where good Power Platform programs either mature… or collapse. The business expectation is simple: “Sales should see orders.” “Finance should get confirmed deals.” “Operations should know what was promised.” So teams rush to connect D365 CE and ERP. And almost every time, the same mistakes appear: Synchronous calls during save Field-to-field replication Bi-directional updates without ownership CRM trying to “look like ERP” ERP trying to “behave like CRM” The result is a tightly coupled, fragile system where neither platform is allowed to be what it is good at. The Core Misunderstanding CRM and ERP serve different truths: Platform                Truth It Owns D365 CE                              Customer intent & engagement ERP     ...

D365 CE / Power Platform - Designing for Supportability: What Happens at 2 AM?

  Designing for Supportability: What Happens at 2 AM? Every architecture looks clean at 2 PM. It’s only at 2 AM , when something breaks in Production, that the truth appears. An integration silently stops A flow fails halfway An order never reaches ERP A customer is stuck in limbo And someone asks the most important question in enterprise IT: “How do we know what happened?” If your honest answer is: “Check the flow run history.” “Enable tracing and retry.” “We’ll reproduce it in UAT.” “Let’s ask the vendor.” …then your system is functional —but not supportable . Supportability is not an operations problem. It is an A rchitectural Outcome . The Invisible System Problem Many Power Platform solutions fail in production not because logic is wrong—but because failures are: Silent Distributed Non-deterministic Hard to correlate Impossible to replay You may have: Plugins in Dataverse Flows in Power Automate Azure Function...

Environment Strategy: The Most Underrated Decision in Power Platform / D365 CE

  Environment Strategy: The Most Underrated Decision in Power Platform Ask any team where their Power Platform problems started, and you’ll often hear: “Someone changed it in Prod.” “We’re not sure which environment is correct.” “UAT doesn’t behave like Prod.” “This flow only exists in one place.” These are not operational issues. They are architectural consequences . Environment strategy is not a setup task. It is a foundational design decision . The Illusion of “Just Three Environments” Many programs start with: Simple. Familiar. Comfortable. But without architectural intent, this becomes: Dev used for experimentation UAT used for partial fixes Prod used for “quick changes” No clear source of truth No deterministic promotion path Environments drift. Behavior diverges. Confidence erodes. Environments Are Contracts Each environment should have a purpose : Environment          Architectural Role Dev    ...

From Workflows to Event-Driven D365 CE: Modernizing CE Architectures

  From Workflows to Event-Driven D365 CE: Modernizing CE Architectures Traditional D365 CE implementations are built around reactive automation : A record is created → trigger a workflow A field changes → run a flow A status updates → call a plugin This model is familiar. It’s easy to visualize. And at small scale, it works well. But at enterprise scale, it becomes fragile. You end up with: Dozens of hidden automations Implicit dependencies between processes Execution order you can’t control Debugging by trial and error “Don’t touch that field, it breaks something” The system becomes procedural instead of intentional . This is where event-driven architecture changes everything. Workflow Thinking vs Event Thinking Workflow mindset: “When this happens, do these five things.” Event-driven mindset: “This business fact occurred.” Examples: Workflow Thinking Event Thinking On update of Status = Approved “OrderApproved” On create of Account ...

ALM in D365 CE / CRM / Power Platform Is an Architecture Problem, Not a DevOps One

  ALM in D365 CE / CRM / Power Platform Is an Architecture Problem, Not a DevOps One In many Power Platform programs, ALM is treated as an afterthought: “We’ll export the solution.” “Dev will give UAT a managed copy.” “Prod changes are small—we’ll patch manually.” “Pipelines can come later.” And for a while, it works. Until: A hotfix in Prod is overwritten A flow breaks after an import A plugin assembly version mismatch crashes execution A security role disappears Nobody knows which environment is the source of truth At that point, ALM becomes “a DevOps problem.” But in reality, it’s an A rchitecture Problem . ALM Reflects How You Design Your ALM pain is usually a symptom of how the solution is structured: One massive solution Mixed concerns (UI, logic, integration in one package) Unmanaged components in higher environments Environment-specific values hardcoded No clear ownership boundaries Pipelines can move packages. They can...

Why Point-to-Point Integrations Kill D365 CE / CRM

  Why Point-to-Point Integrations Kill D365 CE / CRM Most CRM failures are not caused by bad forms, missing fields, or even poor UX. They are caused by integration chaos . It often begins with good intentions: “CRM just needs to talk to ERP.” “We’ll quickly connect it to Marketing.” “Finance needs a feed from Opportunities.” “This vendor has a REST API—we can wire it directly.” Before long, your D365 CE environment looks like this: Each line is a custom connector, plugin call, or Power Automate flow. Each one is tightly coupled. Each one has its own error handling, authentication model, and failure mode. It works . Until it doesn’t. The Hidden Cost of Point-to-Point From a functional perspective, the business sees: Records stuck in “Processing” Statuses out of sync “It worked yesterday” scenarios Manual rework Loss of trust in the system From a technical perspective, you inherit: No central visibility No replay mechanism No consistent co...

Dataverse Is Not a Data Lake: Designing for Analytics at Scale

  Dataverse Is Not a Data Lake: Designing for Analytics at Scale One of the most common misconceptions in enterprise Power Platform programs is this: “All our data is in Dataverse—so we can just report on it.” Technically, yes. Architecturally, no. Dataverse is an operational data store. It is optimized for: Transactional workloads Record-level security Business process execution User interaction It is not designed to be: A historical store A high-volume analytical engine A cross-domain reporting platform A system-of-record for enterprise BI Yet many programs attempt to turn CRM into a data warehouse—by adding more tables, more calculated columns, more rollups, and more dashboards. It works… until scale arrives. The Symptoms of “All-in Dataverse” Analytics You start noticing: Slow views and dashboards Complex calculated fields that break during imports Aggregations that time out Heavy API usage from BI tools Users complaining...

Plugins Are Not Microservices: Rethinking Business Logic in D365 CE

  Plugins Are Not Microservices: Rethinking Business Logic in D365 CE In many D365 CE implementations, plugins slowly evolve into something they were never meant to be: mini integration engines, rule processors, and orchestration layers. It usually starts innocently: “Let’s validate this on update.” “We’ll call the ERP API from here.” “We can just calculate this in a plugin.” “It’s real-time, so users will see the result immediately.” Before long, the CRM pipeline becomes a maze of synchronous plugins doing far more than enforcing business rules. Performance degrades. Debugging becomes painful. A simple field change triggers five downstream systems. And every deployment feels like a gamble. Plugins are powerful—but they are not microservices . What Plugins Are Actually Good At Plugins excel when they are: Close to the data lifecycle Deterministic and fast Focused on validation or enrichment Scoped to a single business transaction Examples of goo...