[object Object]

If your service agents need to see invoice status and your finance team needs to see service incidents, you need an integration. Dual Write is Microsoft’s bridge between Dataverse and Finance/Operations. It works, with caveats.

What Dual Write actually is

Dual Write is a synchronous, near-real-time integration between Dataverse and the Finance/Operations data store (which is its own SQL-backed system, not Dataverse). When a record is created or updated on either side, Dual Write maps and propagates to the other. The mapping is configured per table.

The “near real-time” reality

The latency target is sub-second. The realized latency in production is typically 2-15 seconds depending on table volume and concurrent activity. Service agents looking at the Customer form expecting an invoice update from the last minute will see staleness.

The synchronous failure mode

Dual Write can be configured as fully synchronous (write fails on either side if the other side fails) or eventually consistent (write succeeds, propagation queued). Synchronous protects data consistency at the cost of availability. Eventually consistent improves availability at the cost of unsurfaced sync failures. Pick consciously per table:

Power Platform Admin Center -> Dual-Write -> Table mappings 
-> Select table -> Run mode: Real-time / Async

Customer master usually goes synchronous. Activity-style tables go async.

Mapping templates: start, do not finish

Microsoft ships table mapping templates for common entities (Customer, Contact, Sales Order, Invoice). These templates cover 60-70% of fields. The remaining custom fields need explicit mapping. Every “field not propagating” support ticket traces back to a missing mapping.

Conflict resolution

If the same record is updated on both sides at the same time, last-writer-wins by default. There is no merge logic. For records updated heavily on both sides (customer credit limit, for example), pick a system of record explicitly and lock the field on the other side via business rule.

The initialization step

Initial sync of existing data is its own job. You cannot enable Dual Write on a populated Customer table and expect history to flow. Use the Initial Write mode to seed one side from the other. Plan for a maintenance window; initial sync of 500K customers takes hours.

When to skip Dual Write

If your only need is “show invoice number on the case form,” a virtual table backed by F&O OData is cheaper, faster, and avoids the bidirectional complexity. Dual Write is for genuine bidirectional CRUD.

Monitoring you must add

The Dual-Write health dashboard in admin center shows last sync time and error count. It does not alert. Build a Power Automate flow that polls the dashboard daily and posts to Teams when error count crosses a threshold.

What to do this week

List your active Dual-Write mappings. For each, name the system of record, the latency requirement, and the failure escalation path. Mappings without all three should be reviewed for downgrade to one-way or virtual table.

[object Object]
Share