A multi-tier SaaS platform offering both a free (Lite) product and paid subscription plans, with billing and subscription events managed through Chargebee. The client needed HubSpot's Lifecycle Stage property to accurately reflect where every contact actually stood trial, active customer, or churned — so that marketing, customer success, and revenue reporting could all trust the same field.
The client's customer base moved through several distinct journeys, trial users who cancelled before ever converting, paid customers who cancelled almost immediately, long-tenured customers who eventually churned, and free-tier users on entirely different lifecycle rules. Without automation built specifically around these paths, cancellations were landing contacts in the wrong lifecycle stage.
That single data problem cascaded into:
Marketing segmentation: win-back and nurture campaigns targeting the wrong audience.
The root problem wasn't missing automation, it was automation that didn't reflect how the business actually defined a customer.
Worked directly with the client's business rules and translated them into concrete HubSpot workflow logic, turning definitions like "early cancellation" or "Lite customer" into testable field conditions.
Each journey needed its own branch logic, since "cancelled" meant something different depending on where the contact was in their subscription lifecycle.
Scenario 1: Trial Cancellation
Triggered when a user cancels during the trial period, before ever becoming a paying customer.
Branch logic:- Subscription Status (previous) = Trial
- Subscription Status (current) = Cancelled
Result: routed to a trial-churn lifecycle stage, excluded from customer win-back campaigns
Scenario 2: Early Paid Cancellation
Triggered when a paid customer cancels within the first 5 days of converting treated separately from long-term churn since it signals an onboarding or fit problem rather than dissatisfaction after use.
Branch logic:- Previous Subscription = Active
- Current Status = Cancelled
- Customer Start Date < 5 days ago
Result: flagged for onboarding review, routed to a distinct early-churn segment
Scenario 3: Free (Lite) Customer Cancellation
Triggered when a Lite / FS Connect free-tier user cancels, which follows different lifecycle rules than a paid cancellation.
Branch logic:- Subscription Type = Lite
- Previous Status = Active
- Current Status = Cancelled
Result: routed to a free-tier-specific lifecycle path, kept separate from paid churn reporting
Scenario 4: Established Customer Cancellation
Triggered when a long-tenured paying customer cancels outside the early-cancellation window — the true churn signal the business cares most about for retention analysis.
Branch logic:- Previous Subscription = Active
- Current Status = Cancelled
- Customer Start Date ≥ 5 days ago
Result: routed to standard churn/win-back workflows and counted in core churn reporting
HubSpot Workflows with branching logic.
Every cancellation is now automatically classified into the correct journey — trial, early-paid, Lite, or established customer.
Lifecycle Stage is one of the most load-bearing fields in a HubSpot portal, nearly every report, segment, and automation downstream assumes it's correct. Getting cancellation logic right isn't just a workflow fix; it's the difference between churn numbers the business can act on and numbers that quietly mislead every team relying on them.
About Code Accelerator
Code Accelerator is a HubSpot Solutions Partner agency specialising in CRM implementation, CMS/module development, RevOps consulting, and marketing automation for growing SaaS and service businesses. We translate business logic into reliable CRM automation, so the data every team depends on actually reflects reality.