Lifecycle campaigns on WhatsApp, Email and Push: segmenting by churn risk in HubSpot
How I run lifecycle campaigns across WhatsApp, Email and Push in HubSpot, segmented by churn risk, with a rule check before scheduling. Result: +21% engagement.
Most campaign problems I have seen are not creative problems. The copy is fine. The campaign goes out late, to the wrong group, with an offer that contradicts what the customer was told last week, and nobody reads it before it is scheduled. When I rebuilt the lifecycle campaigns on HubSpot and Zapier across Email, WhatsApp and Push, engagement went up 21%. The channel mix helped. The segmentation and the rule check did most of the work.
Start with behaviour, not demographics
The old segments were static lists: "customers in Dubai," "customers who signed up last year." They say nothing about what a person is about to do. I rebuilt them from behaviour, with four segments that cover most of the useful ground:
- New: first orders, still forming a habit.
- Active: regular, no action needed except not annoying them.
- Churn risk: order frequency is dropping, or a recent complaint went unresolved.
- Dormant: no activity for long enough that a win-back is the honest message.
A fifth group, VIP, overlaps all of these and is handled separately, as described in the VIP watchlist post.
In HubSpot these are active lists driven by properties: last order date, order count over a rolling window, open ticket status. The important rule is that membership recalculates on its own. A segment someone has to rebuild by hand is already out of date.
Pick the channel by the job
I do not send everything everywhere. Each channel has a job:
- WhatsApp: timely and personal, best for a nudge after a service problem or a reminder tied to an order. It needs opt-in and respects a strict template process.
- Email: the place for anything with detail, an offer, or something worth re-reading.
- Push: short, time-bound, good for a reminder in the moment. Easy to overuse.
A churn-risk customer might get one WhatsApp message and a follow-up email, not three messages in a day. A frequency cap per customer, across channels, is the single cheapest protection you can add.
The journeys
I map each journey once on a page, then build it. A win-back journey looks like this:
- Customer enters the churn-risk segment.
- Day one: a short WhatsApp message referring to something real, such as their usual service.
- If no response, an email with the offer after a pause.
- If still no response, a push reminder, then exit and move to dormant.
- Any order, reply or complaint pulls them out immediately.
The exit conditions matter as much as the messages. A customer who has just ordered should never receive the win-back email that was queued yesterday.
The rule check before anything is scheduled
This is where the gate sits in lifecycle work. Every message draft passes a rule check before it can be scheduled:
- Tone matches the brand guide.
- The offer is on the approved list for that segment.
- Opt-out wording is present where required.
- No personal data beyond the first name appears in the body.
- The customer has not been contacted on another channel recently.
I draft per-segment copy with Claude and then run the checks in n8n. Failures go back to a person with the reason attached. Nothing is scheduled until it passes.
A worked example
An illustrative churn-risk WhatsApp draft:
Hi Layla, we haven't seen your usual Tuesday pickup for a while. Want us to book next Tuesday again? Reply YES and we'll sort it.
The checks: tone passes, there is no offer, so the offer rule is skipped, opt-out is handled by the template footer, and only a first name appears. The frequency check finds that Layla received an email two days ago, so the draft is rescheduled to follow the cooldown instead of being sent now. A person sees the reschedule note and agrees. That one rule prevents most of the "too many messages" complaints.
What went wrong the first time
I built the segments and sent the first campaign before building exit conditions. A group of customers who had already come back got a win-back message anyway. The reply I received from one of them was polite and, fairly, a little irritated.
Second mistake: I wrote one master message and adapted it by channel. It read as a compromise everywhere. Writing per channel from the start, with the channel's job in mind, fixed it.
How I read the results
I look at engagement per segment and per journey step, not one blended number. A win-back that works on the first WhatsApp message and fails on the email tells me to shorten the journey. A push reminder that produces opt-outs tells me to cap it. Each review ends with one change to one journey, so I can see what moved the result. Changing five things at once teaches you nothing, however tempting it is when a campaign underperforms.
Trade-offs
- More segments mean more precision and more maintenance. Four is enough until the data proves otherwise.
- Frequency caps reduce reach. You trade volume for trust, and in my experience that trade is worth it.
- WhatsApp template approval slows launches. Plan copy a bit earlier than feels necessary.
- Attribution across channels is messy. I report engagement by segment and journey, not by channel in isolation.
For the plumbing between HubSpot, Zapier and n8n, my comparison of the tools explains where each one earns its place.
What I would build for your team
I would pull one month of order and ticket data, define the four segments with you, and rebuild them as live lists. Then I would map the win-back journey on one page, write copy per channel, and put the rule check in front of the schedule. After that, you review results by segment and journey on a HubSpot dashboard that you own.
Email: kodirovrukhillo@gmail.com