Capability map

Capability 05 · Technology

Data & Integrations

Design the contract before connecting the systems.

I define identity, authority, timing, failure and recovery before mapping fields—then shape operational data into signals the business can actually act on.

Ownership · movement · reconciliationOne commercial estate, read three ways: who owns each state, how it moves, and how both sides are reconciled when they disagree.

Read the estate by
  1. CRMCommercial stateAccounts, opportunities, approvals—and the status sellers see
  2. Integration layerDelivery stateRequests, correlation, retries and delivery state—never business truth
  3. ERPLegal / transactional stateLegal customers, orders and invoices
  4. Data platformHistorical / derived stateConformed history, lineage and derived measures
  5. Analytics & activationPublished signalMetric definitions, segments and the signals written back
  • CRM to Integration layerEvent Creation command
  • Integration layer to CRMEvent Status
  • Integration layer to ERPAPI Idempotent create
  • ERP to Integration layerEvent Outcome
  • CRM to Data platformEvent Pipeline changes
  • ERP to Data platformBatch Orders & invoices
  • Data platform to Analytics & activationBatch Derive daily
  • Analytics & activation to CRMBatch Writeback: segment & KPI · reconciled
  • CRM and ERPReconcile by request key · daily
Each system owns one kind of state. Movement has a mode. Every flow that can diverge is reconciled.
01What data & integrations meansNot a pipe

Not API wiring. A business-state contract.

I do not treat integration as “map field A to field B and call the API”. The work is deciding what each fact means, who owns it, how it moves, and how everyone knows it arrived.

It is not
  • API wiring
  • Field mapping
  • Point-to-point automation
  • Copying every ERP field into the CRM
  • Dashboards built on inconsistent definitions
  • Retrying failed calls until they “work”
That connects systems. It does not make what moves between them trustworthy.
It is
  1. AuthorityAssign who may create, change and derive each fact.
  2. IdentityKeep one business entity recognisable in every system.
  3. ContractsDefine event, payload, meaning, version and validation.
  4. Interaction modeChoose sync, async or batch from business tolerance.
  5. Delivery stateExpose whether a transfer actually happened.
  6. Failure semanticsDistinguish failed, rejected and unknown.
  7. IdempotencyMake every retry and rerun safe by design.
  8. ReconciliationDetect silent divergence on a schedule, with owners.
  9. VersioningChange contracts without breaking their consumers.
  10. LineageTrace every derived value back to its sources.
  11. Metric contractsOne definition, grain, owner and freshness per metric.
  12. ActivationDeliver a signal to someone who acts on it.
Four principles, applied below
  1. 01A timeout is not the same thing as a failure.

    The caller may not know whether the receiving system committed the transaction.

    Unknown outcomes
  2. 02Retry without idempotency is duplication by design.

    A second request for the same business intent must not create a second customer, order or task.

    Unknown outcomes
  3. 03“The source of truth” is often too coarse.

    Authority exists per business concept—sometimes per attribute—and can move with the lifecycle.

    Data authority
  4. 04A metric without an owner and an action is reporting noise.

    A metric is an operational contract: definition, grain, freshness, owner and the decision it should change.

    Metric contracts
02My approachTen steps · mapping comes later

From business event to governed signal.

Ten moves from what happened in the business to what someone should do about it. Field mapping comes after the first four; dashboards come after all of them.

01Identify the business event

Step 01 · The question

What actually happened in the business?

Integrations carry events, not tables.

For example
  • Prospect approved
  • Customer created
  • Order confirmed
  • Invoice posted
  • Sales target published
ProducesBusiness event model

Second-orderAn integration without a named business event ends up syncing whatever changed—including noise

  1. Identify the business event
    Step 01 · The question

    What actually happened in the business?

    Integrations carry events, not tables.

    For example
    • Prospect approved
    • Customer created
    • Order confirmed
    • Invoice posted
    • Sales target published
    ProducesBusiness event model

    Second-orderAn integration without a named business event ends up syncing whatever changed—including noise

  2. Define authority
    Step 02 · The question

    Which system is authoritative for each concept?

    At concept or attribute level where needed—not per system.

    Per concept
    • Create
    • Update
    • Read
    • Derive
    ProducesData authority matrix

    Second-orderAuthority can move with the lifecycle: a CRM proposal becomes an ERP fact at creation

  3. Define identity
    Step 03 · The question

    How do systems know they are talking about the same thing?

    Identity is designed, not matched on names afterwards.

    Define
    • Canonical identity
    • System IDs
    • Natural keys
    • Correlation IDs
    • Duplicate rules
    • Merge and retirement
    ProducesIdentity model

    Second-orderMost integration defects are identity defects in disguise

  4. Define the contract
    Step 04 · The question

    What exactly is exchanged?

    A contract is meaning plus shape, not an endpoint.

    Define
    • Payload
    • Semantic meaning
    • Required fields
    • Optional fields
    • Version
    • Validation
    • Compatibility rules
    ProducesIntegration contract

    Second-orderAn unversioned payload turns every change into a coordinated release

  5. Choose the interaction mode
    Step 05 · The question

    How quickly must the receiving system know?

    Chosen from business tolerance, not fashion.

    Choose deliberately
    • Synchronous
    • Asynchronous / event
    • Batch
    ProducesInteraction pattern

    Second-orderReal time is a cost; it needs a decision that loses value when delayed

  6. Define delivery state
    Step 06 · The question

    How do we know whether the transfer actually happened?

    Delivery state is visible to the people who depend on it.

    Model states
    • Pending
    • Sent
    • Acknowledged
    • Confirmed
    • Failed
    • Unknown
    • Reconciled
    ProducesDelivery-state model

    Second-orderAcknowledged is not confirmed: receipt is not a business outcome

  7. Design failure and recovery
    Step 07 · The question

    What happens when the outcome is uncertain?

    Design the unknown outcome before the happy path.

    Define
    • Retry
    • Idempotency
    • Replay
    • Dead-letter handling
    • Escalation
    • Manual repair
    • Ownership
    ProducesRecovery design

    Second-orderRetry without idempotency is duplication by design

  8. Reconcile
    Step 08 · The question

    How do we detect silent divergence?

    Reconciliation is a permanent control, not cleanup.

    Define
    • Expected population
    • Comparison key
    • Tolerance
    • Frequency
    • Discrepancy owner
    • Repair action
    ProducesReconciliation model

    Second-orderAlerts see failed calls; only reconciliation sees records that never arrived

  9. Shape analytical data
    Step 09 · The question

    What should be stored operationally, historically and analytically?

    Grain first; measures after.

    Define
    • Facts
    • Dimensions
    • Grain
    • Point-in-time history
    • Derived measures
    • Source lineage
    ProducesAnalytical data model

    Second-orderA CRM used as a warehouse gets slower and still cannot answer “as of when?”

  10. Publish governed signals
    Step 10 · The question

    Which metric should change which decision?

    A metric is an operational contract, not a formula.

    Define
    • Metric contract
    • Owner
    • Freshness
    • Definition
    • Threshold
    • Action
    • Activation destination
    ProducesSignal-to-action model

    Second-orderA metric without an owner and an action is reporting noise

03Typical problemsSymptoms, and what is usually missing

The symptoms arrive as “the sync is broken”.

Duplicates, stale statuses and three versions of the same KPI. Underneath, a contract, a key or an owner was never defined.

  • A timeout is logged as a failure—and someone presses “Create” again.

    Usually missingAn unknown-outcome state and idempotent retry
  • Retries create duplicate customers and orders downstream.

    Usually missingIdempotency keys scoped to the business request
  • Users cannot tell whether a record was synchronized.

    Usually missingDelivery state exposed in business terms
  • CRM and ERP disagree about the same customer status.

    Usually missingAttribute-level authority and a daily reconciliation
  • Each team computes the same KPI differently.

    Usually missingOne metric contract with an owner
  • The CRM has become a historical data warehouse.

    Usually missingA boundary between operational and analytical data
  • A batch job succeeds while part of the population is silently missing.

    Usually missingCompleteness checked against an expected population
  • Payloads change without warning and break their consumers.

    Usually missingVersioned contracts with compatibility rules
04What I designTangible artefacts

Artefacts that make data trustworthy enough to act on.

Each one answers a question that field mapping leaves open.

ContractWhat crosses a boundary
  • Business event catalogWhat actually happened in the business—and who needs to know?
  • Integration contractWhich payload, meaning, version and validation cross the boundary?
  • System & attribute authority matrixWho may create, update, read or derive each concept?
  • Identity modelWhich keys prove two systems mean the same thing?
  • Integration topologyWhich systems exchange what, and through which layer?
DeliveryHow it arrives—or does not
  • Sync / async / batch modelHow quickly must the receiver know, and what may continue meanwhile?
  • Delivery-state modelHow does everyone know whether a transfer happened?
  • Idempotency strategyWhy can a retry or rerun never create twice?
  • Recovery & replay modelWho repairs what, and how is replay made safe?
  • Reconciliation designWhich population is compared, by which key, how often, owned by whom?
  • Observability modelWhich business states are monitored—not just calls and jobs?
MeaningWhat the data becomes
  • Analytical grain modelWhat does one row mean, and at which grain do facts meet?
  • Metric contractDefinition, owner, freshness—and the action it should change.
  • Lineage modelWhich sources, rules and versions produced this value?
  • Data activation flowWhere does a signal land, and who acts on it?
05Integration contractMore than an endpoint

One flow, six layers of contract.

Customer creation, from the CRM approval to the status the seller sees. Read one layer across the flow, or open a step to see all six.

Read one layer across the flow
  1. Customer approved: CRM account ID, plus a request key minted once and scoped to the legal entity.
  2. Customer create requested: Request key for idempotency; correlation ID for tracing every hop.
  3. Customer validation: Natural keys—registration number, tax ID, country—are checked for an existing customer first.
  4. Customer created / rejected: The ERP customer number is linked to the request key and the CRM account ID.
  5. Visible status update: Cross-reference stored: account ↔ legal entity ↔ ERP customer.
Step 02 · Integration layer

Customer create requested

Business event
A command, not a fact: please create this legal customer.
Payload
Contract v2: legal name, registration and tax IDs, billing address, selling company, currency, request key. Required and optional fields declared; unknown fields rejected.
Identity
Request key for idempotency; correlation ID for tracing every hop.
Authority
The integration layer owns delivery—not the data it carries.
Delivery state
Pending → Sent → Acknowledged. Acknowledged means durably received, not created.
Outcome
Receipt confirmed. The business outcome is still open.
  1. 01Customer approvedCRM
    Business event
    Commercial approval is recorded: this prospect may become a legal customer.
    Payload
    Nothing leaves yet. The CRM freezes an immutable snapshot of the approved request.
    Identity
    CRM account ID, plus a request key minted once and scoped to the legal entity.
    Authority
    The CRM owns the approval and the commercial account.
    Delivery state
    Not started.
    Outcome
    The seller sees “Creation requested”.
  2. 02Customer create requestedIntegration layer
    Business event
    A command, not a fact: please create this legal customer.
    Payload
    Contract v2: legal name, registration and tax IDs, billing address, selling company, currency, request key. Required and optional fields declared; unknown fields rejected.
    Identity
    Request key for idempotency; correlation ID for tracing every hop.
    Authority
    The integration layer owns delivery—not the data it carries.
    Delivery state
    Pending → Sent → Acknowledged. Acknowledged means durably received, not created.
    Outcome
    Receipt confirmed. The business outcome is still open.
  3. 03Customer validationERP
    Business event
    The ERP validates legal and fiscal data before a customer exists.
    Payload
    The ERP works from the snapshot; it never calls back to ask the CRM for more.
    Identity
    Natural keys—registration number, tax ID, country—are checked for an existing customer first.
    Authority
    Only the ERP decides whether a legal customer exists, and its number.
    Delivery state
    Awaiting the outcome. A timeout here is Unknown, not Failed.
    Outcome
    Created, rejected with a stable reason—or unknown until reconciled.
  4. 04Customer created / rejectedERP → integration
    Business event
    An outcome event carrying the same request key.
    Payload
    Created: ERP customer number, company and validated legal data. Rejected: reason code, field and repair owner.
    Identity
    The ERP customer number is linked to the request key and the CRM account ID.
    Authority
    Legal name and billing address become ERP-authoritative from here on.
    Delivery state
    Confirmed—or Failed with a business reason.
    Outcome
    A business-readable result, not a stack trace.
  5. 05Visible status updateCRM
    Business event
    The CRM records the outcome the seller can act on.
    Payload
    Customer number and validated fields land read-only; a rejection shows its reason and owner.
    Identity
    Cross-reference stored: account ↔ legal entity ↔ ERP customer.
    Authority
    The CRM stops editing ERP-owned attributes and displays them instead.
    Delivery state
    Reconciled daily against the ERP by request key.
    Outcome
    The seller can order—or sees exactly who is fixing what.

An endpoint says where to send a request. The contract says what it means, who it is about, who may change what, how everyone knows it arrived—and what happens when it does not.

06Sync · async · batchChosen from business tolerance

How quickly must the receiver know?

Synchronous, asynchronous and batch each fit a different business tolerance for waiting, inconsistency and loss. Start from a request, not from a technology.

Start from a business request
Fits

Event Asynchronous / event

Validation can take minutes or need a person. The CRM continues in a visible pending state; the outcome arrives as an event.

What the business accepts: Eventual consistency, a delivery-state model and a daily reconciliation.

  1. API

    Synchronous

    Request–response
    Best when
    • An immediate answer is required
    • The operation is short
    • The caller can safely wait
    Watch for
    • Coupling to the receiver’s availability
    • Latency the user feels
    • Timeouts with uncertain outcomes
    Needs
    • A timeout budget
    • Idempotent retry
    • A degraded path when the receiver is down
  2. Event

    Asynchronous / event

    Command or event, outcome laterFits this request
    Best when
    • The process can continue in a pending state
    • The operation is long or failure-prone
    • Resilience matters more than immediacy
    Watch for
    • Eventual consistency users must understand
    • Out-of-order or duplicate delivery
    • Silent loss without a check
    Needs
    • Correlation
    • Visible delivery state
    • Retry and replay
    • Reconciliation
  3. Batch

    Batch

    A population on a schedule
    Best when
    • Lower freshness is acceptable
    • Processing the whole population matters
    • Historical or analytical ingestion
    Watch for
    • Partial loads that report success
    • Late-arriving records
    • Long recovery windows
    Needs
    • Completeness checks
    • A watermark or cursor
    • Restartability
    • Reconciliation

None of the three is more modern than the others. The architecture follows the business tolerance for waiting, for inconsistency and for loss.

07State, delivery & recoveryThe unknown outcome

A timeout is not the same thing as a failure.

The caller may not know whether the receiving system committed the transaction. Design that moment before the happy path.

  1. 01Request sentCreate customer · request key REQ-7F3A
  2. 02TimeoutNo response within the budget
  3. Naïve conclusionFailed
    Architectural answerUnknownThe caller cannot know whether the ERP committed
Then the caller retries
A · The ERP never received itReality: No customer exists.

Correct: Customer created once.

B · The ERP committed it; the response was lostReality: The customer already exists.

Wrong: A second legal customer is created. Orders and invoices now split across two.

Works only when the first attempt really failed—and the caller cannot know that.

A safe retry needs all three
  1. Idempotency key

    One key per business intent, scoped to the legal entity. The receiver creates at most once per key.

  2. Correlation

    Every hop carries the same correlation ID, so an outcome is matched to its request without guessing.

  3. Reconciliation

    Whatever the resolution job cannot close is compared daily and owned by a named team.

Retry without idempotency is duplication by design. A second request for the same business intent must never create a second customer, order or task.

Delivery state, visible to the people who depend on it

Delivery state

Unknown

Timeout or lost response. The request may or may not have been committed.

The seller sees
“Outcome being confirmed”
Can become
Reconciled
Owner
Integration operations

Observe business state, not only calls

  • Technical status: HTTP 202 AcceptedBusiness status: Customer creation requested
  • Technical status: Message delivered to the queueBusiness status: Customer validation pending
  • Technical status: HTTP 200 with an error bodyBusiness status: Customer creation rejected: duplicate registration number
  • Technical status: Socket timeout after 30 sBusiness status: Customer creation unknown—reconciling
  • Technical status: HTTP 200 OKBusiness status: Customer created—number issued
  • Technical status: Nightly job succeededBusiness status: Invoices for one company missing from the load

Recovery, owned

  • Retry Transient faults only, with backoff and a budget—always with the same key.
  • Replay Re-send a stored request or event; safe because the receiver is idempotent.
  • Dead-letter Poison messages leave the flow with their reason, so one bad record cannot block the rest.
  • Escalation Unknowns and dead letters older than their threshold page a named owner.
  • Manual repair A form in the owning system—never a database edit—followed by a replay.
Applied in the flagship caseDesigning a CRM–ERP customer lifecycle
08ReconciliationA control, not cleanup

Reconciliation is part of the architecture.

Delivery guarantees fail silently. A scheduled comparison of the expected and the actual population—with an owner for every kind of difference—is how silent divergence becomes visible.

Expected · CRMActual · ERPCompared byIdentityBusiness stateAmount / attributeTimestampClassification
Show
Expected · CRM compared with Actual · ERP, one row per key
KeyExpected · CRMActual · ERPOutcome
REQ-1041Created · ERP 30071Created · ERP 30071MatchBoth sides agree.
REQ-1042PendingCreated · ERP 30072DifferenceThe outcome event was lost; the CRM never heard back.
REQ-1043Billing address v3Billing address v2DifferenceAn address change after creation never reached the ERP.
REQ-1044Requested—MissingThe request never arrived; it is stuck before the ERP.
——ERP 30090 · no request keyUnexpectedA customer was created directly in the ERP, outside the process.
REQ-1046Created · ERP 30074Created · ERP 30074MatchBoth sides agree.
  1. Match

    Same identity, same state, within tolerance.

    Owner
    Nobody
    Action
    Record the check; nothing else.
  2. Difference

    Same identity, different state or attribute.

    Owner
    Integration operations
    Action
    Apply the authoritative side’s value; replay the outcome.
  3. Missing

    Expected on one side, absent on the other.

    Owner
    Integration operations
    Action
    Look up by request key; resubmit with the same key or close as rejected.
  4. Unexpected

    Present on one side with no expected counterpart.

    Owner
    Master data governance
    Action
    Link it to an account, or flag an out-of-process creation.
The reconciliation contractPopulation, key, tolerance, frequency and owner—defined before the first run
Expected population
CRM accounts with a creation request in the last 30 days
Comparison key
Request key, then ERP customer number
Compared
Identity · business state · billing address · timestamp
Tolerance
Pending under 2 hours is not a difference
Frequency
Daily, and on demand after an outage
Owner
Integration operations; repairs by class
09Data authority & identityConcept and attribute level

“The source of truth” is often too coarse.

Authority exists per business concept—sometimes per attribute—and can move with the lifecycle. Identity is what lets two systems agree they mean the same thing.

Lifecycle phase
Highlight
Data authority by business concept, before erp creation: which system may create, update, read or derive each concept
Business conceptCRMIntegration layerERPData platform
Legal name (authority moves with the lifecycle)Proposed by the seller; validated and owned by the ERP once the customer exists.CreateUpdateNo authorityNo authorityNo authority
Billing address (authority moves with the lifecycle)Same pattern: a CRM proposal becomes an ERP fact. Later edits are requests, not updates.CreateUpdateNo authorityNo authorityNo authority
Commercial addressWhere the relationship is managed. Never transferred; the ERP has no use for it.CreateUpdateNo authorityNo authorityRead
ERP customer number (authority moves with the lifecycle)Does not exist before creation. Issued once, never typed into the CRM.No authorityNo authorityNo authorityNo authority
Commercial statusProspecting, active, dormant: the CRM’s call throughout. The ERP never needs it.CreateUpdateNo authorityNo authorityRead
Credit & legal status (authority moves with the lifecycle)Credit block and legal status exist only once the ERP customer does—and only the ERP sets them.No authorityNo authorityNo authorityNo authority
Subsidiary relationship (authority moves with the lifecycle)Which of our companies sells to this customer. Set by the ERP per company.ReadNo authorityNo authorityNo authority
Delivery stateOwned by the layer that moves the request; shown in the CRM in business terms.ReadCreateUpdateNo authorityRead
Performance segmentDerived from history. Written to the CRM as a read-only signal.ReadNo authorityNo authorityDerive

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

Keys that travel with the data

Identity keys: who issues each, where it travels and the question it answers
KeyIssued byTravels withAnswers
CRM account IDCRMRequest, outcome, analytical dimensionWhich commercial relationship?
Request keyCRM, at approvalEvery retry and replay of one intentIs this the same request again?
Correlation IDIntegration layerEvery hop and log lineWhich request produced this outcome?
Canonical party IDMaster dataCRM, ERP, data platformWhich registered legal entity?
ERP customer numberEach ERPOrders, invoices, outcome eventsWhich customer of which company?
Analytical customer keyData platformFacts, metrics, writebackThe same customer across history and merges

Data quality is not one score

Seven dimensions, each owned close to the source that can fix it.

  • Completeness

    Yesterday’s invoice load is missing one company

    Owner
    ERP data owner
    Caught by
    Load vs expected population
  • Validity

    An ERP customer number with the wrong format on an account

    Owner
    ERP owner
    Caught by
    Contract validation at the boundary
  • Uniqueness

    The same legal entity exists as two accounts

    Owner
    CRM owner & governance
    Caught by
    Natural-key match before create
  • Consistency

    CRM says pending; the ERP says created

    Owner
    Integration operations
    Caught by
    Daily reconciliation
  • Timeliness

    A performance segment is three days old

    Owner
    Data & activation owner
    Caught by
    Freshness stamp on every signal
  • Authority

    A seller edits an ERP-owned billing address

    Owner
    Platform owner
    Caught by
    Field is read-only after creation
  • Lineage

    A KPI shown without its definition version

    Owner
    Metric owner
    Caught by
    Version carried with the value
10Operational → analytical → activationData does not end on arrival

What is true now, what happened—and what to do about it.

Operational systems answer what is true now. The analytical platform answers what happened over time. Activation answers what someone should do because of it.

  1. Operational systemsCRM · ERP
    • What is true now?
    • What action should happen now?
  2. Analytical platformData platform · warehouse
    • What happened over time?
    • How is performance derived?
    • How do systems compare?
  3. ActivationCRM · campaigns · workflows
    • What should someone do because of the signal?
  1. 01Transactions

    Orders, invoices, opportunities—current state in the system that owns them.

  2. 02History

    Every version kept, point in time, at a declared grain.

  3. 03Derivation

    Measures computed once, from one definition.

  4. 04Signal

    A published, versioned value with a freshness stamp.

  5. 05Action

    A task, campaign or decision owned by a person.

Lineage: every step with a definition, an owner and a version

Derived metric

Performance to target %

Definition
(Invoiced + open orders) ÷ target, year to date.
Owner
Sales operations
Version & time
Metric definition v3
11Metric contracts & activationOwner · freshness · action

A metric without an owner and an action is reporting noise.

A metric is an operational contract, not a formula: one definition, a grain, a freshness promise, a place it is computed, a place it lands—and the decision it should change.

Metric
Metric contract

Pipeline coverage

Open eligible pipeline ÷ remaining target for the period

Grain
Account · segment · period
Inputs
OpportunityTarget
Owner
Sales operations
Freshness
Daily
Computed in
Data platform
Activated in
CRM
Threshold

Below 3× remaining target

Action

Generate pipeline where coverage falls below the threshold

Data is not value until it changes an action

  • Signal: At Risk accountOwner: Account ownerAction: Recovery planOutcome: Performance back above threshold
  • Signal: Low pipeline coverageOwner: Sales managerAction: Pipeline generation actionOutcome: Coverage restored for the period
  • Signal: No SaleOwner: Commercial campaignAction: Reactivation taskOutcome: First order after reactivation
12Reference casesFictional & composite

Five flows, five data dimensions.

Synthetic global B2B scenarios. The flagship CRM–ERP case is read here through its integration lens; four new cases cover grain, writeback, reconciliation and currency evolution.

  1. Case 01Selected workIdentity · async delivery · unknown outcome · reconciliation

    Designing a CRM–ERP customer lifecycle

    A create request can time out after the ERP has already committed—so a naïve retry creates a second legal customer.

    Architecture questionWhat does a timeout mean—and how is the outcome settled without a duplicate?

    ⟲ reconcile by request keyEVENTAPICRMIntegrationERP
    CRMIntegration layerERPConnects toSystems & CRM ArchitectureProcess Architecture
  2. Case 02Selected workGrain, identity & freshness

    Turning ERP transactions and targets into commercial intelligence

    Orders, invoices and targets arrive from different systems at different grains and times—so every report answers a slightly different question.

    Architecture questionWhat is the grain of each fact, and where do they meet without double counting?

    OrdersInvoicesTargetsAccountsBATCHBATCHBATCHData platformMetricsCRM
    ERPPlanningCRMData platformConnects toRevenue OperationsSystems & CRM Architecture
  3. Case 03Writeback, freshness & activation

    Writing analytical signals back into operational CRM

    Performance is computed outside the CRM, but sellers act inside it—so the numbers they see are stale, editable or unexplained.

    Architecture questionShould the CRM hold a copy of the metric—and who owns it once it lands?

    ⟲ published = writtenBATCHBATCHAPIEVENTData platformSignalIntegrationCRMTask
    Data platformIntegration layerCRMConnects toRevenue OperationsAutomation
  4. Case 04Population, removals & idempotent reruns

    Designing reliable segmentation with reconciliation

    Accounts end up with two segments or none, and campaigns keep targeting accounts that have already recovered.

    Architecture questionHow does every eligible account get exactly one current segment—and every rerun stay safe?

    ⟲ expected vs actualBATCHBATCHEVENTData platformSegmentsCRMCampaigns
    Data platformCRMCampaign platformConnects toRevenue OperationsAutomation
  5. Case 05Evolution: V1 → V2 amount model

    Evolving commercial analytics from single-currency to multi-currency

    The first release reported in one currency. Subsidiaries that sell in others now threaten every total, threshold and historical report.

    Architecture questionWhich amount is the fact, which is a view—and can last year’s report still be reproduced?

    AmountsFX ratesBATCHBATCHBATCHData platformReportingCRM
    ERPRate serviceData platformCRMConnects toRevenue OperationsSystems & CRM Architecture
13Questions that change the designThe second layer

Every data request has a second layer.

The visible request is where the design starts, not where it ends.

Start from a request
Visible requirement
“Sync customers to ERP.”
First layer

Map the account fields to the ERP customer and call its API on save.

That is a pipe. It is not yet a contract.

4 of 6 questions surfaced

Second layer — what the request leaves unsaid
  1. The CRM owns the account, master data the legal entity, each ERP its customer number—linked, not merged.

14Connected capabilitiesWhere data design leads

Systems define responsibility. Data moves and reconciles it.

Data & Integrations

  1. Systems & CRM Architecture

    Systems defines responsibility: which platform owns which concept. Data & Integrations moves and reconciles that state.

  2. Process Architecture

    The process defines the business events and decisions that integrations carry.

  3. Revenue Operations

    Revenue Operations turns governed signals into action—coverage, recovery, reactivation.

  4. Automation

    Automation executes the downstream behaviour: tasks, enrolments, updates—once per signal.

  5. AI & Agentic Workflows

    AI depends on reliable identity and context; an agent inherits every ambiguity in the data.

  6. Digital Operating Model

    Owners for definitions, reconciliation and repair come from the operating model.

Architecture decisions

Related work

Next capability · 06Automation

An integration is not a pipe. It is a contract that defines

  1. Identity
  2. Authority
  3. Event
  4. Payload
  5. Timing
  6. Delivery state
  7. Failure
  8. Recovery
  9. Reconciliation

And data architecture does not end when the data arrives.

It continues through history, derivation, a governed metric and activation—until someone takes an action.

Start with the contract

Two systems that disagree—and nobody knows which one is right?

  • What does a timeout mean in your integration today?
  • Which KPI has three definitions—and no owner?
  • What would a daily reconciliation find?
Start a conversation