WIN-BACKHUBSPOT

Win-back emails for churned customers in HubSpot

Build a win-back program for cancelled customers in HubSpot: churn properties, segments, workflows with delays, sequences, subscription types and exits.

Published 5 min read

A customer who cancelled knows your product, has already paid you, and may come back if the reason they left goes away. HubSpot has every tool you need to reach them at the right time: segments, workflows with delays, marketing emails and, for personal outreach, sequences. What it does not have by default is the one fact everything depends on: that the customer cancelled, when, and why.

This guide shows how to get that data into HubSpot and build a win-back program on top of it, timed by cancellation date and adapted to the reason. It relies on HubSpot’s knowledge base: segments and filter criteria, delays, re-enrollment, marketing emails in automation, sequences and subscription types (all accessed November 2026). For what to write in each email, see our win-back email examples.

Step 1: put churn data on the contact

Create three contact properties (or company properties, for B2B accounts with several users):

Property Type Example values
Subscription status Dropdown Active, Cancelled, Paused
Cancellation date Date picker The date access ended
Cancellation reason Dropdown Too expensive, Missing feature, Not using it, Switched tool, Temporary, Other

These have to be filled by something: an integration with your billing system, your own app through HubSpot’s API, or a regular import. Whatever the source, the cancellation reason should come from what the customer said (a cancel flow answer, a ticket), not from a guess.

Time everything from “Cancellation date”, not from the day HubSpot saw the status change. Imports and syncs can run late, and your timing should follow what the customer experienced.

Step 2: build segments by reason

HubSpot segments filter on properties, and date properties support relative operators such as “is more than … days ago” (filter criteria). Create one active segment per reason group:

  • Price: Subscription status is Cancelled, reason is Too expensive.
  • Product: reason is Missing feature or Switched tool.
  • Timing: reason is Not using it or Temporary.
  • Unknown: reason is Other or unknown.

Exclude from all of them: contacts who have reactivated, contacts whose cancellation came with a complaint still open, and contacts who disputed a charge. Writing “come back!” to someone in the middle of a chargeback is a bad idea.

Step 3: one workflow per reason, with delays

Add one more filter to each segment: Cancellation date is more than 30 days ago. Then build a contact-based workflow per segment, enrolled on segment membership, with this shape:

  1. Send email 1 (the contact enters the segment around day 30).
  2. Delay 30 days.
  3. If still cancelled, send email 2.
  4. Delay 30 days.
  5. If still cancelled, send email 3.

HubSpot’s delay guide covers fixed delays, delays that skip weekends and time-of-day delays. Timing from the segment filter keeps the schedule tied to the real cancellation date, even if the data arrived late. Check each branch for “still cancelled” before sending, so a customer who came back on day 40 does not get a “we miss you” on day 60.

What each email says depends on the reason:

Reason group Email 1 (around day 30) Email 2 (around day 60) Email 3 (around day 90)
Price What changed in plans or pricing, if anything did A time-limited offer, if you make one Last note, how to come back
Product The specific feature they asked for, only if it shipped Other relevant improvements Last note
Timing Short check-in, no offer What’s new since they left Last note
Unknown Short check-in, ask what would bring them back What’s new Last note

Be honest. If the feature they wanted has not shipped, do not hint that it has. If nothing changed on price, do not pretend.

Re-enrollment

HubSpot workflows enroll a record only the first time it meets the triggers, unless you turn on re-enrollment (re-enrollment guide). Re-enrolled records start again from the beginning and receive every email again. For win-back, turn re-enrollment on only if a customer can cancel, return, and cancel again, and make sure the second run is appropriate. HubSpot also notes that a record still active in a workflow cannot be enrolled again until it completes it.

Step 4: personal outreach with sequences

For high-value accounts, a personal email from the person who knew them works better than a marketing email. HubSpot sequences send one-to-one emails on a schedule and, by default, unenroll a contact who replies or books a meeting through a sequence link. HubSpot documents this for Sales Hub and Service Hub Professional and Enterprise.

A reasonable split: marketing workflows for most churned customers, a short sequence (two emails, a few weeks apart) for the accounts you would call by name. Do not run both on the same person at the same time.

Win-back emails are marketing, not service messages. HubSpot’s subscription types let contacts opt in or out of categories of marketing email; emails are not delivered to contacts who opted out of that type. Create a dedicated subscription type for win-back or product updates, so a customer who wants receipts but not marketing can say so.

Check the consent rules where your customers are. A paying relationship that has ended does not automatically mean you can keep sending marketing email.

Step 6: measure what came back

For each workflow, track:

  • Reactivations: contacts whose Subscription status went from Cancelled back to Active within 30 days of an email.
  • Unsubscribes from the win-back subscription type.
  • Replies, especially to the “what would bring you back?” email. These are often the most useful output of the whole program.

Compare reactivations with a small holdout group that receives nothing, if your volume allows it. Some customers return on their own, and without a holdout you will credit the emails for all of them.

Common mistakes

  • Starting too early. An email the day after cancelling feels like the cancellation was not accepted.
  • The same discount for everyone. It trains customers to cancel for a discount and does nothing for those who left for a missing feature.
  • No exit. Three emails, then stop. Silence after the third is respectful and keeps your sender reputation intact.
  • Ignoring the dispute list. Exclude anyone with an open dispute or an unresolved complaint.

Doing this with NoChurn

NoChurn sends its own win-back emails at day 30, 60 and 90 after cancellation, chosen by the reason the customer gave in the cancel flow. Its HubSpot connector is read-only, so NoChurn does not send through HubSpot or change your workflows; if you prefer to keep win-back in HubSpot, use one or the other for the same customers, not both. Support conversations from HubSpot are matched to customers by email (doubtful matches suggested, never merged automatically) and feed the churn score and churn drivers. See NoChurn + HubSpot.

PROMPT

Read https://www.nochurn.sh/llms.txt,
then follow https://www.nochurn.sh/docs/quickstart/
to add NoChurn to this app. Use a test key
(nc_test_…) until I say we go live.

Stop leaking revenue.

  • Free until $300 MRR
  • No card needed
  • Live in 10 minutes
  • Never a cut of what we recover