Skip to content

HubSpot. Lifecycle stage funnel. Report MQL-to-customer conversion rates.

What this means for your store

Lifecycle stages - Subscriber, Lead, MQL, SQL, Opportunity, Customer, Evangelist - are HubSpot's shared funnel language. Unlike GA4 sessions, stages change when ops or sales acts: a lead scored, a discovery call booked, finance marks closed-won. Funnel reports show conversion and time-in-stage - what RevOps uses to judge whether LinkedIn leads or cart-recovery email actually becomes paying accounts.

Scenario on a real storefront

Your wholesale plumbing distributor recalibrates stage rules each quarter. For Q2 Google Ads cohorts, marketing pulls Lead → MQL → SQL → Customer with days between each hop:

# HubSpot → Settings → Objects → Contacts → Lifecycle stages
# Example entry rules (workflow or manual):
#   MQL  = lead score ≥ 50 AND "Request trade pricing" submitted
#   SQL  = sales accepted + discovery call on calendar
#   Customer = associated deal closed-won OR first wholesale order synced

# Report: Marketing → Reports → Funnel
Stages: Lead → MQL → SQL → Customer
Date: Create date in Q2 2026
Breakdown: utm_campaign / Original source

# Export for RevOps
contact_id | lifecyclestage | create_date | days_to_mql | days_to_customer

# Pitfall: CSV imports land at Lead - run a backfill workflow or funnels lie

What to do next

  • Slice the funnel by utm_campaign to compare paid search vs abandoned-cart workflows on SQL rate - not raw lead count.
  • Pair stages with GA4 generate_lead to catch web forms that create contacts stuck at Lead because no MQL rule fired.
  • Watch time-in-stage monthly; bloated SQL often means sales acceptance criteria slipped, not that marketing stopped delivering.

Bottom line

Define stage entry rules everyone agrees on, break funnels down by campaign, and cross-check web lead events so contacts are not stuck at Lead forever.