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-contacts

Frequently 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