Agency & White-Label Services
HubSpot Contact Audit: An Agency's Delivery Playbook
How agencies run a HubSpot contact audit for clients — bounces, non-marketing contacts, billing bloat — the audit that found 24.1% hard bounces.

Key Takeaways
- Fake and gibberish contacts like asdf@asdf.com pad an inherited portal's count for nothing and should be deleted outright since there is no relationship to preserve.
- Hard bounces can be a striking share of a database — one audit found 24.1% of a client's contacts were permanently undeliverable — and should be deleted unless a phone number allows direct outreach to update details.
- A newsletter list can look healthy at 8,000 contacts while fewer than 2,600 actually receive a send, because non-marketing status, bounces, and low-engagement flags suppress delivery invisibly.
- Inactive contacts pile up fast: one client audit found 84.8% of contacts inactive, leading to a recommendation to archive 66,436 records.
- Packaging the audit as a fixed, repeatable engagement lets an agency scope and price it as a billable front door to a larger hygiene retainer.
A HubSpot contact audit is a systematic pass through a client's database to find and act on the records that quietly hurt deliverability, inflate billing, and distort reporting. For an agency, it is also one of the cleanest services to package: the work is repeatable, the findings are concrete, and the cleanup plan almost always opens the door to a larger retainer. This is the workflow we run when we audit a client's contacts under a partner agency's brand.
What an agency contact audit actually delivers
A good contact audit delivers a prioritized, evidence-backed cleanup plan — not a vague "your data is messy" verdict. You hand the client a list of the exact record segments to delete, archive, re-permission, or protect, ranked by the impact each has on their sends, their reporting, and their bill.
We treat this as the front door of a white-label engagement: audit first, findings and recommendations delivered before any build work starts. For an agency reselling the audit, that sequencing matters: it scopes the real project accurately and gives you something billable to show before you commit delivery hours. Underprice the audit and you inherit every surprise inside the portal at your own expense.
Start by scrubbing invalid and fake contacts
The fastest wins are the records that were never real. Gibberish submissions — asdf@asdf.com, obvious throwaway names, and creative nonsense from people who did not want to hand over their details — sit in nearly every inherited portal and pad the client's contact count for nothing.
A few targeted searches on the email and name properties will surface most of these in minutes. Delete them outright; there is no relationship to preserve and no downside to removing a contact who never existed. Document how many you removed — that number becomes the first line of your audit report and an easy proof point for the client.
Separate real bounces from stale ones
Bounces are the highest-value segment in the audit, so treat hard and soft bounces differently. Hard bounces are permanent — the address does not exist and never will — while soft bounces are temporary (a full mailbox, a server that could not connect, a message too large). Hard bounces should almost always go; soft bounces need judgment.
The scale of this is easy to underestimate. In one client's portal we found that 24.1% of the entire database consisted of hard bounces — a quarter of their contacts silently undeliverable while still counting against every report and every send. Our recommendation in cases like that is immediate deletion, with one exception: if a phone number exists on the record, keep it and route the contact to sales or ops for direct outreach to update their details.
Do not blanket-delete every marketing bounce, though. A contact can bounce a marketing email and still be an active client receiving transactional or one-to-one communication. Check the creation date and the date of last activity to tell a genuinely stale contact from one that is merely bouncing on one channel.
Audit list membership and non-marketing status
The most damaging list problems are invisible on the surface, which is why they belong in every audit. A client's newsletter list can look healthy at 8,000 contacts while fewer than 2,600 actually receive a send — the rest suppressed by non-marketing contact status, hard bounces, and low-engagement flags in HubSpot. The client sees a big list and assumes reach; the actual delivery tells a different story.
So audit two things at once. First, list logic: check your client's most-used active lists against each other and confirm contacts are enrolling as expected, which also reveals which contact properties the lists depend on and where the data-collection process has gaps. Second, marketing-contact status: reconcile how many records are set as marketing versus non-marketing, because that single flag governs who can actually be emailed. The stakes go beyond hygiene: segmented campaigns drive 30% more opens and 50% more clickthroughs than unsegmented ones (HubSpot, 2023), so fixing list logic is also a performance fix, not just a cleanup task. Presenting the "list size versus true deliverable audience" gap is one of the most persuasive findings you can put in front of a client.
Judge last activity against the client's sales cycle
Old contacts are candidates for removal, but "old" only means something relative to the client's sales cycle. HubSpot records last activity — email opens, page views, form fills — and a record dark for years is a strong archive or delete candidate. A short B2C cycle makes six months of silence significant; a long enterprise cycle with multiple contacts per account does not.
The volume of dead weight is usually staggering. In one client audit we found 84.8% of contacts were inactive and recommended segmenting and archiving 66,436 records to restore the portal's hygiene. Archiving rather than hard-deleting is often the right first move for a client who is nervous about losing history — it pulls the records out of reporting and marketing scope without destroying them.
Flag nameless and unknown contacts
Contacts with no first or last name are a data-collection symptom worth surfacing, not just a cleanup item. These are the records that receive the default "Hi there," personalization token because their names were never captured — usually because a form did not require them or a low-quality list was imported without vetting.
Removing them is easy; fixing the cause is where the retainer lives. An email with no name should prompt the question of how that contact entered the CRM in the first place, and the answer points at a form, an import, or an integration your agency can tighten. That upstream fix is a follow-on engagement the audit justifies.
Score the survivors against the client's KPIs
Once the obvious junk is gone, rank what remains by the client's own success signals. If the portal is set up properly, the contact record already captures the indicators that matter: list membership, lifecycle stage, lead status, and lead score. Filter out everyone who clearly hits those KPIs and study who is left — that remaining pool is where your best deletion and re-engagement candidates hide.
Expect the definitions themselves to be messy. The audit phase alone routinely surfaces three different meanings of "lead" living inside the same organization, and reconciling them is often more valuable than the record cleanup. That reconciliation work is worth the effort: 78% of salespeople already consider their CRM effective for sales-and-marketing alignment (HubSpot, 2025) — but that only holds when both sides agree on what a "lead" actually is. Left unexamined, that ambiguity is why teams trust reports whose underlying logic no one has ever checked.
Package the audit as a repeatable, billable service
For an agency, the real return is turning this checklist into a productized offer rather than one-off cleanup labor. The steps above are the same in every portal, which means you can scope, price, and deliver a contact audit as a fixed engagement and lead with it before any bigger build — moving a prospect from a pay-per-task cleanup toward an ongoing hygiene retainer.
Two arguments make the sale for you:
- Billing. HubSpot charges at marketing-contact thresholds, and in our experience once a client crosses one they rarely get it reduced. That makes routine list pruning a direct, recurring cost-saving measure — a line item you can defend on an invoice, not just a nice-to-have.
- Trust. A client who has watched you find 24% undeliverable contacts and 66,000 dead records will believe you about the harder work waiting underneath.
You do not have to build this capability in-house to sell it. Partnering with a white-label HubSpot provider lets you offer CRM cleanups, portal audits, and advanced integrations under your own brand without training a team on HubSpot's data model. Whether you run the audit yourself or resell ours, the same playbook applies — see our guides to conducting a comprehensive agency HubSpot audit and merging duplicate contacts in HubSpot for the two workflows that most often follow a contact audit, and our overview of expert HubSpot portal audits for the wider engagement it opens up.
Sources
Frequently Asked Questions
What is a HubSpot contact audit?
A HubSpot contact audit is a systematic review of a client's database to find records that hurt deliverability, inflate billing, and distort reporting — invalid contacts, hard and soft bounces, suppressed list members, inactive records, and missing-name contacts — then act on each segment with a prioritized cleanup plan.
How do you find bad contacts in a HubSpot database?
Finding bad contacts in a HubSpot database starts with searching email and name properties for gibberish or throwaway entries, then splitting bounces by type: hard bounces are permanent and should be deleted, while soft bounces need a check against last activity first, since one audit found 24.1% of a database was hard bounces alone.
Why does a HubSpot list look bigger than the number of contacts it actually reaches?
A HubSpot list looks bigger than its real reach because non-marketing contact status, hard bounces, and low-engagement flags silently suppress sends — in one case a client's 8,000-contact newsletter list delivered to fewer than 2,600 people, even though the list itself appeared healthy.
How do inactive contacts affect a HubSpot bill?
Inactive contacts affect a HubSpot bill because HubSpot charges at marketing-contact thresholds, and once a client crosses one they rarely get it reduced, so routine pruning of stale, unengaged records is a direct, recurring cost-saving step — in one audit, 84.8% of contacts were found inactive.
Can an agency turn a contact audit into a recurring service?
An agency can turn a contact audit into a recurring service because the checklist is nearly identical across portals, so it can be scoped, priced, and delivered as a fixed engagement that leads into a larger retainer, moving a client from one-off cleanup toward ongoing hygiene work.
HubSpot Portal Audits
What's Hiding in Your Clients' Portals?
A meticulous white-label audit turns messy portals into a prioritized roadmap — and into your next retainer conversation.
Related Articles

White-Label HubSpot Development for Agencies
How agencies deliver white-label HubSpot development under their own brand and say yes to every build — 11,800+ projects, zero confidentiality breaches.

