HubSpot's marketing contact pricing is clever. You only pay for contacts you can actually market to. The theory is fair: why pay for people you can't email?
The reality is messier. Contacts accumulate. They bounce. They unsubscribe. They go quiet. But they stay marked as marketing contacts, counting against your tier limit and adding to your bill. Eventually you either hit your limit and get auto-upgraded, or you realize you're paying thousands per month for a database that's 30% garbage.
This guide covers how to identify which marketing contacts aren't earning their keep, how to reduce your count without losing valuable data, and how to prevent the bloat from coming back.
Understanding Marketing Contact Billing
A few things about how this works that matter for cleanup.
Tier Upgrades Are Immediate
When you exceed your marketing contact limit, HubSpot immediately upgrades you to the next tier and starts charging the higher rate. This happens automatically, no approval required.
If you're at 9,800 contacts with a 10,000 limit, one big import could push you over and trigger an upgrade before you even realize what happened.
Downgrades Only Happen at Renewal
Here's the catch. If you reduce your marketing contacts, you don't automatically drop back to a lower tier. You stay at the upgraded tier until your contract renews.
To actually get a lower rate, you need to contact HubSpot at least 5 business days before renewal and request a downgrade. They'll verify your contact count and adjust your next contract accordingly.
This means cleanup has the most value when timed to your renewal cycle. Cleaning up in month 8 of your contract still helps (you avoid further upgrades), but the billing impact doesn't hit until renewal.
Non-Marketing Contacts Are Free
Contacts marked as non-marketing don't count toward your tier. They exist in your CRM, keep their history, and can be used for sales purposes. They just can't receive marketing emails.
This is the escape valve. Contacts who shouldn't receive marketing email anyway (bounced, unsubscribed, disengaged) should be non-marketing. You're not losing them as leads; you're just acknowledging that marketing to them isn't going to work.
Identifying Contacts to Remove
Start by finding marketing contacts who have no business being marketing contacts.
Hard Bounces
Contacts whose emails have hard bounced can't receive email. HubSpot won't send to them anyway. There's zero reason for them to be marketing contacts.
Create a list: Marketing contact status is Marketing contact AND Email hard bounce reason is known.
This is your easy win. These contacts have zero marketing value. Set them all to non-marketing immediately.
Unsubscribed From All Email
Contacts who have unsubscribed from all email communications have opted out. You can't email them without violating their preferences (and potentially regulations). Marketing contact status serves no purpose.
List: Marketing contact status is Marketing contact AND Unsubscribed from all email is true.
No Email Address
This sounds absurd, but it happens. Contacts imported from certain sources or created through integrations might have no email at all. Marketing contacts without emails are paying overhead for nothing.
List: Marketing contact status is Marketing contact AND Email is unknown.
Long-Term Disengaged
Contacts who haven't engaged with your emails in 12+ months are unlikely to start now. They're either ignoring you, filtering you to spam, or no longer using that email address.
List: Marketing contact status is Marketing contact AND Last marketing email open date is more than 12 months ago AND Marketing emails opened is greater than 0.
That last condition (opened > 0) ensures these are contacts who were engaged once and stopped, not contacts who never engaged at all (which is a separate category).
Never Engaged
Contacts who have received multiple marketing emails and never opened any of them. They're either not real addresses, not interested, or your emails are going to spam.
List: Marketing contact status is Marketing contact AND Marketing emails sent is greater than 5 AND Marketing emails opened is 0.
Be slightly more conservative here than with hard bounces. Some of these might be real contacts who just don't engage with email but could convert through other channels.
Spam and Garbage
Every database has them. Fake form submissions, test entries, competitors who signed up to see your content. Look for patterns:
- Names that are obviously fake ("Test User," "asdf asdf")
- Email addresses from disposable email services
- Contacts from blocked countries (if you only do business in certain regions)
- Email addresses with your own domain (employees who shouldn't be marketing contacts)
These should be deleted, not just moved to non-marketing. They have no value.
Taking Action
Once you've identified contacts to remove, you have two options.
Setting Contacts as Non-Marketing
This keeps the contact record but removes them from your billable count. The contact remains in your CRM, keeps all history, and can still be used for sales purposes. They just can't receive marketing emails.
How to do it manually:
- Go to your list of contacts to downgrade
- Select all contacts (or filter/select specific ones)
- Click "More" > "Set marketing status"
- Choose "Set as non-marketing"
For ongoing maintenance, set up a workflow that automatically sets contacts to non-marketing when they meet your criteria (hard bounce, unsubscribe, etc.).
Deleting Contacts
For truly worthless contacts (spam, garbage data, duplicates), deletion is cleaner. It removes the record entirely.
How to do it:
- Go to your list of contacts to delete
- Select all contacts
- Click "More" > "Delete"
- Confirm deletion
Deleted contacts go to a recycle bin for 90 days before permanent deletion. You can restore them during that window if you make a mistake.
Default to non-marketing for contacts who might have future value (valid phone numbers, deal history, company associations). Delete only contacts that are clearly garbage. You can always delete a non-marketing contact later, but you can't un-delete a deleted contact after 90 days.
Preventing Future Bloat
Cleanup is satisfying. Watching the numbers climb back up is not.
Default to Non-Marketing
HubSpot lets you set the default marketing status for new contacts created through forms, imports, and integrations. Consider defaulting to non-marketing.
This feels counterintuitive. Don't you want new leads to be marketing contacts?
Maybe. But consider: a form submission doesn't mean someone wants marketing emails. A contact imported from an event list might be low quality. A contact created by a sales tool might be a research prospect, not a marketing target.
If you default to non-marketing, you can use workflows to upgrade contacts to marketing when they actually demonstrate marketing fit:
- Submitted a form requesting content or demo
- Meets your ICP criteria (right industry, company size, etc.)
- Has engaged with content (visited pricing page, downloaded resources)
This approach means you only pay for contacts you've deliberately decided to market to, not everyone who happens to enter your system.
Automated Downgrade Workflows
Set up workflows that automatically move contacts to non-marketing when they meet disqualification criteria:
Hard bounce workflow: When Email hard bounce reason becomes known, set marketing status to non-marketing.
Unsubscribe workflow: When Unsubscribed from all email becomes true, set marketing status to non-marketing.
Disengagement workflow: When contact hasn't opened any email in 12 months AND they previously had engagement, set marketing status to non-marketing (or trigger a re-engagement campaign first, then downgrade if they don't respond).
Import Hygiene
Imports are a major source of bloat. Establish rules:
- Validate email lists before importing
- Import as non-marketing by default, then upgrade qualifying contacts
- Deduplicate import files before uploading
- Review import source quality: are purchased lists worth the tier upgrade they might trigger?
Monthly Review
Check your marketing contact count monthly. Go to Settings > Account & Billing > Usage & Limits. Look at:
- Current count vs. tier limit
- Trend over time (climbing? stable?)
- Spikes that correlate with imports or campaigns
If you're within 10% of your tier limit, proactive cleanup can prevent an automatic upgrade.
Timing Your Cleanup
When you clean matters almost as much as what you clean.
Before Your Renewal
If you want cleanup to affect your next contract's pricing, do it at least a week before renewal. Contact HubSpot support to request a tier downgrade based on your reduced contact count. They'll verify and adjust your next contract.
After an Import
Large imports often include bad data that should be cleaned immediately. Validate imports before uploading, but also review within the first week for issues that slip through.
When Approaching Tier Limit
If you're within 10-15% of your limit, cleanup now can prevent an automatic upgrade. This is especially important if your next tier is significantly more expensive.
Quarterly Maintenance
Even if you're not near a limit or renewal, quarterly cleanup prevents problems from compounding. The longer bad contacts sit in your system, the more they mix with good data and become harder to identify.
The ROI of Cleanup
How much can you actually save?
HubSpot's pricing varies, but marketing contact tiers have significant jumps. The difference between 10,000 and 20,000 contacts, for example, can be hundreds of dollars per month.
If 15% of your marketing contacts are garbage (a conservative estimate for most databases), and you're paying $1,000/month for your tier, you're effectively wasting $150/month on worthless contacts.
But the bigger value is preventing tier upgrades. If cleaning 5,000 contacts keeps you from jumping to the next tier, you might save $500+/month until the next renewal. Over a year, that's $6,000.
The math usually works out in favor of cleanup, especially if you're close to a tier boundary.
Common Questions
If I reduce marketing contacts, will HubSpot automatically lower my bill?
Not mid-contract. Reductions only affect billing at renewal. Contact HubSpot at least 5 business days before renewal to request a downgrade based on your reduced count.
What's the difference between non-marketing and deleting?
Non-marketing contacts stay in your CRM with history preserved. They just don't count toward billing and can't receive marketing emails. Deletion removes them entirely. Use non-marketing for contacts with potential value; delete truly worthless records.
Can I re-engage contacts I've set as non-marketing?
Yes. You can convert non-marketing contacts back to marketing anytime. Useful for win-back campaigns. Note that this will count toward your limit and could trigger a tier upgrade.
How do I prevent bloat in the first place?
Default new contacts to non-marketing, then use workflows to upgrade based on engagement or qualification. Validate imports. Set up automated workflows to downgrade bounces and unsubscribes. Review counts monthly.
Paying for contacts who will never convert?
Audit My ContactsRelated: How to Clean HubSpot Data | Email Validation in HubSpot | Data Cleaning Services