All posts

Cleaning Bounced and Invalid Contacts in HubSpot, Step by Step

··7 min read

HubSpot already stops marketing email to contacts that hard bounce, so cleaning is less about suppression and more about three decisions: which bounces are dead addresses and which are blocked messages, whether to delete or set contacts as non-marketing, and how to stop new invalid addresses entering the CRM. HubSpot cannot catch an invalid address until you send to it.

The details below come from HubSpot's knowledge base as of 1 October 2026.

What HubSpot does automatically

HubSpot suppresses hard bounces for marketing email, retries pending bounces, and shares global bounces across accounts. Its bounce types article defines four states:

Type What HubSpot does
Hard bounce Excludes the contact from future marketing emails
Soft bounce Contact stays "eligible to receive future emails"
Pending bounce Keeps retrying "for up to 72 hours", then it becomes a soft bounce
Global bounce "A hard bounce across three or more HubSpot accounts for a permanent reason", dropped from future emails across all HubSpot accounts

Three details change how you should clean:

  • Bounces attach to the address, not the person. HubSpot's guide to sending to bounced contacts says that "a contact whose email address is updated will no longer be treated as a bounced contact." Correcting a typo genuinely restores the contact.
  • HubSpot cannot pre-empt a bad address. The same page says that unless an address has globally bounced, "HubSpot will not automatically drop emails sent to an invalid email address that hasn't previously bounced in your account." Every invalid address in a new import costs you one bounce before HubSpot knows.
  • Global bounces hide from your segments. HubSpot's deletion guide notes that contacts "who have globally bounced ... will not appear in segments or filters of hard bounced contacts." A segment of hard bounces will undercount what is actually unreachable.

One-to-one and sequence emails are different. They go through your connected inbox, so HubSpot shows less detail and you receive the full bounce message in your own mailbox. HubSpot says it "aims to detect" these bounces but some "don't provide enough information", and "bounces for emails sent outside of HubSpot will not be detected".

The six hard bounce reasons, and what each one means for you

The bounce reason tells you whether the address is dead or your email was blocked. These need opposite responses, which is why "delete all bounces" is the wrong default. HubSpot records the reason in the Email hard bounce reason property.

Reason HubSpot's description Is the person reachable? What to do
Unknown user "This email address is invalid" No Remove or set non-marketing
Mailbox full "An inbox that is inactive or has exceeded its storage quota for a long time" Probably not Remove or set non-marketing
Content "Something in the email body or subject triggered spam filters" Usually yes Keep; fix content; ask for an allowlist entry, then unbounce
Spam Content or sender reputation flagged it as spam Usually yes Keep; fix reputation and content
Policy Failed a security policy, including "DMARC; DKIM, and SPF authentication failures" Usually yes Keep; check your own authentication first
Other Includes global bounces, or responses "not specific enough to categorize" Unknown Read the bounce detail before deciding

If Policy bounces are frequent across many companies, the problem is likely on your side rather than theirs. Check your sending domain with the SPF checker and DMARC checker before touching the contacts. Smartlead's documentation calls this kind of failure a "sender bounce", and the distinction is the same: the recipient may be perfectly valid.

Step 1: Build a segment per bounce reason

Split hard bounces by reason so you can treat dead addresses and blocked messages differently. HubSpot's deletion guide gives two routes.

From the email tool:

  1. Go to Marketing > Email.
  2. Click Email tools, then Create segment of hard-bounced contacts.
  3. Choose the hard bounce reasons to include (all are selected by default) and a rolling timeframe.

From segments, for more control:

  1. Go to CRM > Segments and create a contact segment.
  2. Add the filter Email hard bounce reason, then is any of, and pick the reasons.
  3. Save it as an active segment.

Build two: Unknown user + Mailbox full (dead) and Content + Spam + Policy (blocked). Treat Other case by case.

A detail that catches people out: the email-tool segment uses a rolling timeframe. HubSpot's example is a segment created on 1 November for 24 to 31 October, which on 2 November covers 25 October to 1 November. If you want a fixed snapshot to work through, convert it to a static segment.

Step 2: Set dead contacts as non-marketing, or delete them

For dead addresses, setting contacts as non-marketing removes the cost and keeps the history. HubSpot's non-marketing guide states that "non-marketing contacts don't count toward your marketing contact tier, and you aren't billed for them." In HubSpot's own flow for reviewing contacts, bounced and unsubscribed groups are displayed by default as candidates.

Two caveats from that same page:

  • Removing marketing contacts frees capacity, but "your contact tier will not be automatically downgraded". You stay on the higher tier until renewal.
  • Non-marketing contacts can still be emailed one-to-one by sales, so make sure the team knows these addresses are dead.

Deleting is cleaner for a CRM that should only hold reachable people, and HubSpot documents how to bulk-delete a segment. We lean towards non-marketing for dead addresses because the record keeps its bounce history and deal context. HubSpot's documentation does not say what happens if a deleted contact's address is later imported again, so keeping the record is the cautious choice.

Do not delete the blocked segment. Those are often real people at organisations with strict filters.

Step 3: Unbounce only the contacts you can prove are valid

Unbouncing restores marketing email to a contact, and HubSpot deliberately limits it. Its unbounce requirements ask that before unbouncing you:

  • send marketing email from a connected email sending domain (not available on HubSpot's free tools);
  • have "received an email from the bounced email address confirming that the email address is valid and they want to receive marketing emails from you";
  • have resolved whatever on the recipient's server caused the bounce.

You must go through HubSpot Support if you have unbounced "more than 1,000 contacts or more than 2% of the total contacts in your account this month", if the contact was unbounced before, or if it is a global bounce.

The practical route for a blocked contact: ask them to have their IT team allowlist your sending IP addresses, wait for confirmation from their address, then use the "Contact has bounced" alert on their record to unbounce.

Step 4: Stop invalid addresses getting in

Every invalid address costs you one real bounce before HubSpot can suppress it, so the cheapest fix is before import. Imports from events, purchased-in-the-past lists, old spreadsheets and integrations are the usual sources.

For each new file:

  1. Clean and deduplicate it, so variants of one address with different capitalisation or stray spaces do not arrive as separate contacts; our Excel guide shows the formulas.
  2. Verify it before import. Import valid results as marketing contacts. Leave invalid out.
  3. Import risky results (catch-all domains, servers that would not confirm a mailbox) as a separate, labelled segment, or as non-marketing until they show engagement. See should you email catch-all addresses for how to decide.

For forms, HubSpot holds whatever people type. A typo such as gmial.com becomes a hard bounce on the first send. Double opt-in, or real-time verification on the form, catches these at the door.

Step 5: Check sales emails separately

Bounces from sequences and one-to-one emails reach the rep's inbox, not a dashboard, so they are easy to miss. Because they are sent from connected inboxes, they also land on your own domain's reputation directly. Ask reps to forward or log bounce messages, and periodically verify the contacts enrolled in active sequences, especially lists that came from a prospecting tool.

How this fits with bounce rate

Hard bounces from marketing email are suppressed, but the damage happens on the send that produced them. HubSpot does not publish a single bounce-rate threshold in the articles above, and receiving providers do not publish theirs either. The safe working rule is to keep the share of unknown-user bounces in any send close to zero, which only happens when addresses are checked before they are mailed. Our post on bounce rate limits by platform collects the figures vendors do publish.

The takeaway

Do not treat every HubSpot bounce the same. Split hard bounces by the Email hard bounce reason property: set Unknown user and Mailbox full contacts as non-marketing (or delete them), keep Content, Spam and Policy contacts while you fix your sending, and remember global bounces will not show up in those segments. Then move the effort upstream, because HubSpot only learns an address is bad after it has bounced on your domain.

To check individual addresses before they go into the CRM, the free email verifier runs the same syntax, MX and SMTP checks as a full list upload.

Common questions

Does HubSpot stop sending to bounced contacts automatically?

Yes, for marketing email. After a hard bounce HubSpot drops the contact from future marketing emails, and an address that hard bounces in three or more HubSpot accounts becomes a global bounce, dropped across all accounts. Soft-bounced contacts stay eligible for future emails.

Should I delete hard-bounced contacts in HubSpot?

It depends on the bounce reason. Unknown user bounces are dead addresses and safe to remove or set as non-marketing. Content, Spam and Policy bounces often hit valid people whose security filter blocked you, so deleting them throws away good contacts.

How many contacts can I unbounce in HubSpot?

HubSpot requires you to contact its support team if you have unbounced more than 1,000 contacts or more than 2% of the contacts in your account that month, if the contact was unbounced before, or if it is a global bounce.

Do bounced contacts cost money in HubSpot?

They can if they are still marketing contacts. HubSpot bills on marketing contacts, and contacts set as non-marketing do not count toward your tier. HubSpot's own setup flow pre-selects bounced and unsubscribed contacts as candidates to set as non-marketing.

Verify unlimited addresses for $29.99/month

Real SMTP mailbox checks. No credits, no per-email fees.

Get Started