O24DE5: Connecting D365FO and Dataverse: Virtual Entities, Dual Write, and more
<for my reference only: O25 = October 2025; DE5 = with Data Entity Tag;>
To be honest, I haven't been fortunate to work on an Implementation project where I could use Virtual Entities, as much as I would love to - yet! However, I did encounter requirements of making ERP and CRM systems “talk” to each other seamlessly. And over the years, Microsoft has introduced several integration approaches - each with its own strengths, limitations, and setup nuances. In this post, I want to share what I’ve learned about Virtual Entities, their history, setup, and why they sometimes make more sense than other methods. And a short comparison to other available integration options like Dual Write, Data Integrator, and custom APIs.
Virtual Entities: A concept old enough
A Bit of History
Out of curiosity, I have attended a Microsoft session 'Introduction to Dynamics 365 Customer Engagement - Basic of Customization' in late 2017 and that is when I heard about Virtual Entities for the first time.
Virtual Entities first appeared in Dynamics 365 CRM (v9.0, 2017). Back then, the goal was simple: show external data from external data sources in CRM without duplicating it. Initially, they were read-only, relying on OData providers. Over time, Microsoft extended this concept to Dataverse, and today, Virtual Entities can even support full CRUD operations when integrated with F&O.
What Makes Virtual Entities Special?
They allow Dataverse to represent F&O data as tables without storing it physically in Dataverse. This means:
- No data duplication.
- Real-time access to ERP data.
- Lower storage costs.
Setting Them Up
- Enable Power Platform Integration in Lifecycle Services (LCS).
- Configure a Virtual Entity Data Source in Dataverse using F&O OData endpoints.
- Create Virtual Tables mapped to F&O entities.
- Assign proper security roles (System Administrator in CE and F&O).
When Do They Shine?
- Reporting and Analytics: Power BI dashboards using live ERP data. Useful in scenarios where Power BI Dashboards built using Dataverse connectivity can continue to query live F&O data. Typically useful to look up Inventory levels or production schedules, etc.
- Read-heavy Scenarios: Inventory visibility, financial snapshots. Say, for example, Dynamics 365 Sales team wants to see real-time inventory availability from F&O before committing to an order with the Customer in front of them.
- Cost Efficiency: Avoid Dataverse storage overhead. Probably best useful for organizations which need to do a quick query in their Dynamics Apps within their high-volume transactional F&O data.
Other Integration Approaches
Dual Write
Introduced in 2019, Dual Write changed the game by offering real-time, bi-directional sync between F&O and Dataverse. It’s perfect for scenarios where operational consistency is critical - think customers, vendors, orders, and invoices.
Evolution Highlights:
- 2019: Launch with Prospect-to-Cash templates.
- 2020–2023: Expanded entity maps, improved monitoring.
- 2024+: Async Dual Write (Preview) for high-volume transactions.
Async Dual Write (still in preview)
- Real-time sync can cause long-running transactions, slowing down application performance.
- Large transactions (e.g., invoices with thousands of lines) often fail due to platform limits.
- High-volume data movement during peak loads can impact system responsiveness.
- It decouples data movement from live transactions, allowing processing in the background.
- Supports eventual consistency instead of immediate consistency, which is acceptable for many business scenarios (e.g., batch updates, large data sets).
- Enables parallelization and dependency-based sequencing for better performance and scalability.
Data Integrator
Before Dual Write, we had Data Integrator (2017). It’s batch-based, template-driven, and still useful for migration or periodic sync where real-time isn’t necessary. Initially focused on Prospect-to-Cash scenarios, enabling synchronization of accounts, contacts, products, quotes, orders and invoices between D365FO and D365CE.
Evolution Highlights:
- 2017-18: Added support for Field Service and Project Service Automation integrations.
- 2019-20: Became part of Power Platform Admin Center under Data Integration tab. More templates added.
- 2020 onwards: Microsoft began recommending Dual Write over Data Integrator.
OData & Custom APIs
For custom scenarios, OData endpoints in F&O and Dataverse Web API give us flexibility, giving direct programmatic access to both platforms without relying on prebuilt integration tools like Dual Write or Data Integrator. Often combined with Azure Functions or Logic Apps, this approach works well for bespoke integrations (custom-built solutions tailored to specific business needs).
Best useful for:
- Integrations with complex business logic and transformation needs
- Selective data movement requirements
- Third party integrations (like SAP, Salesforce or custom portals - varies based on the latest connectors released by Microsoft)
Power Platform Connectors
Sometimes, all you need is a Lightweight automation. And Power Automate prebuilt connectors for F&O and Dataverse enable such event-driven workflows - ideal for lightweight tasks like notifications or CRM updates.
Example triggers:
- “When a record is created in Dataverse”
- “When a vendor invoice is posted in F&O”
Example actions:
- “Create a task in Dynamics 365 Sales”
- “Send an email notification”
- “Update a Dataverse table”
Comparison Table
Closing Thoughts
As technical folks, we know there’s no one-size-fits-all solution. Virtual Entities are fantastic when you need real-time visibility without duplication. Dual Write is the go-to for operational consistency. Data Integrator still has its place for migrations. And for custom needs, APIs and Power Automate fill the gaps.
Microsoft’s journey from Virtual Entities in CRM to Dual Write and Async Dual Write shows how far integration has come. Our job is to pick the right tool for the right scenario, balancing performance, cost, and complexity.
<Inspired from https://www.powerazure365.com/blog-1/cds-virtual-entities-with-dynamics-365-finance-and-operations and https://www.powerazure365.com/blog-1/one-dynamics-one-platform-dataverse-c-plugin-for-dynamics-365-fampo>
Comments