log in sign up now
HubSpot Email Backfill back to library
~ / library / Enrichment / hubspot-email-backfill

HubSpot Email Backfill

Find HubSpot contacts with missing, bounced, or role-based emails, enrich them through the MoltSets waterfall, and write verified addresses back to the CRM.
  • Find and fix contacts in HubSpot with missing or bounced emails
  • Backfill verified business emails for this HubSpot segment

What this skill does

Fills the email gaps in your HubSpot contact database. Point it at a segment of contacts with missing, hard-bounced, or role-based addresses (info@, sales@), and it resolves each contact through the MoltSets email waterfall, validates the result, dedupes against your existing records, and writes the verified address back to HubSpot with a source and timestamp. Output is a clean before-and-after table plus a fill-rate summary.

Chain

HubSpot contact segment or saved view
  to hubspot/search-crm-objects        (contacts where email is empty, bounced, or role-based)
  to resolve identifier per contact    (LinkedIn URL, or name + company domain)
  to MoltSets waterfall:
      linkedin_to_best_email           (when a LinkedIn URL is on the record)
      search_business_email_by_name    (when only name + company domain exist)
  to validate + dedupe against existing contacts
  to hubspot/update-object             (write verified email, enrichment source + date)

Inputs

  • HubSpot segment - which contacts to target (missing email, hard-bounced, or role-based addresses)
  • Email type - business only, or best available (business with a personal fallback)
  • Overwrite policy - fill blanks only, or also replace invalid and bounced addresses
  • Write-back fields - the email property plus optional enrichment source and date properties

How it works

  1. Pulls the target contacts from HubSpot using your filter (missing, bounced, or role-based email)
  2. For each contact, picks the strongest identifier already on the record: a LinkedIn URL if present, otherwise name plus company domain
  3. Runs the MoltSets waterfall: linkedin_to_best_email for records with a LinkedIn URL, search_business_email_by_name for records with only a name and domain
  4. Where email type matters, uses linkedin_to_business_email to force a work address with no personal fallback
  5. Dedupes each found address against your existing contacts so you do not create conflicts
  6. Writes the verified email back to HubSpot, stamping an enrichment source and date for auditing

Output

Name Company Existing Email Found Email Type Source Tool Action
Contacts scanned:         X
Missing/invalid emails:   X
Emails found:             X/N (XX%)
Written back to HubSpot:  X
MoltSets tokens used:     X

Tips

  • Requires the HubSpot remote MCP (mcp.hubspot.com) and the MoltSets MCP connected in the same client
  • MoltSets only charges tokens when data is returned, so misses cost nothing and you do not need to pre-filter
  • Run search_linkedin_profile with count_only: true on a sample first to gauge match rate before scaling up
  • Keep a dry-run step that shows proposed changes before writing, especially when replacing existing addresses
  • Custom objects are not reachable through HubSpot's remote MCP, so write to standard contact properties only
  • Throttle write-back to stay inside HubSpot's limit of 100 requests per 10 seconds on large segments
01 Download the .moltsets skill file below
02 Open Claude and go to Settings to Skills
03 Click Add skill and select the downloaded file
04 Open a new chat in Claude
05 Prompt Claude using one of the example prompts or use your own
// difficultyIntermediate
// connectionHubSpot, Claude Chat
// got a skill of your own? Submit it to the library