gtmjosh
CRM Data Quality
Chapters
  1. 01 · What Makes CRM Data Trustworthy?
  2. 02 · Run a Baseline Data Audit
  3. 03 · Find and Prevent Duplicates
  4. 04 · Standardize and Validate Records
  5. 05 · Handle Consent, Opt-Outs, and DNC
  6. 06 · Handle Job Changes, Departures, and Churn
  7. 07 · Enrich the Records That Matter
  8. 08 · Resolve Conflicting Values
  9. 09 · Choose What to Buy, Configure, Connect, or Build
  10. 10 · Establish Continuous Checks and Quarterly Audits
  11. 11 · Capstone: Repair a Broken CRM Population
Guide overview →

12 min · Interactive exercise

Chapter 8 of 110 complete

Resolve Conflicting Values

Set the overwrite rule for CRM-vs-provider conflicts and block an unsafe merge.

An enrichment provider returns a job title and company size for a Ferrow Industrial contact. Both conflict with values a rep entered by hand the previous week. The enrichment job, running on its nightly schedule, is about to overwrite both, because “newest data wins” was never actually decided as a policy. It just became the default behavior nobody chose.

Freshness of the write isn't freshness of the fact

A value's freshness as a write isn't the same as the freshness of the underlying fact. Classify every field family in advance, using the same source/authority/freshness vocabulary the field dictionary already defines: a practitioner-owned assessment is never silently overwritten; a system-derived, recalculable field refreshes when its source recalculates; a provider-sourced firmographic field refreshes on verified higher freshness; an empty field fills automatically.

A conflict that stays, and a merge that stops

The Ferrow Industrial contact's job title is practitioner-owned-adjacent, so it is never silently overwritten, while company size is provider-sourced-by-default and refreshes automatically. The provider-conflict-pair fixture confirms the job title routes to review with both values shown while company size refreshes on its own. The same never-silent rule applies to a merge involving a protected record: the Priya Shah / Rina Fields merge from Chapter 3 stays blocked here too, for the same reason.

Carry this into your business

Decide the overwrite rule for each field family before an enrichment job forces the decision at 2 a.m. on a schedule nobody's watching. “Newest wins” isn't a policy. It's what happens by default when nobody wrote one down.

GTM Lab

Saved locally
CRM Data Reliability Plan · 0 of 11 sections started

Saved locally to your browser.

Classify the field families and run the conflict

An enrichment provider returns a job title and company size for a Ferrow Industrial contact that conflict with values a rep entered by hand last week.

Fixture: provider-conflict-pair

Ferrow Industrial contact · provider conflict

FIXTURE-PROVIDER-CONFLICT-PAIR
Job title (rep-entered, last week)
VP, Operations
Job title (enrichment provider)
Operations Manager
Company size (rep-entered)
Not set
Company size (enrichment provider)
250-500 employees
Resets every run.
A rep typed this job title in by hand last week. The provider disagrees. Which field family does job title belong to?
Nobody entered Ferrow Industrial’s company size by hand; it came from the provider. Which field family does it belong to?
Across every field, not just these 2: what should the default overwrite rule be?

Set the conflict-log fields

Field ID, CRM value, provider value, sources, review outcome, final value

Revisit the unsafe proposed merge

Confirm the Priya Shah / Rina Fields merge stays blocked under this same never-silent rule.

Fixture: unsafe-proposed-merge

Priya Shah × Rina Fields · proposed merge

FIXTURE-UNSAFE-PROPOSED-MERGE
Priya Shah
Acme Manufacturing · Sales-ready · open expansion Opportunity
Rina Fields
Created by a bulk import that copied Priya’s phone and email domain
Match score
High (phone + email-domain match)
Protected condition
Priya has an open Opportunity
Resets every run.

Re-check the merge

Chapter 8 of 110 complete