Skip to content

Two-way synchronisation needs explicit write rules

If CRM and ERP can write, each shared field needs a conflict rule. The last message to arrive is not automatically the latest business decision.

Tobias Krüger2 min read
Blue data card with a database symbol, a text field and a selection field.

A connection may transfer data in both directions. That does not mean every field should be freely overwritten on both sides. Shared fields need a rule linking editing rights, the base version and conflict handling. Otherwise, a technically new message can bring back a value that is outdated for the business.

A late arrival may be based on older data

A fictional software company synchronises CRM and ERP. ERP confirms the billing address, while CRM maintains the project contact. This invented sequence shows what a blanket whole-record update could cause:

Time

Action

Data version

09:55

CRM reads the customer record.

Werkstraße 8, Beispielstadt, ERP version v7.

10:00

The ERP team confirms a new billing address.

Werkstraße 12, Beispielstadt, ERP version v8.

10:05

CRM sends an updated project contact back together with the old address.

The payload still contains Werkstraße 8, Beispielstadt and base version v7.

The message arrives later, but its address comes from an older version. If the integration accepted the whole record unchecked, the confirmed change could be lost. The labels v7 and v8 here refer to the same ERP record; unrelated local version counters from different systems cannot simply be compared.

Detect the base version and decide the conflict

Microsoft describes optimistic concurrency for Dataverse: an application can detect whether the server record changed between reading and writing. Which check is available and how to enable it depend on the product and its interface.

Detecting a difference does not decide which address is correct for the business. In this example, the old address should await clarification or be treated as an unauthorised write-back. Simply resending the rejected old value with a new version identifier would defeat the version safeguard without resolving the business difference. Nor does a single version check make every step across multiple systems atomic.

When both sides may write

If both teams genuinely need to edit the same information, a two-way solution may be appropriate. Permitted fields, changes and conflict decisions then need to be explicit. Microsoft’s dual-write documentation shows different directions per column mapping, for example; a shared switch for everything is not a business requirement.

Transferring different fields in different directions may also suffice. In this example, the new project contact should be accepted under its rule, while the old billing address should not be written back unchecked. Both values belong to the same customer but require different write decisions.

Sources

Written by

  • Tobias KrügerEditor for Systems IntegrationTobias Krüger covers how different software systems work together at ASES. In his articles he explains how ERP, CRM and online shops are connected and how to deal with errors in data exchange.

Follow ASES

Read more

All articles

APIs & Integration with ASES

ERP, CRM and shop cleanly connected