Home  ›  Guides  ›  Integrations between core business platforms  ›  How to decide which system owns each field

How to decide which system owns each field

When two systems hold customer data, agree which system is authoritative for each shared field. Without that agreement, each sync can copy one system's errors into the other.

Most businesses keep customer, product, order and invoice data in more than one place. Sales works in a CRM. Finance works in an ERP or an accounting system. An online store may hold its own copy of customers and orders.

Agree field ownership and matching identifiers before anyone builds the integration. Then choose how to build it. Once it runs, reconcile the data to check that the systems agree.

Understand what owning a field means

The owning system is where a field is created and changed. Other systems receive a copy and treat it as read-only.

Ownership is set for each field. One system can own a customer's billing address while another owns the account manager. A single customer record can therefore take some fields from each system.

Each owning system also needs a team behind it. If finance owns the credit limit, finance corrects it when it is wrong.

List the fields both systems share

Start with the records that exist in both systems. For most businesses these are customers, contacts, products, orders and invoices.

  1. Export the field list for each record type from each system. Use the system's settings or field definitions, and avoid exporting customer records.
  2. Put the field lists side by side in one spreadsheet.
  3. Mark each field that appears in both systems, even when the names differ.
  4. Ask each team which of these fields they read, which they change and which they ignore.

Fields that one team ignores are candidates to leave out of the sync. Fewer synced fields mean fewer conflicts and less personal data moving between systems.

Assign one owner to each field

For each shared field, choose the system where the change happens in real work. Ask who would notice first if the value were wrong.

Example (illustrative): a wholesale business runs a CRM for sales and an ERP for finance and stock.

RecordFieldOwnerCopy inTeam that fixes it
CustomerLegal nameERPCRMFinance
CustomerBilling addressERPCRMFinance
CustomerCredit limitERPCRMFinance
CustomerAccount managerCRMERPSales operations
CustomerIndustryCRMNot syncedSales operations
ProductSKU and descriptionERPCRMOperations
ProductList priceERPCRMFinance
OrderQuoted lines and discountCRMERPSales operations
OrderFulfilment statusERPCRMOperations
InvoiceAmount, due date and paid statusERPCRMFinance

In this example, the ERP owns fields with a legal or financial effect. The CRM owns sales activity and relationship data. Your split may differ, but each row needs exactly one owner.

Some fields have no clear owner because both teams change them. Phone numbers and delivery contacts are common examples. Pick one owner anyway, and give the other team a way to request changes.

Decide when ownership moves

Some fields change owner as a record moves through a process. A quote that becomes an order is the common case.

While a quote is open, the CRM usually owns its lines, prices and discount. Sales can still change them.

When the customer accepts the quote, the integration creates a sales order in the ERP. From then on, the ERP owns the order lines, prices and status. A later change goes through the ERP's own process, such as an amendment or a credit.

A matching key is the value the integration uses to find the same record in both systems. Choose an identifier that never changes and is unique within the relevant system and entity. Store the mapping between systems.

The usual method is an external ID. When the integration creates a record in the second system, it stores the first system's ID in a dedicated field. Every later update matches on that ID.

Check the scope of each identifier. Values that look unique can repeat or change.

RecordMatching keyStored in
CustomerERP customer ID within the legal entityCRM fields "ERP customer ID" and "ERP entity"
ProductERP internal item IDCRM product field "ERP item ID"
OrderERP sales order IDCRM order field "ERP order ID". The ERP order keeps the CRM deal ID as a reference.
InvoiceLegal entity and ERP invoice IDCRM invoice fields "ERP invoice ID" and "ERP entity"

Avoid matching on names or email addresses. Two companies can share a trading name, and people change email addresses when they change roles.

For existing records, run a one-off match before the first sync. Review uncertain matches by hand, then write the external ID into each record. Keep any export used for the match in a restricted location, and delete it when the match is done.

Set the sync direction for each field

Once each field has an owner, the direction follows from it. Data flows from the owner to the copy.

A record can still sync in both directions. A customer record can send the account manager one way and the billing address the other. Each field moves in one direction only.

If a field must stay editable in both systems, write a conflict rule. Common rules are "last change wins" or "the owning system wins". The second is easier to explain and to audit.

A field that syncs both ways without a conflict rule will overwrite good data. Write the rule down before the build starts. Test it with two edits made a minute apart.

Sync only the fields each team needs

Every synced field is another copy of personal or commercial data. Keep the list short.

Check the result against your privacy policy and any obligations under the Australian Privacy Principles or other law that applies to you.

Agree the table with every team

Review the draft table with sales, finance and operations together. Resolve any field with two claimed owners in that meeting. Include finance, because it often owns the fields with legal effect.

Then separate the work of keeping the table current from the authority to change it.

ResponsibilityOwner (example)
Keeps the ownership table currentOne named person, such as a sales operations or finance systems lead
Approves a change of owner or a new synced fieldThe business owners of both systems, together
Corrects data in an owned fieldThe team named in the ownership table
Works the sync alert queueA named person, with a named backup for leave

Route sync alerts to a queue that a named person works. A shared inbox with no owner tends to leave each failure to someone else. The guide to choosing an integration approach covers which alerts and logs to ask for.

Give each process run one owner

Some processes run across several systems as one orchestrated sequence. For example, an accepted quote can create the ERP customer, the sales order and the first invoice. The run then waits for payment before the service starts.

The orchestration owns the status of the process, meaning which step each run has reached. Each field still belongs to its owning system. The orchestration changes fields through those systems, and your ownership table still applies. If the CRM shows a run's status, treat it as a read-only copy.

Name two people for each orchestrated process:

The guide to choosing an integration approach explains when a process needs orchestration.

Common questions

What should an integration do when a record arrives with no matching key?

Hold it in an error queue for review. If the integration creates a new record on every failed match, it creates duplicates. Create a record only when your rules say it is new.

Do I need a field ownership table if I only connect two systems?

Yes, if any field exists in both systems. The table can be short. It still records the owner, the direction and the identifier for each shared field.

When should we review field ownership?

Review it when a team, process or system changes, for example a new sales channel or legal entity. Review it too when the same data error keeps recurring.

More on integrations between core business platforms

All guides in this area

Native connector, middleware or custom integration: how to choose

Compare a connector, an integration platform and custom code, decide when a process needs orchestration, then test the shortlist at peak load.

Read the guide: Native connector, middleware or custom integration: how to choose

Keep ERP, finance and CRM data in sync: reconciliation basics

A successful sync log does not prove your CRM, ERP and finance data agree. Compare record keys, fields and totals for the same records.

Read the guide: Keep ERP, finance and CRM data in sync: reconciliation basics

Browse guides by area

All guides