Building a customer 360 from 12 disconnected CRM systems

Building a customer 360 from 12 disconnected CRM systems

Simor Consulting | 16 Sep, 2026 | 07 Mins read

A healthcare conglomerate grew through acquisition for fifteen years. Each acquisition brought its own CRM. Salesforce in three divisions. Microsoft Dynamics in two. HubSpot in one. A custom-built CRM in another. A legacy on-premise system that predated the cloud era in two more. By the time they counted, there were twelve distinct CRM systems holding customer data for overlapping populations with no shared identifier, no common schema, and no reconciliation mechanism.

The customer was sometimes the patient, sometimes the referring physician, sometimes the insurance payer, and sometimes the employer group. A single individual could exist in four systems under three different names with two different email addresses and conflicting dates of birth. The commercial team could not answer basic questions: how many unique customers do we serve, what is the total revenue per customer across all divisions, which customers are at risk of churning?

A prior attempt to solve this had failed spectacularly. The company had licensed a master data management platform and attempted to build a golden record by importing all twelve systems into a central hub. The project ran for fourteen months, spent $2.3 million, and produced a golden record that matched eighty-two percent of customers. The remaining eighteen percent — roughly sixty thousand records — had conflicting data that the MDM platform could not resolve automatically. Manual resolution of sixty thousand records would have taken a team of twelve people approximately eight months. The project was abandoned.

Starting Without a Master Record

The second attempt began with a rejection of the golden record concept. Not because golden records are wrong in theory, but because the effort to create a perfect golden record across twelve systems with fifteen years of organic data quality problems was disproportionate to the value it would produce. The company did not need a perfect record. The company needed to answer specific questions about its customers.

We reframed the problem. Instead of “unify all customer data into a single record,” the question became “given a set of business questions, what is the minimum integration that can answer them?”

The business questions were:

  1. What is the total revenue per customer across all divisions?
  2. Which customers are active in more than one division?
  3. Which high-value customers have not been contacted in ninety days?
  4. What is the customer churn rate by division and by product line?

Each question required a different subset of the customer data. Revenue questions needed billing system linkage, not CRM unification. Cross-division activity needed identity resolution, not schema harmonization. Contact recency needed the most recent interaction timestamp from any system. Churn rate needed a consistent definition of “active” across systems.

The Identity Resolution Layer

The core technical challenge was identity resolution: determining that a record in System A and a record in System B referred to the same person. The MDM approach tried to resolve all records upfront. Our approach resolved identities on demand, for the specific records that were relevant to each business question.

An identity resolution service was built that accepted a set of candidate records from any combination of systems and returned a confidence score for each pair. The matching logic used a weighted combination of signals: exact name match (high weight), email match (high weight), phone number match (medium weight), date of birth match (high weight), address match (low weight, because addresses change frequently in healthcare). The weights were tuned against a manually labeled sample of five thousand record pairs that a panel of three domain experts had classified as same-person, different-person, or ambiguous.

The service did not make binary match/no-match decisions. It returned a confidence score between zero and one. Records with a score above 0.85 were treated as matches. Records below 0.60 were treated as non-matches. Records between 0.60 and 0.85 were flagged for human review. This three-zone approach avoided the false precision of a binary threshold. The eighty-five percent threshold was chosen because the labeled sample showed that false positive rates below this threshold were under two percent, which was acceptable for revenue aggregation but not for compliance-sensitive decisions.

This diagram requires JavaScript.

Enable JavaScript in your browser to use this feature.

The identity resolution service was not a batch process. It ran as an API that was called when a business question required cross-system linkage. When the commercial team asked “what is the total revenue per customer,” the revenue aggregation service called the identity resolution service to link billing records across systems. The linkage was computed for the specific population relevant to the question, not for all records in all systems.

This on-demand approach had a significant advantage over upfront resolution: it was incremental. The first business question — total revenue — required linking billing systems, which involved approximately eighty thousand active customers. The identity resolution service processed these in forty minutes. The second question — cross-division activity — required linking CRM systems for the same population. The service reused the matches from the first question and computed new matches only for the CRM-specific records. Each subsequent question was faster because the match cache grew.

The View Layer

Business users did not interact with the identity resolution service. They interacted with views — materialized perspectives of customer data tailored to specific business questions.

The revenue view joined billing records across systems using identity resolution matches and presented a single row per customer with revenue totals by division, by product, and by time period. The view did not attempt to reconcile customer names, addresses, or contact information. It showed the customer’s identity as it appeared in the system with the most recent update, with a link to the source record in each system.

The activity view combined interaction timestamps from all CRM systems and presented the most recent touchpoint per customer, the number of days since last contact, and the responsible sales representative. When the same individual appeared in multiple systems with different sales representatives, the view showed all representatives, which occasionally surfaced territory conflicts that had been invisible before.

The at-risk view applied the churn definition — no interaction in ninety days for standard customers, sixty days for enterprise customers — against the activity view and filtered to customers above a revenue threshold. This view was the one that produced immediate action. The first time the commercial team saw the at-risk view, they identified forty-seven enterprise customers who had not been contacted in over sixty days. Fourteen of those customers had open support tickets in a system that the sales team did not monitor. The tickets had been open for weeks without a follow-up call.

What the On-Demand Approach Cost

The on-demand resolution approach traded upfront completeness for query-time latency and coverage gaps.

Not all records were resolved. The match cache contained only the records that had been involved in a business question. Records that had never appeared in a query — inactive customers, historical records from decommissioned products — were unresolved. If a new business question required linking those records, the resolution service would compute matches at query time. This was acceptable for current business questions but meant that historical analysis could not be performed instantly. The team learned to pre-warm the cache for planned analyses by running the resolution service against the relevant population the night before.

The human review queue accumulated records that the service could not confidently match or reject. Over six months, the queue grew to eleven thousand record pairs. The company assigned two data stewards to review the queue at a rate of approximately sixty pairs per day. The review process was straightforward for the stewards — they had domain knowledge that the matching algorithm lacked — but the queue never reached zero because new records were continuously added. The team accepted this as a permanent operational cost rather than a problem to be solved.

Conflicting data across systems was never fully resolved. When System A said a customer’s primary phone number was 555-0101 and System B said it was 555-0102, the identity resolution service correctly identified the records as the same person but could not determine which phone number was correct. The view layer showed both numbers with their source systems. The commercial team made their own judgment. This was a feature, not a bug — it surfaced data quality issues that had been hidden by the fragmented system architecture.

The Result

After eight months, the company could answer all four business questions that had been previously unanswerable. Total revenue per customer was available within two hours of a query. Cross-division activity was visible for the first time, revealing that twelve percent of enterprise customers used three or more divisions — a segment that had been invisible because each division tracked its own customers independently. The at-risk view produced a weekly action list that the commercial team used for outreach. Churn rate by division was reported quarterly with a consistent definition for the first time in the company’s history.

The project cost was $480,000 over eight months — one-fifth of the failed MDM project — and did not require migrating or decommissioning any of the twelve CRM systems. The systems remained in place. The identity resolution layer sat on top of them. When a division eventually migrated to a common CRM, the resolution service adapted by adding the new system as a source and removing the old one. The layer was migration-agnostic.

The Heuristic

Before unifying data across multiple systems, list the questions you need to answer. For each question, identify the minimum data elements required. If the minimum is three fields from two systems, do not harmonize all forty fields from all twelve systems. Build the resolution layer for the questions, not for the data.

Golden records are a means, not an end. The end is answering business questions. If you can answer the questions without a golden record, skip the golden record. You can always build one later if the questions demand it. You cannot unspend the fourteen months and $2.3 million that a premature golden record project consumes.

Shipping a production AI system?

Find the control gaps before they turn into incidents. Take the AI Production Scorecard for a fast baseline across the seven layers, or book an architecture review and we will turn it into a hardening plan.

Similar Articles

The Modern Data Stack for AI Readiness: Architecture and Implementation
The Modern Data Stack for AI Readiness: Architecture and Implementation
28 Jan, 2025 | 03 Mins read

Existing data infrastructure often cannot support ML workflows. The modern data stack offers a foundation, but it requires adaptation to become AI-ready. This article covers building a data architectu

How a retailer reduced inference latency 90% with feature store caching
How a retailer reduced inference latency 90% with feature store caching
21 Apr, 2026 | 04 Mins read

A mid-market e-commerce retailer with roughly $200M in annual revenue had invested eighteen months building a product recommendation engine. The models were accurate. Offline evaluation showed meaning

The data pipeline that cost $50K/month — and the audit that found why
The data pipeline that cost $50K/month — and the audit that found why
22 Apr, 2026 | 04 Mins read

A financial services firm running analytics on trade settlement data came to us with a specific complaint: their cloud data platform cost had tripled in eighteen months, and nobody could explain why.

dbt vs SQLMesh: which transformation tool wins in 2026?
dbt vs SQLMesh: which transformation tool wins in 2026?
23 Apr, 2026 | 06 Mins read

Every analytics team eventually faces the same choice: how do you transform raw data into something analysts can actually use? For years, dbt was the only serious answer. SQLMesh arrived with a differ

Migrating from batch to streaming: a 6-month journey
Migrating from batch to streaming: a 6-month journey
28 Apr, 2026 | 05 Mins read

A logistics company processing two million shipments per day ran their entire operational reporting stack on nightly batch ETL. Every morning at 6 AM, operations managers reviewed dashboards built on

Data Lakehouse Security Best Practices
Data Lakehouse Security Best Practices
22 Feb, 2024 | 02 Mins read

Data lakehouses combine lake flexibility with warehouse performance but introduce security challenges from their hybrid nature. Securing these environments requires layered approaches covering authent

When RAG failed: a knowledge retrieval project post-mortem
When RAG failed: a knowledge retrieval project post-mortem
29 Apr, 2026 | 05 Mins read

A legal technology company had invested six months building a retrieval-augmented generation system to help contract attorneys find relevant precedent clauses across a corpus of 180,000 executed agree

From 3-hour dashboards to 3-minute insights: a BI modernization story
From 3-hour dashboards to 3-minute insights: a BI modernization story
05 May, 2026 | 05 Mins read

A manufacturing company with facilities in twelve countries ran its operational reporting on a traditional BI stack: a data warehouse, an ETL pipeline, and a dashboard tool that had been deployed six

Orchestration face-off: Airflow vs Prefect vs Dagster
Orchestration face-off: Airflow vs Prefect vs Dagster
07 May, 2026 | 06 Mins read

The orchestration market has a clear incumbent and two serious challengers. Apache Airflow has been the default choice since 2015. Prefect and Dagster both emerged to address Airflow's pain points, bu

The vector database that couldn't scale — and what we did instead
The vector database that couldn't scale — and what we did instead
12 May, 2026 | 05 Mins read

A media company with a library of twelve million articles, transcripts, and research documents had built a semantic search system on a managed vector database. The system was designed to let journalis

Building an AI operating system for a 10,000-person company
Building an AI operating system for a 10,000-person company
19 May, 2026 | 05 Mins read

A diversified industrial company with 10,000 employees across manufacturing, logistics, and field services had accumulated forty-seven separate AI projects over three years. Each business unit had bui

Real-time streaming: Kafka vs Redpanda vs Pulsar
Real-time streaming: Kafka vs Redpanda vs Pulsar
21 May, 2026 | 05 Mins read

Kafka has dominated event streaming for a decade. It processes trillions of messages daily across thousands of companies. Its dominance created an ecosystem so large that "streaming" became synonymous

How we killed our ETL pipeline (and productivity went up)
How we killed our ETL pipeline (and productivity went up)
26 May, 2026 | 05 Mins read

A B2B SaaS company running a customer success platform had a data pipeline that consumed sixty percent of the data engineering team's time. Not feature work. Not analytics. Pipeline maintenance. The p

A compliance-first AI rollout in financial services
A compliance-first AI rollout in financial services
03 Jun, 2026 | 05 Mins read

A regional bank with $12 billion in assets wanted to use machine learning to improve its commercial loan underwriting process. The existing process was manual, relying on credit analysts who spent fou

Semantic Layer Implementation: Challenges and Solutions
Semantic Layer Implementation: Challenges and Solutions
20 Mar, 2024 | 02 Mins read

A semantic layer provides business-friendly abstraction over technical data structures, enabling self-service analytics and consistent metric interpretation. Implementing one involves technical challe

The $2M model that never made it to production
The $2M model that never made it to production
09 Jun, 2026 | 05 Mins read

A retail chain with 400 stores spent two years and $2.1 million building an inventory optimization model. The model was technically excellent. It reduced predicted stockouts by thirty-two percent and

Data cataloging tools: Atlan, Alation, DataHub, Amundsen
Data cataloging tools: Atlan, Alation, DataHub, Amundsen
11 Jun, 2026 | 05 Mins read

A data catalog solves a trust problem. When an analyst cannot find the right table, does not know what a column means, or cannot tell whether data is fresh, they either guess or ask someone. Both outc

Data mesh in practice: year 2 retrospective
Data mesh in practice: year 2 retrospective
16 Jun, 2026 | 05 Mins read

An insurance company with $400 million in premium volume adopted data mesh two years ago. The central data team had become a bottleneck. Every business unit — claims, underwriting, actuarial, and dist

When your AI vendor goes bankrupt — surviving platform lock-in
When your AI vendor goes bankrupt — surviving platform lock-in
23 Jun, 2026 | 05 Mins read

A healthcare analytics company received notice on a Tuesday afternoon that their primary AI infrastructure vendor was filing for Chapter 7 bankruptcy. The platform hosted their patient risk stratifica

Real-time fraud detection: from proof-of-concept to production in 90 days
Real-time fraud detection: from proof-of-concept to production in 90 days
30 Jun, 2026 | 05 Mins read

A payment processor handling twelve million transactions per day had a fraud detection system that was accurate but slow. The system reviewed transactions in batch, four times per day. A fraudulent tr

Consolidating 47 data sources into one knowledge layer
Consolidating 47 data sources into one knowledge layer
01 Jul, 2026 | 05 Mins read

A global professional services firm with 8,000 consultants maintained institutional knowledge across forty-seven separate systems. Project proposals lived in a document management system. Client engag

The GDPR audit that reshaped our entire ML pipeline
The GDPR audit that reshaped our entire ML pipeline
07 Jul, 2026 | 05 Mins read

A European fintech with twelve million customers received a GDPR audit notice from their national data protection authority. The audit focused on the company's machine learning pipeline, which powered

How a healthcare org deployed LLMs without violating HIPAA
How a healthcare org deployed LLMs without violating HIPAA
14 Jul, 2026 | 05 Mins read

A hospital system with twelve facilities and 14,000 clinical staff wanted to use large language models to assist with clinical documentation. Physicians spent an average of two hours per day on docume

Data quality platforms: Great Expectations vs Soda vs Monte Carlo
Data quality platforms: Great Expectations vs Soda vs Monte Carlo
15 Jul, 2026 | 06 Mins read

Data quality failures are expensive and silent. A broken pipeline does not crash — it produces wrong data that flows into dashboards, models, and decisions. The error is discovered weeks later when a

Legacy mainframe to cloud-native: the data migration they said was impossible
Legacy mainframe to cloud-native: the data migration they said was impossible
21 Jul, 2026 | 06 Mins read

An insurance company running on an IBM mainframe had accumulated forty years of policy data in VSAM files and DB2 tables. The mainframe processed 600,000 transactions per day across policy administrat

The modern data stack is dead — here's what replaced it
The modern data stack is dead — here's what replaced it
23 Jul, 2026 | 05 Mins read

The modern data stack was a marketing category that outlived its usefulness. Between 2019 and 2023, it described a specific architecture: Fivetran or Airbyte for ingestion, dbt for transformation, Sno

Building trust in AI recommendations — the change management story
Building trust in AI recommendations — the change management story
28 Jul, 2026 | 06 Mins read

A consumer goods company built an AI system that recommended reorder quantities for 12,000 SKUs across 340 distribution points. The system optimized for a multi-objective function that balanced invent

Schema registry showdown: Confluent vs Apicurio vs AWS Glue
Schema registry showdown: Confluent vs Apicurio vs AWS Glue
30 Jul, 2026 | 05 Mins read

When producers and consumers share a Kafka topic without agreeing on the data format, things break in production. A producer adds a field. A consumer expects the old schema. The deserialization fails,

When the model was right but nobody believed it
When the model was right but nobody believed it
04 Aug, 2026 | 05 Mins read

An agriculture technology company built a crop yield prediction model that combined satellite imagery, soil sensor data, weather forecasts, and historical yield records. The model predicted per-field

Scaling a recommendation engine from 1K to 10M users
Scaling a recommendation engine from 1K to 10M users
11 Aug, 2026 | 06 Mins read

A video streaming platform grew from 1,000 beta users to 10 million subscribers over thirty months. Their recommendation system was rebuilt three times during this period. Each rebuild was triggered n

Real-time pricing engine: from batch overnight to sub-second
Real-time pricing engine: from batch overnight to sub-second
19 Aug, 2026 | 05 Mins read

An online travel agency processed 2.3 million flight searches per day. Each search triggered a pricing computation that determined the displayed fare for every matching itinerary. The pricing computat

The data catalog project that actually stuck — 18 months later
The data catalog project that actually stuck — 18 months later
25 Aug, 2026 | 07 Mins read

Most data catalog projects die within six months. The tool gets purchased, a team populates it with metadata for a few hundred tables, enthusiasm fades, and twelve months later the catalog is a stale

Replatforming a decade of analytics from Oracle to Snowflake
Replatforming a decade of analytics from Oracle to Snowflake
01 Sep, 2026 | 07 Mins read

Ten years of analytics built on Oracle means ten years of accumulated PL/SQL, materialized views, database links, stored procedures, and ETL jobs that nobody fully understands. The schema has four hun

Data pipeline monitoring: Elementary vs Databand vs Lightup
Data pipeline monitoring: Elementary vs Databand vs Lightup
03 Sep, 2026 | 05 Mins read

A data pipeline fails silently. The DAG completes without errors, the tables are populated, but the numbers are wrong. A column that was never null now has 30% nulls. A join that produced 10,000 rows

How a logistics company predicted delivery failures before they happened
How a logistics company predicted delivery failures before they happened
08 Sep, 2026 | 06 Mins read

A regional logistics company running three thousand deliveries per day across a six-state territory had a late-delivery rate of fourteen percent. The cost of a late delivery was not just the apology.

When the CDO and CTO disagreed on AI strategy — and what happened
When the CDO and CTO disagreed on AI strategy — and what happened
15 Sep, 2026 | 06 Mins read

At a mid-market insurance company with eight thousand employees, the Chief Data Officer and the Chief Technology Officer had fundamentally different views on how AI should be adopted. The CDO believed

Serverless Data Pipelines: Architecture Patterns
Serverless Data Pipelines: Architecture Patterns
05 Jun, 2024 | 08 Mins read

# Serverless Data Pipelines: Architecture Patterns Serverless computing eliminates server management and provides automatic scaling with pay-per-use billing. These benefits matter for data pipelines

Event-Driven Data Architecture
Event-Driven Data Architecture
15 Sep, 2024 | 02 Mins read

Event-driven architectures treat changes in state as events that trigger immediate actions and data flows. Rather than processing data in batches or through scheduled jobs, components react to changes

From Data Silos to Data Mesh: The Evolution of Enterprise Data Architecture
From Data Silos to Data Mesh: The Evolution of Enterprise Data Architecture
15 Feb, 2025 | 03 Mins read

Traditional centralized data architectures worked for BI but struggle with AI workloads. Centralized teams become bottlenecks as data volumes grow. Domain experts who understand the data are separated

Case Study: End-to-End RAG Platform for Customer Support
Case Study: End-to-End RAG Platform for Customer Support
05 Dec, 2025 | 05 Mins read

A SaaS company with 200 support agents and 10,000+ knowledge base articles had an 18-hour average response time and 23% first-contact resolution. Their largest enterprise client threatened to cancel a

Case Study: Building a Production AI Knowledge Layer for Financial Services
Case Study: Building a Production AI Knowledge Layer for Financial Services
01 Mar, 2026 | 10 Mins read

A regional bank's investment research team spent 60% of their time gathering information and 40% doing analysis. Analysts had to search through regulatory filings, internal research memos, market data

Feature Stores for AI: The Missing MLOps Component Reaching Maturity
Feature Stores for AI: The Missing MLOps Component Reaching Maturity
12 Mar, 2026 | 11 Mins read

A recommendation system team built their tenth model. Each model required feature engineering. Each feature engineering project started by copying code from the previous project, then modifying it for

Case Study: Multi-Agent System for Supply Chain Optimization
Case Study: Multi-Agent System for Supply Chain Optimization
13 Jun, 2026 | 12 Mins read

A mid-size automotive parts manufacturer with operations spanning 15 countries and relationships with over 200 suppliers faced a supply chain coordination problem that was consuming too much of their

The AI Data Pipeline: Special Considerations for Unstructured and Structured Data
The AI Data Pipeline: Special Considerations for Unstructured and Structured Data
11 May, 2026 | 13 Mins read

Data pipelines for AI are not the same as data pipelines for traditional software systems. The outputs are different. The failure modes are different. The tolerance for data quality issues is differen