Data qualityUnreachable rule

How do I find contacts with no working email or phone?

Why unreachable contacts are different from "low quality" leads

A contact you can't reach isn't a low-quality lead. It's not a lead at all. There's no path forward — no email to send, no phone to call, no LinkedIn to outreach. The record exists in your CRM but represents nothing actionable.

The cleanup question is: how did these get created? Three common sources:

  1. Form fills with required fields ignored. Someone filled out only Name and Company because the form didn't enforce email. Now you have a record with a name and nothing else.
  2. Spreadsheet imports with broken columns. The import mapped a non-email column to email, or the source data simply didn't have contact info.
  3. Test data left in production. test@example.com, noreply@, john@test.com, qa@yourdomain.com. Created during integration setup or QA, never cleaned up.

All three create the same problem: HubSpot's contact count includes them, your marketing seat tier is partly paid for them, and they show up in lists where they shouldn't.

What two cohorts the basic filter catches

Two filter conditions in OR:

  1. All contact channels are blank: Email is unknown AND Phone is unknown AND Mobile phone is unknown.
  2. Email matches a placeholder pattern: matches test@, noreply@, example.com, localhost, qa@, donotreply@.

The second case catches the test-data pollution. The first catches the broken-form-fill case.

Why the count keeps growing even with prevention

The placeholder list is open-ended:

Common test domains. example.com, example.org, test.com, localhost, mailinator.com, tempmail, discard.email, guerrillamail.com, yopmail.com. You'd build the keyword list incrementally as you find new patterns in your data.

Common test locals. test@, qa@, noreply@, donotreply@, placeholder@, dummy@, unknown@. Similar incremental list-building.

Personal email vs. corporate. A contact with firstname.lastname@gmail.com isn't unreachable — they have a real personal email. But many sales teams treat personal-email leads as low-priority because they're often from job-seekers or unauthorized buyers. Whether to flag those depends on your motion.

The deeper friction is that "unreachable" is a category that grows over time even with good prevention:

  • People change jobs → corporate email bounces → contact becomes unreachable.
  • Phone numbers get reassigned → calls go to strangers.
  • Domains shut down → all contacts at that domain become unreachable.

A monthly run of this view, paired with archiving the obvious-trash records and re-enriching the rest via Clearbit / ZoomInfo / similar, keeps the count manageable. Skipping a quarter usually means 5-15% of the contact base is unreachable, polluting every list-export and every email send.

The manual HubSpot recipe

Two saved views (blank-channels + placeholder-emails) plus a prevention workflow. Quarterly enrichment fills in the borderline cases.

HubSpot recipe~5 minutes to set up · two saved views
  1. Open Contacts → Create view (blank channels)Filter: Email is unknown AND Phone number is unknown AND Mobile phone number is unknown. Catches the broken-form-fill / import-missing-columns case.
  2. Save as 'Contacts — no working channel'Pin to your sales-ops dashboard. Most are safe to archive; spot-check before bulk action.
  3. Create second view (placeholder patterns)Filter: Email contains test@ OR contains noreply OR ends with @example.com OR ends with @localhost OR ends with @mailinator.com. Add patterns as you find new ones in your data.
  4. Save as 'Contacts — placeholder email'Pin alongside. These are usually safe to delete (not just archive) since they're test/QA records.
  5. Build the import-validation workflow (prevention)Workflows → Create → Contact-based. Trigger: contact created. Branch: email matches placeholder pattern. Action: tag as qa_placeholder = true, alert sales-ops. Catches the leak before it pollutes the contact base.
  6. Pair with periodic enrichment for the borderline casesPersonal-email-only contacts (firstname.lastname@gmail.com) aren't unreachable — they're just personal. Decide your motion: keep them at low priority, enrich with corporate emails via Clearbit/ZoomInfo, or archive after X months of no engagement.

What Bloated does instead

The Unreachable rule

Unreachable contacts AND a maintained placeholder pattern list across regions.

Bloated maintains the test/noreply/ISP/disposable-domain pattern list across regions and industries so you don't have to discover them in your data one outage at a time. Personal-vs-corporate distinction is kept explicit — Gmail contacts are flagged separately from test data, so cleanup decisions don't lump them together.

Reads: email, phone, mobilephone · HubSpot contact properties
1843contacts
Unreachable contactsField: email, phone, mobilephone · HubSpot contact properties
B
All-channel blank (218 contacts)
Email/phone/mobile all unknownFrom form-fill gaps
Archive
T
Test/QA emails (94 contacts)
test@, noreply@, @example.comIntegration leftovers
Delete
P
Personal-email leads (1,247)
@gmail.com, @yahoo.comPersonal, not unreachable
Enrich or deprioritize
X
Bounced + no phone (284)
Hard-bounced AND no phoneNo fallback channel
Archive after 30d
Run a free scan7 days free · no card · cancel any time