HubSpot Lifecycle Stages for PLG: Map Product Usage to Stages
Learn how to customize HubSpot lifecycle stages for product-led growth. Map product usage data to stages like Free, Activated, PQL, and Expansion automatically.
Quick answer: HubSpot lifecycle stages track how contacts progress through your funnel, but the default stages (Subscriber, Lead, MQL, SQL, Opportunity, Customer) assume a sales-led motion. PLG companies need custom stages that map to product usage: Free, Activated, PQL, Customer, and Expansion.
- Default HubSpot stages work for inbound marketing funnels, not product-led growth.
- Custom PLG stages reflect how users actually move through your product before they buy.
- Automate stage movements using HubSpot workflows triggered by product usage properties.
- Sync product data to HubSpot using direct integrations like Zoody ($149/mo), reverse ETL tools (Hightouch, Census, $350+/mo plus warehouse costs), or custom API builds.
What Are HubSpot Lifecycle Stages?
Lifecycle stages in HubSpot track where a contact or company sits in your customer journey. Each stage represents a meaningful step in how someone moves from initial awareness to becoming a customer and beyond. HubSpot stores lifecycle stage as a property on both contact and company records, which means you can segment, report, and automate based on where people are in your funnel.
The property lives under Contact properties > Lifecycle Stage and Company properties > Lifecycle Stage in your HubSpot settings. When you update a contact's lifecycle stage, HubSpot automatically logs the change in the record timeline and prevents backward movement by default (a contact can't go from Customer back to Lead unless you override it manually).
Default HubSpot Lifecycle Stages Explained
HubSpot ships with eight default lifecycle stages:
- Subscriber: Someone on your mailing list who hasn't engaged beyond email.
- Lead: A contact who converted on your website (form fill, live chat) but hasn't been qualified yet.
- Marketing Qualified Lead (MQL): A lead that marketing has determined is ready for sales review based on engagement scoring.
- Sales Qualified Lead (SQL): A lead that sales has accepted and is actively working.
- Opportunity: A contact associated with an open deal.
- Customer: A contact associated with a closed-won deal.
- Evangelist: A customer who actively refers or promotes your product.
- Other: A catch-all for contacts that don't fit the above.
This setup works fine if your customer acquisition starts with marketing campaigns and ends with sales closing a deal. It breaks down completely if your customer acquisition starts with someone signing up for your product.
Lifecycle Stages vs. Lead Status vs. Deal Stages
HubSpot has three overlapping concepts that confuse a lot of RevOps managers:
- Lifecycle stage tracks the overall journey of a contact or company. It answers "Where is this person in our funnel?"
- Lead status is a more granular property that tracks what's happening with a lead right now. Options include New, Open, In Progress, Open Deal, Unqualified, Attempted to Contact, Connected, Bad Timing. Lead status lives inside the Lead/MQL/SQL stages.
- Deal stages track the progression of a specific sales opportunity through your pipeline. They're tied to deals, not contacts.
A contact can be in lifecycle stage "SQL" with a lead status of "Connected" and also have a deal in stage "Proposal Sent." The three properties serve different reporting purposes, but lifecycle stage is the master funnel tracker.
Why Traditional Lifecycle Stages Don't Work for PLG Companies
The default HubSpot lifecycle model assumes your funnel looks like this: someone fills out a form, marketing scores them, sales qualifies them, then sales works a deal. Every stage gate is controlled by your team.
Product-led growth inverts that. Your funnel looks like this: someone signs up for your product, uses it, gets value, then decides to buy. The stage gates are controlled by the user's behavior in your product, not by your marketing automation or sales qualification.
Here's the gap. HubSpot's default stages have no place for:
- Free users who haven't activated yet
- Users who completed onboarding and hit their first value moment
- Users showing buying intent based on usage (PQLs), not form engagement
- Existing customers showing expansion signals (increased usage, hitting limits, team growth)
You can't score a PQL using form fills and email opens when the actual qualification signal is "invited 3 teammates and used the API 50 times this week." The data that matters lives in your product, not in HubSpot.
Most PLG companies solve this by syncing product usage data into HubSpot so lifecycle stages can reflect what users actually do. Without that sync, you're flying blind or manually updating stages based on reports you pull from Mixpanel every week.
Defining PLG Lifecycle Stages in HubSpot
You need custom lifecycle stages that map to how users move through your product. The exact names vary by company, but the structure is consistent across PLG businesses.
The 5 PLG Lifecycle Stages
Free: A user signed up and created an account, but hasn't completed activation. They might have logged in once, poked around, and left. No meaningful product engagement yet. This stage replaces "Lead" in a traditional funnel.
Activated: The user completed your activation milestone. For a project management tool, activation might be "created first project and invited a teammate." For a developer tool, it might be "made first API call and returned a successful response." Activation is the moment someone gets value from your product for the first time. This is a new stage that doesn't exist in default HubSpot.
PQL (Product Qualified Lead): The user crossed a usage threshold that indicates buying intent. PQLs are actively using the product, hitting feature limits, or showing signals that they'll pay. Common PQL signals: invited 3+ teammates, used a paid-tier feature, made 100+ API calls, connected an integration, used the product 10+ days this month. How you define and track PQLs in HubSpot determines when sales reaches out.
Customer: The user converted to a paid account. This maps directly to HubSpot's default Customer stage, but the path to get here is different (product usage, not sales qualification).
Expansion: An existing customer showing signals for upsell, cross-sell, or increased seats. Expansion signals: hitting usage limits, requesting features in higher tiers, team growth, increased API usage. This stage replaces "Evangelist" in the default model (or you keep both, depending on how you segment).
How to Create Custom Lifecycle Stages in HubSpot
Go to Settings > Properties > Contact properties > Lifecycle Stage. Click "Edit choices" to add new stages or reorder existing ones.
Add the five PLG stages in this order:
- Free
- Activated
- PQL
- Opportunity (keep this if you run deals)
- Customer
- Expansion
HubSpot enforces forward-only progression by default. A contact moves from Free to Activated to PQL, and can't move backward unless you manually override it. This prevents a workflow from accidentally demoting a Customer back to Free.
Delete or hide stages you don't use (Subscriber, MQL, SQL, Evangelist). Fewer stages means cleaner reporting.
One gotcha: HubSpot ties the Customer stage to closed-won deals automatically. If you close a deal associated with a contact, HubSpot sets their lifecycle stage to Customer even if your workflow already did it. That's fine, just know it's happening.
Mapping Product Usage Data to Lifecycle Stages
Each lifecycle stage transition needs a clear product usage trigger. You can't automate stage movements without defining the criteria.
Defining Stage Transition Criteria from Product Signals
Here's a real example from a B2B SaaS platform that sells API access:
Free to Activated:
- Completed onboarding checklist (property:
onboarding_completed= true) - Made first successful API call (property:
first_api_call_datehas value) - Logged in 2+ times (property:
login_count>= 2)
Activated to PQL:
- Made 50+ API calls in the last 30 days (property:
api_calls_30d>= 50) - Invited at least 1 teammate (property:
team_size>= 2) - Connected an integration (property:
integrations_connected> 0) - Used a paid-tier feature (property:
used_paid_feature= true)
All four criteria must be met. If you lower the bar too much, sales wastes time on users who aren't ready to buy.
PQL to Opportunity:
- Sales accepted the PQL and created a deal. This transition happens manually or via workflow when a deal is created.
Opportunity to Customer:
- Deal closed-won. HubSpot handles this automatically.
Customer to Expansion:
- Usage increased 2x in the last 60 days (property:
usage_growth_60d>= 2.0) - Team size increased by 3+ users (property:
team_growth_30d>= 3) - Requested features in a higher pricing tier (property:
feature_requests_paid_tier> 0)
These criteria require product usage properties to exist on your HubSpot contact records. That means you need to get product data into HubSpot in real time.
Getting Product Usage Data into HubSpot
You have four options for syncing product usage data to HubSpot:
1. Reverse ETL from a data warehouse. Tools like Hightouch or Census sync data from Snowflake or BigQuery to HubSpot. This works if you already have a warehouse and data engineering team. Cost: $350-$800/mo for the reverse ETL tool plus warehouse costs. Setup time: 2-4 weeks. Why reverse ETL is expensive for HubSpot and when it's worth it.
2. Custom API integration. Write code that listens to product events and calls the HubSpot API to update contact properties. Cost: free tools, expensive engineering time. Ongoing maintenance: high. You'll spend time handling rate limits and debugging sync issues.
3. HubSpot Operations Hub. Operations Hub Professional ($800/mo for 2,000 contacts) includes custom code workflow actions. You can write JavaScript that pulls data from your product database and updates HubSpot properties. What Operations Hub does and where it falls short for product data sync.
4. Direct product sync tools. Tools like Zoody send product events directly to HubSpot without a data warehouse. You track events in your product (user invited teammate, user made API call), and Zoody pushes them to HubSpot contact properties in real time. Cost: $149/mo flat rate. Setup time: 30 minutes. Limitation: HubSpot only, doesn't replace your product analytics tool.
Once product data is syncing to HubSpot, you create custom contact properties to store the metrics you need for lifecycle stage criteria. Examples:
api_calls_30d(number)team_size(number)onboarding_completed(single checkbox)first_api_call_date(date)integrations_connected(number)used_paid_feature(single checkbox)
These properties update automatically as users interact with your product. Your lifecycle stage workflows read these properties to determine when someone moves from Free to Activated to PQL.
Automating Lifecycle Stage Movements Based on Product Usage
HubSpot workflows automate stage transitions. You set enrollment criteria (the product usage thresholds), add an action that updates the lifecycle stage, and the workflow runs whenever a contact meets the criteria.
Building Lifecycle Stage Workflows in HubSpot
Go to Automation > Workflows > Create workflow > Contact-based.
Set enrollment triggers to match the stage criteria you defined earlier. For example, the Free to Activated workflow enrollment criteria:
onboarding_completedis equal to true- AND
first_api_call_dateis known - AND
login_countis greater than or equal to 2 - AND Lifecycle Stage is equal to Free
The last filter prevents re-enrollment. You only want to move someone from Free to Activated once.
Add a workflow action: Set property value > Lifecycle Stage > Activated.
Save and turn on the workflow.
Repeat this process for each stage transition: Activated to PQL, Customer to Expansion. Each workflow has its own enrollment criteria and stage update action.
Example Workflows for PLG Stage Automation
Activated to PQL Workflow:
Enrollment triggers:
api_calls_30dis greater than or equal to 50- AND
team_sizeis greater than or equal to 2 - AND
integrations_connectedis greater than 0 - AND
used_paid_featureis equal to true - AND Lifecycle Stage is equal to Activated
Actions:
- Set property value: Lifecycle Stage = PQL
- Create task: Notify sales rep to reach out (assigned to contact owner)
- Send internal notification: Alert #sales-pqls Slack channel (using HubSpot-Slack integration)
This workflow automates the entire PLG sales handoff. As soon as a user becomes a PQL based on product usage, sales gets notified.
Customer to Expansion Workflow:
Enrollment triggers:
usage_growth_60dis greater than or equal to 2.0- OR
team_growth_30dis greater than or equal to 3 - OR
feature_requests_paid_tieris greater than 0 - AND Lifecycle Stage is equal to Customer
Actions:
- Set property value: Lifecycle Stage = Expansion
- Create task: Notify account manager to schedule expansion call
- Add to list: Expansion opportunity list (for targeted campaigns)
Use OR logic for expansion signals since any one of them is worth reaching out about.
One important workflow setting: under "Re-enrollment," turn it off for most lifecycle stage workflows. A contact should only move from Free to Activated once. The exception is the Expansion workflow, where you might want customers to re-enter if they show expansion signals multiple times.
Reporting and Optimizing Your PLG Lifecycle
Create a lifecycle stage report in HubSpot to see how contacts move through your funnel. Go to Reports > Analytics Tools > Create custom report > Funnel report.
Set up the funnel stages:
- Free (filter: Lifecycle Stage is equal to Free, ever)
- Activated (filter: Lifecycle Stage is equal to Activated, ever)
- PQL (filter: Lifecycle Stage is equal to PQL, ever)
- Customer (filter: Lifecycle Stage is equal to Customer, ever)
This shows you conversion rates between stages. If only 10% of Free users reach Activated, you have an onboarding problem. If 50% of PQLs convert to Customer, your PQL criteria are well-tuned.
Track time in each stage by creating a custom report with "Time in Lifecycle Stage" as a metric. HubSpot calculates this automatically based on the lifecycle stage change log. You'll see how long users sit in Free before activating, or how long PQLs take to convert.
Build a dashboard that includes:
- Lifecycle stage funnel (conversion rates between stages)
- New contacts by lifecycle stage per week (trend report)
- Time in each lifecycle stage (median and 90th percentile)
- PQLs created this month vs. last month
- Expansion opportunities by account manager
Share this dashboard with your RevOps, sales, and customer success teams so everyone sees the same funnel.
Iterate on your PQL criteria based on conversion data. If PQLs are converting to Customer at 60%, you can tighten the criteria (raise the usage thresholds). If PQLs are converting at 10%, you're marking users as qualified too early.
The best PLG companies revisit their lifecycle stage definitions every quarter and adjust based on what's actually predicting conversion.
FAQ
What are the lifecycle stages of HubSpot?
HubSpot's default lifecycle stages are Subscriber, Lead, Marketing Qualified Lead (MQL), Sales Qualified Lead (SQL), Opportunity, Customer, Evangelist, and Other. These stages track how a contact progresses from initial awareness to becoming a customer. Most PLG companies replace these with custom stages like Free, Activated, PQL, Customer, and Expansion to reflect product-led journeys.
What are the 5 stages of the customer life cycle?
For PLG companies, the five customer lifecycle stages are Free (signed up but not activated), Activated (completed onboarding and got value), PQL (showing buying intent through product usage), Customer (converted to paid), and Expansion (existing customer showing upsell signals). These stages differ from traditional B2B lifecycle models because they're driven by product behavior, not marketing or sales qualification.
Where are lifecycle stages in HubSpot?
Lifecycle Stage is a default property in HubSpot under Contact properties and Company properties. You can view it in any contact or company record, and edit the available stage options in Settings > Properties > Contact properties > Lifecycle Stage > Edit choices. Lifecycle stage changes are logged in the record timeline and used throughout HubSpot for segmentation, reporting, and workflow automation.
What is the purpose of using lifecycle stages in HubSpot?
Lifecycle stages standardize how your team tracks customer journey progression. They enable funnel reporting (conversion rates between stages), segmentation (target different campaigns to Free users vs. PQLs), workflow automation (trigger actions when someone becomes a PQL), and revenue attribution (tie lifecycle stage changes to closed-won deals). For PLG companies, lifecycle stages are how you connect product usage data to sales and marketing actions in HubSpot.
Compare alternatives
- Zoody vs Hightouch- without the warehouse layer
- Zoody vs Census- skip the dbt models
- Zoody vs HubSpot Operations Hub- $7,800/yr cheaper for the one feature
Explore use cases
- PQL scoring in HubSpot- score on real behavior
- Free trial conversion- time-decay + triggers
- PLG sales handoff- AE Slack alerts in under a minute
Try it on your own HubSpot
Zoody is in beta, so every feature is free right now. Connect your HubSpot, put real product signals on your records, and work directly with the founder.