Missing email address
These contacts can never receive marketing communications. They're invisible to every campaign you run.
Tool Story
Find out what’s actually wrong with your HubSpot data.
See it
Try HubSpot Health Check — FreeThe problem
Most HubSpot portals are quietly broken and nobody knows it.
Not broken like the tool doesn’t work. Broken like contacts with no email address enrolled in email campaigns. Personalization tokens pulling blank because first name was never captured. Leads created 90 days ago that nobody ever touched because they fell through a gap in the lifecycle stage setup. Revenue attributed to “Unknown” because lead source was never set.
HubSpot’s native data quality tools exist — but they’re locked behind Operations Hub Professional, which starts at $720 a month. Most small and mid-size teams don’t have it. So the data sits there, quietly wrong, breaking automations and reports and attribution that nobody can explain.
I’ve spent 15+ years cleaning up messes that could have been caught in 10 minutes if someone had just looked.
So I built the tool I always wanted.
How to think about this problem
Most data-quality problems do not happen because one person made a terrible decision.
They happen because nobody owns the whole system.
Marketing owns the form. Sales owns the follow-up. Operations owns the CRM. Leadership owns the number.
Someone adds a field. Someone else builds a workflow. A third person changes a lifecycle rule. Six months later, nobody remembers why the property exists, but five reports and three automations depend on it.
That is how CRM data gets quietly wrong.
Not all at once. One tiny miss at a time.
A blank lead source here. A missing lifecycle stage there. A duplicate contact enrolling twice. A stale lead nobody followed up with.
Each issue feels small enough to ignore. Together, they become the reason nobody trusts the reporting.
That is why I always audit before I automate.
Bad data does not get better because you built a prettier workflow on top of it.
What it does
Nine checks. One score. A downloadable list of every problem record so you can actually fix it.
Paste your HubSpot private API key. Hit run. In minutes you’ll know exactly where your data is broken and why it matters.
The nine checks
These contacts can never receive marketing communications. They're invisible to every campaign you run.
Your personalization tokens will break or show as blank. “Hi there” is not the impression you want to make.
Breaks company-level reporting and account-based workflows. These contacts exist in a vacuum.
Your funnel reporting is missing these people entirely. You can't fix what you can't see.
You can't attribute revenue to campaigns without this. Every exec asking “what's working?” deserves a real answer.
These contacts are competing in your automations and inflating your counts. One person. Two records. Twice the chaos.
Dead weight inflating your contact tier and your bill. HubSpot charges by marketing contacts. These aren't earning their keep.
Leads that fell through the cracks before you even knew they existed. These are the ones that haunt you.
Breaks SMS workflows and call integrations. “+1 (555) 867-5309” and “5558675309” are the same number. Your automations don't know that.
Why it’s helpful
You get a health score out of 100, a dashboard showing exactly what’s wrong, and a downloadable CSV for every problem category so you can take action immediately.
No subscription. No sales call. No 14-day trial with a credit card. Just answers.
When I would not use this
If HubSpot is not your system of record, do not blindly fix everything this tool flags.
Some "problems" may be expected.
For example, if Salesforce owns Lead Source, an empty HubSpot value may not mean HubSpot is broken. It may mean the field is owned somewhere else.
The tool shows you what is happening.
Your job is to decide what matters.
This tool asks for your HubSpot API key. That’s a big ask and I don’t take it lightly.
Your key is used once, per request, through a stateless proxy that logs nothing. Your contact data is assembled in your browser and never stored in a database. When you close the tab it’s gone.
I built this the way I’d want a tool built if I were handing over access to my own CRM.
Under the hood
Next.js 14, HubSpot Contacts API v3, stateless server proxy, deployed on Railway. Client-driven pagination. Property validation before each run so it works gracefully on any portal configuration.
See it
Try HubSpot Health Check — FreeFrequently asked questions
Nine things: contacts missing an email address, missing first or last name, no associated company, unset lifecycle stage, unset lead source, duplicate emails, no activity in 90+ days, created 90+ days ago but never contacted, and inconsistent phone formatting.
Yes, but read the results with that in mind. If HubSpot isn't your system of record, some flags like unset lead source may be expected rather than problems. The tool shows you what exists; what matters is your call.
No. It's read-only. It identifies issues and gives you a downloadable CSV, but you make the fixes in HubSpot yourself.
Related