Most of what follows isn't a cleanup. It's a list of things your system was quietly telling you that weren't true — and the mechanics we changed so it stops drifting away from what you think it's doing.
Six assumptions your portal was operating on. None of them were unreasonable — all of them had stopped being true.
"We're marketing to about 24,300 people."
1,140 of them had hard-bounced or unsubscribed and were still flagged as marketing contacts. Undeliverable, uncontactable, and counting toward your Marketing Contacts bill every month.
Retired all 1,140 to non-marketing after your sign-off.
And it won't come back: the off-ramp workflow now retires a contact the day it bounces or unsubscribes. This number cannot silently rebuild."Inbound leads get followed up."
267 inbound leads from the last six months had never received a single marketing email. They arrived, sat outside marketing status, and aged quietly. Nobody knew, because nothing reports on a contact that doesn't get emailed.
Moved them into marketing status and activated them via campaign.
And it won't come back: the on-ramp workflow places new qualifying contacts on the right status and subscriptions on arrival. Nobody has to remember."We have subscription types set up."
You had 19, most created for individual campaigns. Consent had become unreadable — neither your team nor the recipient could tell what someone had actually agreed to receive, and the preference centre was unusable.
Five primary streams mapped to content you genuinely publish. The 19 legacy types were flagged for your archival decision and not deleted — consent history lives on them.
And it won't come back: types are tied to content streams rather than campaigns, so a new campaign no longer creates a new type."Vendors and test records are excluded from sends."
They were excluded per campaign — which means exclusion depended on whoever built the list remembering. They leaked back in every time someone was in a hurry.
Suppressed structurally at the status and segment level rather than at send time.
And it won't come back: exclusion no longer depends on anyone's memory. A rushed list build can't reach them."Our segments are ready to send to."
The segments were fine. The base underneath them wasn't — a send would have gone to 3,880 unverified addresses and taken your deliverability down with it, affecting every future send to everyone else.
Verified the risky cohorts and sequenced the cleanup before the first send, rather than discovering it afterwards.
And it won't come back: the automations keep the base clean continuously, so "is this list safe to send to" stops being a question you have to ask."Marketing status is how we segment."
Marketing status was doing two jobs at once — may we email this person at all and which audience are they in. That conflation is the mechanic behind almost every accidental send in HubSpot, and it degrades silently as more people build lists on top of it.
Separated them. Status is now purely an eligibility gate; segments answer audience and carry no eligibility logic of their own.
And it won't come back: the two can't be conflated by accident any more — the structure makes the mistake unavailable rather than discouraged.Your base was audited into six named lists, each with a count and a recommended action. You reviewed and signed off before any contact moved.
| # | Cohort | Count | Action |
|---|---|---|---|
| 1 | Hard-bounced or unsubscribed, still flagged as marketing | 1,140 | Retired to non-marketing |
| 2 | Clean enough to email immediately | 94 | Activated into sends |
| 3 | Risky cohort requiring verification | 3,880 | Verified before any contact |
| 4 | Inbound leads, last 6 months, never emailed | 267 | Activated via campaign |
| 5 | Inbound leads 6+ months old, no email in 6+ months | 2,940 | Held for staged re-engagement |
| 6 | Stale marketing contacts | 512 | Retired to non-marketing |
2,940 contacts with no contact in six months is not a list you send to in one blast — it tanks deliverability and can trip spam filters for everyone else on your domain. They're verified and waiting for a staged re-engagement in three tranches, warming volume gradually. Worth considering an alternate channel first.
Before any of the above holds, everything that writes to a subscription type or to marketing status has to agree with it. Fourteen workflows did. Here is every one, and who owns it now.
Where a workflow of yours conflicts with the new model, we did not stop and we did not leave a gap. We built the replacement, left it drafted and turned off, and handed it over. The day you retire the conflicting workflow, you switch ours on and it works — no return visit, no re-scope, no second invoice. The three below are in that state right now.
| Workflow | Also writes to | Owner | Status |
|---|---|---|---|
| Off-ramp — bounce or unsubscribe retires the contact | — | Us | Rebuilt · live |
| On-ramp — qualifying contacts get status and streams on arrival | — | Us | Rebuilt · live |
| Preference-centre sync | — | Us | Rebuilt · live |
| Vendor and test-record suppression | — | Us | Rebuilt · live |
| Legacy type assignment ×5 — one per retired campaign type | — | Us | Retired · replaced by streams |
| MQL scoring & routing | Lead score, contact owner | You | Ours drafted, off. Theirs re-sets marketing status nightly and will undo the off-ramp. |
| Lifecycle stage promotion | Lifecycle stage | You | Ours drafted, off. Theirs subscribes on promotion, bypassing consent. |
| CRM sync — contact tier | An external system | You | Ours drafted, off. Marketing status is being set from outside HubSpot. |
| Event registration follow-up | Event object | You | Points at a retired type. Retire or repoint. |
| Webinar no-show nurture | Event object | You | Points at a retired type. Retire or repoint. |
The five in the lower block are yours because they reach outside subscriptions and marketing status — into scoring, routing, lifecycle and an external system. Rebuilding those would mean changing systems you did not hire us to touch, and doing it without your sales and ops teams in the room. So we scoped them, wrote the replacement where one was needed, and stopped there.
| Artifact | What it does |
|---|---|
| 5 subscription types | Industry News & Insight · Northwind Product Updates · One-to-One Messages · Customer Service · Partner Network |
| Auto-subscription workflow | The on-ramp — new qualifying contacts onto correct status and subscriptions, automatically |
| Auto non-marketing workflow | The off-ramp — bounces, unsubscribes and long-inactive contacts retired automatically |
| Six cleanup lists | Named, counted, with the executed action recorded against each for your audit trail |
| Email Marketing segment folder | Governed audience tree, below |