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 →

14 min · Interactive exercise

Chapter 7 of 110 complete

Enrich the Records That Matter

Define eligibility and moment-of-use triggers instead of a blanket nightly refresh, then cap what enrichment is allowed to spend and who signs off on an ambiguous result.

A nightly job at GTM Lab enriches every record in the Contact population, including a batch of leads disqualified months ago and contacts on deals long since closed-lost. Nobody will ever call these records again. The job spends credits on them every night anyway, because “enrich everything” was easier to configure than deciding who actually needs it.

Enrichment isn't the same problem as accuracy

Enrichment fills gaps and refreshes stale fields. It doesn't validate what's already there or prove a record is otherwise trustworthy. A fully enriched record can still be a duplicate, still carry the wrong lifecycle stage, still be reachable on a channel it shouldn't be.

An explicit answer for every segment, and a real trigger moment

Give every population segment, meaning active pipeline, recently handed off, disqualified or closed-lost, and long-dormant, an explicit eligible: true or eligible: false, with a stated reason for exclusions, so no segment defaults into eligibility by accident. Then choose trigger moments, whether on-creation, on-handoff, or a sweep scoped only to already-eligible segments, instead of a blanket schedule against the whole database. A Ferrow Industrial contact just handed off to Sales enriches at the handoff moment, when the fresh data actually matters; the disqualified batch is excluded entirely, at zero credits spent.

I've made this exact trade, eligibility rules and moment-of-use triggers instead of a blanket nightly refresh, in a production system, where it cut predicted monthly enrichment credit use by more than 80%, from over 50,000 to under 10,000 credits. That's one company's outcome against its own prior baseline, not a guaranteed result of following this pattern.

Eligibility bounds the spend. A cap is what enforces it.

Scoping eligibility correctly shrinks the bill, but it doesn't put a ceiling on it. A trade-show import drops 800 newly-eligible contacts into the handoff queue on a Tuesday, every one of them legitimately eligible under the rules you just wrote, and the day's spend runs past its budget before anyone looks. A cap that reports the overage afterward is a receipt. A cap that is checked before each credit-consuming call is a control, and only the second one can still refuse.

Make the cap daily rather than monthly, so a bad morning costs a day instead of a quarter. When it binds, defer the excess to the next cycle rather than dropping it: a deferred request stays visible in a queue and runs when the cap resets, while a dropped one is a record nobody enriched and nobody knows about. Scope the kill switch to paid calls only, so stopping the spend doesn't also stop the free matching the rest of the system depends on. Keep the approval queue narrow enough that someone can actually clear it, which in practice means three conditions: a low-confidence result, a value that conflicts with one already on the record, and a reveal above a cost threshold. A queue nobody can keep up with gets bypassed, and a bypassed queue is worse than no queue, because it still appears in the diagram.

Name the owner before the cap binds, not during the quarter it blocks something urgent. Finance owns the limit, because it owns the budget. Revenue Operations reviews what the cap defers and what the queue flags, because it feels the constraint and can tell a real bottleneck from a busy week.

Carry this into your business

Enrichment spend should track how many records someone is about to act on, not how many records exist. If your enrichment bill grows every quarter regardless of pipeline activity, the missing piece is almost always eligibility rules.

GTM Lab

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

Saved locally to your browser.

Set eligibility and run the handoff case

Give every segment an explicit eligibility value and reason, set the write behavior, then run a Ferrow Industrial contact just handed off to Sales.

Fixture: newly-handed-off contact

Ferrow Industrial · new Sales handoff

FIXTURE-FERROW-HANDOFF-CONTACT
Account
Ferrow Industrial
Segment
Recently handed off to Sales
Enrichment history
None yet
Correct trigger
On-handoff, not the nightly schedule
Resets every run.
How should eligibility be decided?
A record with an open deal in active pipeline. When should it enrich?
A record just handed to Sales, like the Ferrow Industrial contact below. When should it enrich?
A record already disqualified or closed-lost. When should it enrich?
A record with no activity in a long time, but never formally disqualified. When should it enrich?
A result comes back. Some fields are empty, and one disagrees with a value already there. What should the write do?

Run the ineligible cohort

Confirm every record in the disqualified/closed-lost batch is excluded from enrichment with its stated reason.

Fixture: enrichment-ineligible-cohort

Disqualified and closed-lost batch

FIXTURE-ENRICHMENT-INELIGIBLE-COHORT
Segment
Disqualified leads and closed-lost contacts
Planned future contact
None
Current behavior
Enriched nightly alongside active pipeline
Credits at stake
Scales with database size, not sales activity
Resets every run.

Apply the exclusion

Cap the spend, and defer instead of drop

With eligibility scoped correctly, a batch of newly-eligible handoffs after a trade-show import still pushes the day past the credit cap. Set the spend cap model, decide what happens the moment the cap is hit, set the kill switch and approval-queue triggers, and name who owns the decision.

A cap only helps if it binds before the money is gone. What should it measure, and when?
What happens the moment the cap is hit?
Something is wrong and spend has to stop right now. What should the kill switch actually turn off?
A queue nobody can keep up with gets bypassed. Which results should stop for review before they write?
The cap will eventually be hit during a quarter that matters. Who decides whether to raise it?
Chapter 7 of 110 complete