We need phones, emails, and titles our CRM just does not have
Internal backfills can only copy what you already know. For net-new emails, mobile numbers, and job titles you need an external provider — ideally a waterfall that tries many sources and only charges for hits. This skill makes the provider pluggable: FullEnrich by default, adapters for Apollo, Hunter, and Dropcontact, and a template for whatever you already pay for.
The internal enrichment skills (`/enrich-company-name`, `/enrich-industry`, `/backfill-geo-data`) only move data the portal already has. When a contact's email, direct dial, or title simply isn't anywhere in HubSpot, external enrichment is the only fix — and it costs real money per lookup, which is why this skill is built around cost caps, previews, and typed confirmations. — from the Waterfall-Enrich Contacts with External Providers skill
Fix it with one command
The waterfall-enrich-contacts skill walks Claude Code through the entire fix — audit, CSV baseline, execution, and verification. Ready-to-run Python scripts included.
/plugin marketplace add tomgranot/hubspot-admin-skills
/plugin install hubspot-admin@hubspot-admin-skills
/waterfall-enrich-contactsFrequently asked questions
What is waterfall enrichment?
Instead of querying one data vendor, a waterfall tries a sequence of sources until one returns a verified value — typically doubling hit rates for emails and mobiles. FullEnrich (the default adapter) waterfalls across 20+ premium sources.
Will enrichment overwrite data we already trust?
Not by default: the skill never overwrites a non-empty HubSpot value unless you explicitly set ENRICHMENT_OVERWRITE=true, and every run has a hard contact cap and cost preview before anything is written.
Can I use my existing enrichment vendor instead of FullEnrich?
Yes — copy the provider template, implement one enrich() function against your vendor’s API, register it, and set ENRICHMENT_PROVIDER to its name.
More data enrichment skills
/assign-unowned-contactsAssign an owner to marketing contacts that have no owner. Ensures every marketable contact has accountability for follow-up, proper lead routing, and accurate owner-based reporting.
/enrich-company-namePopulate missing contact company name fields from associated company records using a HubSpot workflow with optional API backfill. Ensures contacts inherit their company name for segmentation, personalization, and ICP classification.
/enrich-industryBackfill contact-level industry from associated company records using a HubSpot workflow. Enables industry-based segmentation for targeted campaigns aligned with ICP verticals.