Why closed-lost contacts are worth re-engaging, not archiving
A closed-lost deal is a contact who already raised their hand once. They had budget (or didn't, but considered it). They had a need. They went through the qualification. Then something didn't work — wrong timing, wrong price, wrong feature, internal blocker, competitor won.
That entire investment of attention doesn't disappear when the deal closes lost. The contact still exists. The need that drove the original conversation often persists. Six to eighteen months later, a meaningful slice of closed-lost contacts re-enter the market — different role, different budget cycle, different priorities. The team that has them in nurture catches that re-emergence; the team that lets them rot doesn't.
The data hygiene angle: a contact with three closed-lost deals and nothing else, sitting at lifecycle stage Opportunity from the original qualification, is a stale record. They're not really an opportunity anymore. But resetting their lifecycle stage backward corrupts conversion reporting (per HubSpot's docs). The clean fix is a parallel re_engagement_status property that tracks operational state without touching lifecycle.
What three filter conditions actually catch
Three filter conditions:
- Has at least one associated deal. Contacts with no deal history aren't lost-only — they're just contacts.
- Zero associated open deals. No active opportunity to interfere with.
- Zero associated closed-won deals. Not currently a customer.
The intersection: contacts whose entire deal history is closed-lost. These are the re-engagement queue.
Why the rollup filters require Operations Hub Pro+
HubSpot doesn't natively expose "Number of associated deals where stage = X" as a filter. You can filter on Number of associated deals (total), but slicing that by deal stage requires a calculation property — Operations Hub Pro+ tier. Below that tier, you're exporting contacts + their deal associations to a spreadsheet, joining manually, and filtering there.
The other friction layer: closed-lost reason matters for the re-engagement message. A contact lost to "Price" should hear about new packaging or a bundle discount. A contact lost to "Competitor" should hear after the competitor's renewal cycle, not before. A contact lost to "No Decision Made" might re-engage best when a new champion appears at the company. Native HubSpot doesn't auto-segment by close-lost reason — you build that taxonomy yourself.
The deeper question: when does a contact "expire"? GDPR doesn't set a hard limit, but in practice, sending nurture to contacts who were closed-lost 4+ years ago tanks engagement and risks deliverability. A periodic archival pass (lost > 36 months ago, no engagement since) keeps the queue genuinely actionable.
The manual HubSpot recipe
Three filter rollups (Operations Hub Pro+ required for the cleanest version), one optional auto-enrollment workflow, and a paired periodic archival pass for the long-tail.
- Open Contacts → Create viewNavigate to Contacts → Contacts. Click 'Create view' in the top right.
- Add filter: Number of associated deals > 0Filter by Contact properties →
Number of associated deals→ 'is greater than' → 0. We only care about contacts who have a deal history. - Add filter: Number of associated open deals = 0AND group →
Number of associated open deals→ 'is equal to' → 0. Excludes contacts with active opportunities — those don't need re-engagement, they need closing. - Add filter: Number of associated closed-won deals = 0AND group →
Number of associated closed-won deals→ 'is equal to' → 0. Excludes existing customers — they have a different lifecycle. - Save as 'Re-engagement candidates'Pin to your marketing-ops dashboard. The view is the queue; the action is enrolling them in a nurture sequence.
- Build the auto-enroll workflow (optional)Workflows → Create → Contact-based. Enrollment: same filter as above. Action: enroll in nurture sequence, set custom property
re_engagement_status = active. Re-runs the cohort every Friday so new closed-lost contacts get added.
What Bloated does instead
Lost-only contacts — surfaced as the re-engagement queue, not buried in segmentation.
Bloated identifies contacts whose only deal history is closed-lost AND excludes those already in nurture so the queue stays actionable. Cross-references close-lost reason so 'Price' losses can be re-engaged differently from 'No Decision Made' losses. Pair with the suggested action: enroll in nurture, archive (if 3+ years cold), or escalate to AE for direct re-engagement.
associated deals (stage) · HubSpot contact + deal data