Systems case / 05 · Identity & hierarchy

Designing customer identity across CRM and ERP

A fictional case about identity: what an account represents, how commercial accounts map to legal entities and ERP customer numbers, and what survives a merge.

Fictional scenario

Independently created. Contains no employer or client implementation detail, internal names or figures.

01The outcome

Three explicit identities—commercial, legal and transactional—linked by a canonical business identity, with governed rules for matching, merging and retiring.

The reality

Prospects, subsidiaries, several ERP customer numbers and duplicates all live under one word: ‘account’.

Architecture question

What does an account represent—and who issues the identity every system can trust?

Key decision

Separate commercial identity (the CRM account) from legal and transactional identity (party and ERP customer numbers), linked through a canonical party ID issued by one authority.

ContextA global B2B company sells to groups with many legal entities and delivery locations, through several of its own subsidiaries, each with an ERP that numbers customers independently. The CRM keeps prospects and customers in one account list. Duplicates appear, merges break history, and nobody can say whether an ‘account’ is a group, a legal entity or a ship-to address.

Systems and partiesCRMIntegration layerERPsData platform

02The reality · current state

What the platform looks like today.

  • ‘Account’ means a group for some teams, a legal entity for others and an address for a few
  • The same legal entity has several ERP customer numbers
  • Duplicates are created because matching happens after creation
  • Merges in the CRM leave ERP references and opportunities pointing nowhere
  • Integrations map IDs one-to-one and break when the relationship is one-to-many
  • Group-level performance is invisible because hierarchies are incomplete

03System responsibilities

Every platform, one job—and a boundary.

What each platform owns in this design, and what it deliberately does not. These are the responsibilities for this context, not universal rules.

CRM

Commercial identity
Owns
  • Commercial account and relationship context
  • Selling hierarchy (group → buying units)
  • Duplicate checks before creation
  • Merge requests for commercial records
Deliberately does not own
  • Legal entity data after validation
  • ERP customer numbering

Integration layer

Identity correlation
Owns
  • Cross-reference of CRM, party and ERP IDs
  • Correlation IDs on every message
  • Propagation of merges and retirements
Deliberately does not own
  • Deciding whether two records are the same entity

ERPs

Legal and transactional identity
Owns
  • Legal entity (party) validation
  • Customer numbers per company
  • Billing, payment and tax attributes
Deliberately does not own
  • Prospects
  • The selling hierarchy

Data platform

The group-level view
Owns
  • Performance rolled up through the hierarchy
  • Duplicate-candidate analytics
Deliberately does not own
  • Identity decisions or merges

04Key dimension · Identity & hierarchy

Four levels, three identities

Integration becomes fragile when identity is treated as “just map the ID”. Each level has its own key, its own authority and its own cardinality.

  1. Commercial accountThe relationship we sell to
    Key
    CRM account ID
    Authority
    CRM
    Cardinality
    One per commercial relationship
  2. Legal entityThe registered organization that signs and pays
    Key
    Canonical party ID
    Authority
    Master data in the ERP
    Cardinality
    One or more per commercial account
  3. ERP customerThat legal entity as a customer of one of our companies
    Key
    ERP customer number
    Authority
    Each ERP
    Cardinality
    One per legal entity and company
  4. LocationWhere goods are delivered or invoices are sent
    Key
    Address ID
    Authority
    ERP, after validation
    Cardinality
    Many per ERP customer
  • Match before create

    Duplicate candidates are checked on natural keys—registration number, tax ID, normalized name and country—before any record exists.

  • One issuer per identifier

    The canonical party ID has exactly one issuer. Every other system stores it as a reference and never generates it.

  • Merge keeps history

    The surviving record keeps its ID; opportunities, activities and cross-references move to it; the retired ID stays as an alias.

  • Retire, don’t delete

    Retired identities stay resolvable, so historical orders, invoices and reports still point somewhere.

  • Correlate every message

    Each cross-system request carries a correlation ID and the canonical ID, so outcomes are matched without guessing.

  • Hierarchy is not identity

    Parent–child links describe how we sell and report. They never merge two legal entities.

Most integration defects in this area are identity defects in disguise.

05Data authority

Who may create, change, read or derive each concept.

Lifecycle phase
Highlight
Data authority by business concept, prospect: which system may create, update, read or derive each concept
Business conceptCRMIntegrationERPData platform
Commercial accountCRM authority for the whole lifecycle.CreateUpdateReadReadRead
Canonical party ID (authority moves with the lifecycle)Does not exist for a prospect. Issued once, at legal validation—every other system stores a reference.No authorityNo authorityNo authorityNo authority
Legal name & tax identifiers (authority moves with the lifecycle)A proposal while prospecting; after validation the ERP is authoritative and the CRM shows a read-only copy.CreateUpdateNo authorityNo authorityNo authority
ERP customer numbers (authority moves with the lifecycle)One legal entity can have several—one for each of our companies it buys from.No authorityNo authorityNo authorityNo authority
Selling hierarchyHow we sell and report, kept in the CRM. The legal group structure is an ERP attribute the CRM reads.CreateUpdateNo authorityNo authorityRead
Duplicate candidatesComputed on natural keys; the merge decision stays with a person.ReadNo authorityNo authorityDerive
Cross-reference of IDsOwned by the integration layer—never reconstructed from names.ReadCreateUpdateReadRead

No system owns a whole record here. Authority sits with each concept—and sometimes changes hands when the lifecycle does.

06Candidate architectures

Credible options, judged against these premises.

Rejected

One account equals one ERP customer

Single-entity customers and one ERP

Cost: Breaks as soon as a customer buys from two of our companies
Situational

The CRM issues the canonical ID

The CRM is the first and only system to see every party

Cost: Prospects and legal entities mixed; the ERP must trust unvalidated data
Selected

Commercial account in the CRM, canonical party ID from master data, cross-reference in integration

Groups, several legal entities, several ERPs

Cost: Needs a cross-reference and a governed merge process

07The second layer

Questions that change the architecture.

Meaning

  1. What does an account represent—legal entity, relationship, location or group?
  2. When should several ERP customers map to one account—and when not?
  3. Is a prospect the same record as the customer it becomes?

Authority

  1. Who issues the canonical identity?
  2. Who may merge two accounts—and who decides they are the same?
  3. How are duplicate candidates detected, and when?

History

  1. What survives a merge?
  2. What happens to historical opportunities and orders?
  3. How is a retired identity still resolved?

08Decisions & outputs

What the work produces.

  1. 01Identity model
  2. 02Hierarchy model
  3. 03Duplicate rules & natural keys
  4. 04Merge & retire policy
  5. 05Cross-system key register
  6. 06Identity quality measures