Context
After a cross-tenant migration, a production Dynamics 365 platform with integrations across several business areas had slowed down.
Evidence
Dataverse and Admin Centre analytics showed high-volume, long-running flows. Plugin trace logs showed redundant, blocking synchronous plugins. Application Insights showed polling integrations peaking at busy times.
Root cause
Duplicate plugin executions and overlapping flows multiplied Dataverse requests for every transaction, while scheduled polling concentrated load at peak.
What we did
- Ranked flows and plugins by consumption and user impact
- Removed redundant executions and moved heavy logic to asynchronous processing
- Consolidated overlapping flows
- Replaced polling with event-driven Service Bus and Azure Functions processing
- Added end-to-end telemetry
Outcome
40% fewer Dataverse API calls, 60% fewer flow runs, transactions 30 to 50% faster, and no throttling at peak.