Pillar guide

Dormant customers: how to find and reactivate them

Every HubSpot portal we've reviewed has a population of customers who bought, paid, and then went quiet for reasons that have nothing to do with the relationship ending. Finding them and reopening the conversation is usually the fastest recoverable revenue available — faster than new pipeline and cheaper than a renewal campaign.

15 minute read · written by knovaly

What 'dormant' actually means

The word gets used loosely, which is the first problem. Before building any list or writing any outreach, it's worth separating four populations that all look similar on a pipeline report but need entirely different treatment.

Dormant customers

These are accounts with lifecyclestage set to customer, a populated total_revenue field from at least one closed-won deal, and no activity since. The signal is silence across hs_last_sales_activity_timestamp and notes_last_contacted beyond your dormancy threshold, with no open deal and no support interaction in the same window. They bought once, and nobody has spoken to them since the sale closed.

Dormant relationships (never bought)

Contacts or companies that entered the CRM as leads or opportunities, engaged for a period, and then stalled before ever reaching closed-won. Their lifecyclestage typically sits at marketingqualifiedlead or salesqualifiedlead, there's a deal history but every deal is either closed-lost or was never formally closed, and hs_last_sales_activity_timestamp is old. These are not customers to reactivate — they're prospects to re-qualify, and the message has to reflect that they never transacted.

Lapsed renewals

Customers on a subscription or contract cycle where recent_deal_close_date from the last renewal has passed its expected next-renewal window with no new deal created in dealstage to replace it, and hs_is_closed is true on the last deal with nothing behind it in the pipeline. This is the most urgent of the four categories because the commercial relationship has a natural expiry, and every week past it makes recovery marginally harder.

Churned accounts

Distinct from all three: there's an explicit closed-lost reason, a cancellation record, or a downgrade to zero-value that's been recorded against the account. Churned accounts can still be reactivated, but the starting point is different — you're addressing a stated objection, not silence, and the message has to acknowledge it rather than pretend it didn't happen.

Why dormant revenue is the cheapest revenue in the business

Every revenue leader intuitively knows reactivation is cheaper than acquisition. The useful exercise is putting rough numbers against exactly how much cheaper, because that's what justifies allocating a rep's time to a list of quiet accounts instead of another batch of outbound.

Net-new acquisition vs. reactivation vs. renewal (typical ranges, mid-market B2B)
MotionRelative cost to closeTypical cycle lengthRealistic close rateEffort required
Net-new acquisition1x (baseline)60–120 days15–25% of qualified opportunitiesFull qualification, discovery, proof, procurement
Dormant customer reactivation0.15–0.3x15–35 days20–35% of accounts contacted with a specific reasonResearch the account, one relevant message, light follow-up
Renewal / rebooking recovery0.1–0.2x7–21 days30–50% if caught before the gap widensConfirm terms, remove friction, close

The mechanism behind the gap is straightforward: a dormant customer has already been through procurement, already trusts the product enough to have paid for it once, and already has internal champions who know how to buy from you. None of that has to be rebuilt. The cost that remains is almost entirely the cost of finding the account, working out what changed, and writing one relevant message — which is a research and attention problem, not a demand-generation problem.

This is also why dormant revenue tends to be invisible on a standard pipeline report. It has no open deal, so it doesn't show up in forecast; it has no active campaign membership, so it doesn't show up in marketing attribution; and it isn't flagged as churned, so nobody's retention metric catches it either. It sits between reports, which is precisely why it accumulates.

Segmenting the dormant base into four tiers

Treating every dormant account the same — one list, one email, one send — is the single most common reason reactivation programmes underperform. A £180,000 account that went quiet eight months ago and a £4,000 account that went quiet two years ago need different owners, different channels, and different expected outcomes. Segment on three variables: recency of last activity, historical account value, and depth of prior engagement.

Four-tier dormant segmentation
TierRecencyHistorical valuePrior engagementExpected reply rate range
Tier 1 — high-value recent3–6 months silentTop 20% of account valueMultiple contacts, prior champion identified35–55%
Tier 2 — high-value aged6–18 months silentTop 20% of account valueChampion may have left the account15–30%
Tier 3 — mid-value recent3–9 months silentMiddle 50% of account valueSingle contact, moderate history15–25%
Tier 4 — long-tail18+ months silentBottom 30% of account valueThin or single-touch history5–12%

Those ranges are deliberately wide and should be treated as planning bands, not commitments — actual response depends heavily on category, prior relationship quality, and how well the message references what genuinely changed. Their purpose is to set expectations before the programme starts, so a 9% reply rate on tier 4 isn't mistaken for programme failure when it's actually within the expected band for that tier.

Why tier 1 gets disproportionate attention

Tier 1 accounts are recently silent, meaning the relationship hasn't had time to decay and the contact who bought is often still in role. This is the highest-probability, highest-value segment in the entire dormant base, and it's usually small — often under 10% of the account count but a much larger share of recoverable value. It deserves a named owner, a phone call as well as email, and follow-up within days, not weeks.

Building the HubSpot views for each tier

None of this requires custom development — it's four active lists built on standard and near-standard properties, refreshed automatically as accounts age into or out of each tier.

  1. Base dormant filter. Start every list with lifecyclestage is customer, hs_last_sales_activity_timestamp more than your threshold days ago, and no open deal in dealstage.
  2. Value split. Add a total_revenue filter to separate top-20%, middle-50% and bottom-30% bands — pull the actual percentile cut points from a quick export rather than guessing round numbers.
  3. Recency split. Layer a second date filter on hs_last_sales_activity_timestamp to separate the 3–6/6–18/18+ month bands within each value band.
  4. Engagement depth. Where available, filter on number of associated contacts or historical deal count to distinguish accounts with a known champion from single-touch accounts — this determines whether email alone is sufficient or a call is warranted.
  5. Owner routing. Use hubspot_owner_id to keep tier 1 and tier 2 with the original account owner where that person is still active; reassign to a pooled reactivation owner only for tier 3 and tier 4.

The reactivation playbook

Once the lists exist, the outreach itself is where most programmes either land or collapse. The architecture below applies across all four tiers — what changes by tier is who sends it and how many touches it gets, not the structure of the message.

Message architecture

  • Reason for contact. State plainly why you're reaching out now, referencing the actual last interaction or purchase — "it's been around eight months since we last spoke about the reporting rollout" reads as attentive; "checking in" reads as automated.
  • What changed. Give a concrete reason the timing is relevant now: a new feature that addresses a gap they raised previously, a pricing tier that fits their scale better, a case study from a comparable account, or simply that their contract renewal window is approaching.
  • Specific value. Name the outcome in terms relevant to their business, ideally with a number — "accounts of similar size have typically cut reporting time by a third" beats "we've made improvements."
  • Low-friction ask. Request something small: a 15-minute call, a yes/no on whether it's still relevant, or an introduction to whoever owns the decision now. Never open with a proposal or a contract.

Sequencing and who should send it

TouchChannelTimingSender
1Email — full four-part messageDay 0Account owner (tier 1–2) or reactivation owner (tier 3–4)
2Phone call or LinkedIn, referencing touch 1Day 4–5Same sender
3Short email, new angle (a different value point or a relevant update)Day 12–14Same sender
4 (tier 1–2 only)Manager or exec-level note for accounts that still haven't repliedDay 21Sales leader or account owner's manager

What not to do

  • Mass "just checking in" blasts. A single templated email to the entire dormant list, sent from a generic alias, with no reference to what the account actually bought, reliably produces reply rates in the low single digits and trains recipients to ignore future outreach from the same domain.
  • Discount-first offers. Opening with "come back and save 20%" signals that price was the only thing keeping the relationship alive, invites a negotiation on every future renewal, and compresses margin on revenue that a well-framed message would have recovered at full value.
  • Treating all four categories as one list. Sending a dormant-customer message to a never-bought lead, or a lapsed-renewal message to a churned account, signals that nobody looked at the account before reaching out — which undermines the entire premise of a relevant, specific message.
  • Assigning reactivation with no capacity. Adding "reactivate the dormant list" to a rep's existing workload with no protected time or account cap predictably results in the first fifteen accounts getting attention and the remaining two hundred never being touched.

Worked example: reactivating a 240-account dormant base

Consider a mid-market services business with 240 accounts flagged dormant after applying a 150-day silence threshold across hs_last_sales_activity_timestamp. The tiering split out as 22 tier-1 accounts, 41 tier-2, 96 tier-3, and 81 tier-4, with combined historical total_revenue across the base of roughly £2.9 million.

Measuring the programme

A reactivation programme should be tracked with the same rigour as new-business pipeline, using metrics that show whether the list is actually being worked, not just whether it exists.

Core metrics and review cadence
MetricWhat it tells youReview cadence
Contact coverage (% of tier contacted)Whether the list is being worked at all, by tierWeekly
Reply rate by tierWhether the message is landing — compare against the planning bands aboveWeekly
Meetings bookedWhether replies are converting to real conversationsWeekly
Pipeline created (value and count)Whether meetings are producing reopened opportunities in dealstageFortnightly
Revenue recovered (closed-won from reactivated deals)The ultimate outcome metric, tagged distinctly from net-new pipelineMonthly

Tag every reopened deal with a distinct source or campaign value so recovered revenue never gets folded back into general pipeline reporting — if it isn't tagged, the programme's actual return becomes invisible within a quarter, and the case for repeating it disappears with it.

Keeping dormancy from recurring

A one-off reactivation push recovers a backlog; it doesn't stop the next 240 accounts from going quiet in eighteen months. That requires a standing ritual, not another project.

  1. Assign a dormancy owner. One person — typically a RevOps or customer success lead — owns the dormant-list definition, the threshold settings, and the monthly review, independent of whoever executes outreach.
  2. Review the lists monthly, not quarterly. Accounts move between tiers as they age; a monthly review catches tier-1 accounts before they age into the much lower-response tier-2 band.
  3. Add a renewal-gap alert. Flag any account where recent_deal_close_date plus the expected renewal interval has passed with no new deal created, so lapsed renewals are caught within weeks rather than discovered in a periodic audit.
  4. Make ownership explicit at handoff. When a champion leaves an account or an owner changes in hubspot_owner_id, trigger a check-in task rather than letting the relationship go quiet by default.

Done consistently, this shrinks the dormant population over time instead of letting it rebuild to the size that made the original reactivation project necessary.

Frequently asked questions

What is the difference between a dormant customer and a churned customer?
A churned customer has explicitly cancelled, downgraded to zero, or told you they've moved to a competitor — the exit is recorded, usually against a closed-lost reason or a subscription-status property. A dormant customer has done none of that. They still hold an active lifecyclestage of customer, total_revenue is still populated from a past purchase, but hs_last_sales_activity_timestamp and notes_last_contacted have gone silent for months with no renewal, upsell or support ticket in between. Dormancy is a silence, not an event, which is exactly why it's under-tracked: nothing in HubSpot forces anyone to notice.
How long does an account need to be quiet before it counts as dormant?
It depends on your natural buying cycle, not a fixed number. For a business with a 30–60 day average purchase interval, 120 days of silence is a reasonable dormancy threshold. For an annual-contract SaaS business, you'd typically wait until 60–90 days past the last recent_deal_close_date with no renewal deal created before calling it dormant, since anything shorter is just normal contract cadence. Set the threshold at roughly two to three times your typical repurchase or renewal interval, then hold it constant so trend data means something.
Won't reactivation outreach just feel like spam to a quiet customer?
Only if it's generic. A message that says 'just checking in' with no reference to what the account bought, when, or what's changed since reads as a template because it is one, and recipients recognise that instantly. A message that references the specific product line, the approximate purchase date, and a concrete change relevant to that account reads as attentive, not intrusive. The volume isn't the problem; the lack of specificity is.
Should discounts be part of a reactivation offer?
Not as the opening move. Leading with a discount tells a dormant account that the relationship's value was price all along, which trains every future renewal conversation to start with a negotiation. It also compresses margin on revenue you were about to recover anyway from goodwill and switching-cost inertia. Reserve pricing flexibility for the second or third touch, after you've re-established relevance, and frame it as a return-customer arrangement rather than a discount, if you use it at all.
Who should own outreach to dormant accounts — sales, customer success, or marketing?
The account owner of record in hubspot_owner_id should send the first touch on any account above your tier-1 or tier-2 value threshold, because a message from a marketing alias or a stranger reads as low-effort mass outreach regardless of content. Below that value threshold, a pooled reactivation owner or SDR can run the sequence at scale using the same message architecture. Marketing's role is building the list and tracking response, not sending the message itself for higher-value accounts.
How many dormant accounts can one person realistically work in a quarter?
A single rep doing this properly — researching the account, writing a specific first touch, following a three-touch cadence, and handling replies — can typically carry 30–50 dormant accounts to a real conclusion (meeting, no, or still-quiet) in a quarter alongside other responsibilities. Treating it as a side task without capacity allocation is why most dormant-base initiatives stall after the first fifteen accounts and never touch the rest of the list.
How is this different from a routine 'win-back' email campaign?
A win-back campaign is usually a single templated send to an entire lapsed list, measured by open rate. A reactivation programme, as described here, starts with tiering by recency, historical value and prior engagement, assigns ownership by tier, and sequences multiple touches with escalating specificity, measured by pipeline created and revenue recovered, not opens. The campaign treats the list as one audience; the programme treats it as a small number of accounts worth individual attention and a larger number worth efficient, templated-but-personalised outreach.
Can HubSpot workflows do this automatically?
Workflows can build the lists, apply the tier tags, and enrol accounts into a sequence — that part is straightforward with standard HubSpot list and workflow tooling. What workflows can't do is write the specific first line referencing what changed for that account, or decide which of the twelve tier-1 accounts deserves a phone call instead of an email. Automation should carry the mechanics; a person should carry the judgement on your highest-value tier.