The rule that matters: only fill gaps#
An enrichment pass that overwrites existing values will eventually replace something a human verified with something a crawler guessed — and nobody will notice, because both look identical in the interface a week later. Filling empty fields only is the conservative default, and it is the one that keeps a database trustworthy over years.
Where an overwrite is genuinely wanted, it should be a separate, explicit action with the old value retained. Silent refresh is the mechanism by which good data becomes average data.
Provenance is the deliverable#
The valuable output of enrichment is not the field. It is the answer to where did this come from, recorded per field: which URL, which pass, on what date. Without it, a wrong value cannot be traced, a stale value cannot be aged out, and a compliance request cannot be answered.
It also makes the data usable in an email. A fact you can link to is a fact you can reference; a fact of unknown origin is one a rep has to re-check before writing, which means it is not saving anyone time.
What enrichment must not invent#
Two temptations produce most bad enrichment data. The first is deriving a person from an address — turning info@ or sales@ into a named contact. The second is deriving an address from a name and a domain and then presenting the guess with the same confidence as a published address.
Both are avoidable with rules rather than judgement: drop role accounts, only derive a name where the local part is plausibly one, and mark everything discovered by crawling as unverified.
Enrichment in SalesShift#
The SalesShift enrichment crawler reads a company's own site, fills only empty fields, drops role accounts, records provenance per field — URL, fields, timestamp — and marks every discovered address unverified. Erasure requests are checked before any insert, so a later crawl cannot resurrect someone who asked to be removed.
Further reading#
See it running
Signals, prospect search, sequences, deliverability and pipeline on one record.