CRM Data Enrichment: Enrich on Create, Re-enrich on Schedule, React to Job Changes

Julien K.
Co-Founder Reverse Contact
Published
October 6, 2024
·
Updated
September 13, 2026

There are three moments to enrich a CRM record, and each one fixes a different problem. Enriching on create fills the fields a form never asked for — title, company size, seniority — so a new lead can be scored and routed immediately. Re-enriching on a schedule catches slow drift: the promotion nobody mentioned, the company that doubled. Reacting to events — a job change, a company move — catches the moment a record stops being true, which is also usually the moment a contact becomes a lead again somewhere else. A CRM is accurate on the day a record is created and decays from there. Across the customer datasets Reverse Contact works with, 15 to 25% of business email addresses go stale within twelve months. The question is not whether to enrich, but on which trigger.

What rots in a CRM, and how fast

Not every field decays at the same rate, and an enrichment plan that treats them equally wastes credits on stable data while missing the fields that matter.

  • Job title — the fastest. In Reverse Contact's benchmark across technology industries, 4.8% of professionals changed job or company per quarter, about 18% a year, and that counts only moves, not promotions or title changes within the same employer.
  • Company — decays with the job; the same event usually changes both.
  • Business email — 15 to 25% become stale within twelve months in the datasets we observe, because the address dies with the job. The visible symptom is the bounce rate: unverified B2B email lists bounce at roughly 5 to 15%; verified lists at 0.5 to 2%. That gap is the cost of stale contact data made measurable.
  • Phone — direct lines follow the person; switchboards follow the company. Both go stale with moves, more slowly than email.
  • Company size and industry — slow for stable companies, fast for anything growing. In a 2025 study, 16.6% of companies moved out of their declared headcount range within a year.
  • Location — slow, and less predictive since remote work.

The decay curves matter because they set the schedule. Re-enriching location monthly is money spent on a field that changes every few years. Re-enriching title once a year leaves a fifth of your contacts pointing at jobs they have left.

Moment one: enrich on create

A record enters the CRM with whatever the source gave you — an email from a signup form, a name and company from an import, a LinkedIn URL from a rep. The gaps are structural: forms ask for as little as possible because every field costs conversion, and imports carry the schema of wherever they came from.

Enrichment on create fills the gaps once, at the moment the record exists, so that scoring, routing and the first response all work on a complete picture. The mechanics are one call to the Person Enrichment API with whatever identifier you hold — email, name plus domain, or profile URL — and a write-back of the fields you care about.

Two decisions to make explicitly. Which fields to write: the ones your scoring and routing actually consume, not everything the API returns; unused fields are maintenance you will pay for later. What confidence to require: every match carries a score, and you can raise the precision threshold per request. For a record a rep will act on within the hour, require high confidence and accept more nulls. For a record that will sit in a nurture sequence, a lower threshold may be acceptable. Either way, when the API is not confident enough, the field stays empty rather than receiving a plausible guess — a wrong title in a CRM is worse than a blank one, because nobody questions it.

Moment two: re-enrich on a schedule

Scheduled re-enrichment is the maintenance pass. It re-reads records that have not been touched in a while and updates what changed. The design questions are frequency and scope.

Frequency per field, not per record. Title and company quarterly, or more often for the accounts that matter. Email on the same cycle, with real-time verification before any send. Company size and industry twice a year. Location annually. A single "refresh everything every six months" schedule over-spends on stable fields and under-serves the fast ones.

Scope by value. Re-enrich open opportunities and active accounts first; dormant records last, or not at all. A record nobody has looked at in two years does not need a fresh title; it needs a decision about whether it should still exist.

Cost. Every re-read is a credit. Two things keep it bounded: null results are not charged, and the last-updated timestamp on every record tells you which ones actually need a refresh. Re-reading a profile that was verified three weeks ago is spending money to learn nothing.

For large backfills — a CRM migration, a dataset acquired from a partner — the same enrichment runs as a batch through CSV enrichment rather than record by record.

Moment three: react to events

Scheduled refresh is always late by half its interval. Event-driven enrichment is not late at all: when a contact's title or company changes, the record updates then, and your workflows can respond then.

This is the case for webhooks over polling. Instead of re-reading ten thousand records a quarter to find the five hundred that moved, you subscribe to changes and receive the five hundred. The saving is not only credits; it is the nine and a half thousand records you did not have to process, and the weeks you did not wait to learn about the moves.

Job changes are also the highest-value event a CRM can surface. A champion who moves to a new company is a warm introduction into that company. A contact promoted into a buying role is a lead that just created itself. A CRM that learns about these on a quarterly refresh has already missed the window; one that learns about them the week they happen has a pipeline source nobody else in the company is working. This is the workflow the CRM enrichment use case is built around.

Deduplication: the stable identifier

Enrichment creates duplicates if it is not designed against them. The same person arrives on a work email in March and a different work email in September, after a job change, and the CRM now holds two records for one human.

The fix is to merge on something that does not change. Every person Reverse Contact resolves carries a stable ID that persists across emails, employers and titles. Write it to the CRM on first enrichment; on every subsequent enrichment, match on it before creating anything. Two records with the same ID are one person, and the newer record's title and company are the current ones. The LinkedIn URL serves the same purpose for profiles; the company LinkedIn ID does it for accounts.

Measuring whether it is working

Four numbers, each answering a different question.

  • Completeness rate on the fields you score and route with. If title is 60% populated, 40% of your leads are being routed blind.
  • Email bounce rate, per campaign. The gap between unverified (5–15%) and verified (0.5–2%) B2B lists is the most direct proof that enrichment is paying for itself — and the one your deliverability depends on.
  • Median record age, from last-updated. If it is creeping up, your schedule is too slow or your scope too wide.
  • Duplicate rate, measured on the stable ID. If it is above a low single digit, merging is not happening on create.

What no enrichment can fix

Three things, stated plainly. Consent: enrichment fills in professional fields; it does not create a legal basis to contact someone who has opted out, and a record's opt-out status must survive every refresh untouched. Internal data: what a customer bought from you, what they said on a call, which deals they influenced — none of that exists in any external source, and an enrichment pipeline that overwrites internally-maintained fields is destroying value. And judgement: a complete, current record is the input to a good decision, not the decision. Enrichment makes the CRM true; what the team does with a true CRM is still up to the team.

Frequently asked questions

What is CRM data enrichment?

Filling and refreshing the fields in a CRM record — title, company, seniority, company size, industry, verified contact points — from an external data source, so that scoring, routing and outreach work on complete, current information. Reverse Contact delivers it through the Person Enrichment API and the Company Enrichment API.

How often should CRM data be refreshed?

Per field, not per record. Title, company and email quarterly or on event; company size and industry twice a year; location annually. Event-driven refresh via webhooks removes the schedule question for the fields that change fastest.

How much of a CRM goes stale in a year?

In the datasets Reverse Contact observes, 15 to 25% of business emails become stale within twelve months, and roughly 18% of professionals in technology industries change job or company each year. Email bounce rates make it visible: 5–15% on unverified B2B lists against 0.5–2% on verified ones.

Does enrichment create duplicates?

It will, unless records are merged on a stable identifier that survives job changes. Write the person ID on first enrichment and match on it before creating any record.

Scrape Any Data from LinkedIn, Without Limits.

A streamlined LinkedIn scraper API for real-time data scraping of complete profiles and company information at scale.

Specialized Expertise
High-Volume Power

The data layer behind your GTM engine

Access fresh people and company data through one API and power every enrichment, prospecting, and automation workflow.

1
B+
Profiles
300
M
Requests / month
500
ms
Response time (P95)