Authority Reference

CRM Integration Architecture — Platforms That Keep Systems Aligned

Most companies don't have integration problems — they have coordination problems.

  • 20–30 minute review
  • No preparation needed
  • One integration mapped
Common Breakpoints

Systems don't fail because they disconnect. They disagree.

Every one of these looks like a bug. None of them are.

  • System says

    CRM: "approved"

    Reality

    Support: "pending"

  • System says

    Order: "shipped"

    Reality

    Warehouse: still packing

  • System says

    Payment: "confirmed"

    Reality

    Finance: still reviewing

Data conflicts
The assumption01

"If systems are connected, they stay in sync"

In production

The order shows "shipped" in Shopify but still "pending" in ERP

Root cause

Each system updates state on its own schedule

The assumption02

"Matching fields means matching records"

In production

Someone edits records every morning to "fix" data across three systems

Root cause

Each system defines status, stages, and labels differently

Process conflicts
The assumption03

"If the API returned 200, it worked"

In production

A refund processes in Stripe but the invoice still shows "Paid" in accounting

Root cause

Later events invalidate earlier decisions silently

The assumption04

"More automation removes manual work"

In production

Two automations update the same field and overwrite each other every 10 minutes

Root cause

Triggers act without shared state awareness

Systems share data, not authority

The Model

Three forces that must stay coordinated

Every integration failure traces back to one of these breaking down — or two of them falling out of sync.

Tap a force to simulate its failure

Status: coordinated · decisions on current data · actions reaching every system · state in sync

Data Flow

The data flow model

All integration problems are timing or ownership conflicts.

The pipeline · one change, five gates

01 / 05

Gate 01

Source of Truth

One system owns the truth

Every piece of data has exactly one authoritative system. This is where the record is created, updated, and owned. All other systems receive copies.

Ownership first · Then timing · Duplicates never

Real Scenarios

Same situation, two outcomes

Pick a scenario. See the difference.

Situation

Customer places an order. Warehouse discovers the item is out of stock 2 hours later.

Without architecture · breaks

Customer receives order confirmation. ERP gets updated manually. Warehouse sees the order but can't fulfill it. Customer gets confused "shipped" email 3 days later, then cancellation email. No one knows who saw what when.

With architecture · holds

Order event fires → ERP, CRM, warehouse all see it instantly → Warehouse stock check runs → Out-of-stock status propagates to all systems → Customer gets accurate notification within 60 seconds. Every system agrees on state.

How This Becomes an Implementation

Integration architecture turns into platforms, API layers, AI-ready data flow, or production infrastructure depending on the operating constraint.

Build path01

Internal platforms and portals

When the integration needs a human operating surface, we build the internal tool, admin portal, or product workflow around the connected systems.

Build path02

AI-ready data flow

When AI needs context from multiple tools, the integration layer prepares source-of-truth access, enrichment, and decision handoff paths.

Build path03

Cloud integration infrastructure

Queues, workers, APIs, storage, identity, and deployment environments make cross-system workflows reliable under real load.

Build path04

Production delivery controls

Observability, retries, rollback paths, and release discipline keep data flow predictable once integrations become operationally critical.

Design Tradeoffs

Why these patterns, not others

Every architectural decision is a tradeoff. These are the records — what we chose, what we passed on, and the cost we accepted.

ADR-001 · integration architecture

Accepted

Event-driven over request-based

Decision

Systems announce changes via events

Rejected alternative

Systems ask each other for data directly

Rationale

Events decouple systems so failures don't cascade. If one system is down, events queue and replay. Request-based integrations fail immediately.

Cost accepted

Harder to debug. You can't trace a single request end-to-end — you trace events across multiple consumers. Requires event infrastructure (queues, brokers).

Capability Map

The architecture across capabilities

Integration is one part of the system. Here is how it connects to everything else.

Integration architecture questions

No. Distributed systems exchange messages asynchronously — there is always a window, milliseconds to seconds, where two systems show different states. Strong consistency requires locking all systems simultaneously, which kills availability and throughput. Instead, we define acceptable consistency windows per data type: customer-facing data may need sub-5-second convergence, while internal reporting can tolerate minutes.

The event bus guarantees delivery and ordering. It does not check whether the data makes business sense — a pipeline will happily sync an invoice with a negative amount if the source system allows it. Each system validates its own inputs at the application boundary: integration moves data reliably; applications judge data correctness.

Within the same consistency window, automated rules handle simple cases — last-write-wins, version comparison, timestamp ordering. But business-critical conflicts require judgment that rules cannot encode, so we design escalation paths for conflicts automation can't resolve: the system flags ambiguity, and a human makes the call.

Events are replayable; external actions are not inherently idempotent. If an event triggers an email, a Slack message, or a payment charge, replaying that event fires the side effect again. We separate side-effect-producing actions from data synchronization, use idempotency keys for external API calls, and build replay-safe handlers.

Usually not. With 2 systems, a direct API connection with error handling is simpler, faster to build, and easier to maintain. Architecture patterns become valuable at 3+ systems, where coordination complexity grows exponentially. Until then, direct API integration with retry logic and basic error alerts is the right answer.

If records change less than once per day, real-time event infrastructure is overkill. A scheduled batch sync — nightly or hourly — with reconciliation checks is cheaper and simpler. Event-driven systems are designed for high-frequency, time-sensitive changes.

CRM integration architecture (and CRM ERP integration architecture) is the governed design for how CRM, ERP, and related systems exchange records — stable IDs, field ownership, sync direction, retries, and verification — so teams are not the human glue.

Read the full guide →

Each record type has a canonical ID and an owning system per field (for example CRM owns customer email; ERP owns invoice status). Downstream systems store foreign keys to those IDs instead of inventing parallel keys that drift.

Prefer one-way from the system of record unless both sides legitimately create updates. Bi-directional sync needs conflict rules, versioning, and escalation paths — otherwise two writers silently overwrite each other.

Often yes during discovery: use a spreadsheet as a staging surface with validation and an owner, then graduate high-volume paths to production sync. Spreadsheet-as-system-of-record is the failure mode; governed handoffs with verification fix it.

Start here

If your systems disagree about what's true

The patterns on this page explain why. The next step is mapping them to your specific systems.

Most companies reach this point after months of patching integrations. CRM / ERP integration · Operations automation · Automation architecture