The most critical lifecycle stage transition is the marketing-to-sales handover. When does a lead move from marketing's responsibility to sales' responsibility?
Defining transition criteria
The MQL → SQL transition is your handover point. Define objective criteria for when this happens.
Avoid subjective criteria like "seems interested" or "good fit." Use measurable criteria:
Scoring-based: Lead score reaches threshold (covered in lead scoring chapter). Example: "Any lead scoring 60+ points becomes MQL and gets routed to sales."
Activity-based: Specific actions trigger MQL status. Example: "Any lead who requests a demo or books a meeting becomes MQL immediately."
Profile-based: Firmographic and demographic criteria. Example: "Any lead from a company with 100+ employees in target industry becomes MQL."
Combination approach works best: require both engagement (scoring/activity) and fit (profile). "They must score 60+ points AND work at a company with 50+ employees in tech industry."
Segmentation criteria and configuration
Once you've defined MQL criteria, configure them in HubSpot so MQL status can be assigned automatically or manually with clear rules.
Create active lists that identify MQLs: Navigate to Lists > Create list. Name it "Auto MQL Qualification." Add filters matching your MQL criteria:
- Lead score is greater than or equal to 60
- Number of employees is greater than or equal to 50
- Industry is any of: Technology, Software, SaaS
- Lifecycle stage is Lead (not already MQL or further along)
This list shows contacts who meet MQL criteria but haven't been moved to MQL stage yet. You can use this list to:
- Manually review and promote to MQL
- Automatically promote to MQL via workflow (Section 3)
- Alert sales team that these leads need attention
List hygiene and automation rules
Beyond the MQL qualification list, create lists for each lifecycle stage transition to maintain visibility into your funnel:
- "MQL → SQL Conversion" list: MQLs that sales has qualified (filters: lifecycle stage is SQL, created date within last 30 days)
- "SQL → Opportunity Conversion" list: SQLs with open deals
- "Opportunity → Customer Conversion" list: Opportunities that closed-won
These lists help you measure conversion rates between stages and identify where contacts get stuck.
Manually updating lifecycle stages for every contact doesn't scale. Automate stage progression based on contact behavior and sales actions.
How lifecycle stages change in workflows
HubSpot workflows change lifecycle stages automatically when contacts meet specific criteria.
Navigate to Automation > Workflows. Create a new workflow. Choose "Contact-based" and "Blank workflow."
Name it: "Auto MQL Progression."
Set enrollment trigger: "Contact is member of list: Auto MQL Qualification" (the list you created in Section 2).
Add action: "Set property value." Select property "Lifecycle stage." Set value to "Marketing Qualified Lead."
Optional: Add delay, then send internal notification to sales team. "Delay for 5 minutes" → "Send internal email notification to contact owner: New MQL ready for outreach."
Click "Review and publish."
Now when contacts meet MQL criteria (join your Auto MQL Qualification list), they automatically progress to MQL stage and sales gets notified.
Automated progression rules
Create workflows for other stage transitions:
Lead → MQL: (Already covered above)
MQL → SQL: Triggered when sales completes discovery call. Enrollment trigger: "Contact's last meeting date is known" AND "Contact's lifecycle stage is MQL." Action: Set lifecycle stage to SQL.
SQL → Opportunity: Triggered when deal is created. Enrollment trigger: "Contact's associated deal pipeline is any of [your pipelines]" AND "Contact's lifecycle stage is SQL." Action: Set lifecycle stage to Opportunity.
Opportunity → Customer: Triggered when deal closes. Enrollment trigger: "Contact's associated deal stage is Closed Won" AND "Contact's lifecycle stage is Opportunity." Action: Set lifecycle stage to Customer.
Create these workflows in Automation > Workflows following the same pattern: enrollment trigger + set property value action.
Preventing backwards movement
Important: HubSpot allows lifecycle stages to move backwards by default. This breaks reporting. A customer shouldn't revert to Lead just because they downloaded another ebook.
Prevent backwards movement in workflows: When setting lifecycle stage property, configure "Only update if current value is earlier in the lifecycle stage order" option.
Navigate to each lifecycle stage workflow. Click the "Set property value" action. Under "Options," toggle on "Only update if current value is earlier in lifecycle stage." This ensures contacts only progress forward, never backwards.
Alternatively, enforce this at account level: Navigate to Settings > Data Management > Properties > Contact Properties > Lifecycle Stage. Under "Property settings," toggle on "Prevent lifecycle stage from moving backwards."
Automation best practices
Test workflows before activating: Enroll yourself as a test contact. Verify the workflow triggers correctly and performs the right actions. Check that notifications send, properties update, and no errors occur.
Monitor workflow performance: Navigate to Automation > Workflows > [Workflow name] > Performance tab. Check enrollment count, completion rate, and any errors. If enrollment count is zero after a week, your enrollment triggers might be wrong.
Don't over-automate: Not every stage transition should be automated. The MQL → SQL transition often benefits from human review. Sales should confirm MQLs before progressing them to SQL. Automate clear-cut transitions (SQL → Opportunity when deal created), but allow manual control for judgment-based transitions.
Lifecycle stage tells you where someone is in the journey. Lead status tells you what's happening with them right now.
Understanding lead status vs lifecycle stage
Lifecycle stage: Macro-level progression. Lead → MQL → SQL → Opportunity → Customer.
Lead status: Micro-level detail within a stage. Within MQL stage, is this person "New," "Attempting to Contact," "Connected," "Open Deal," or "Unqualified"?
Lead status answers: "What should happen next with this contact?"
HubSpot's default lead status values:
- New
- Open
- In Progress
- Open Deal
- Unqualified
- Attempted to Contact
- Connected
- Bad Timing
These work as a starting point, but customise them to match your process.
Creating custom lead statuses
Navigate to Settings > Data Management > Properties > Contact Properties > Lead Status. Click "Edit choices."
Add status values that represent your sales process stages:
For SDRs (Sales Development Reps):
- New inbound lead
- Attempting contact (left voicemail, sent email)
- Connected (had conversation)
- Meeting scheduled
- Unqualified (wrong fit)
- Bad timing (right fit, wrong time)
For AEs (Account Executives):
- Qualified (SQL received from SDR)
- Discovery completed
- Demo delivered
- Proposal sent
- Negotiating
- Closed won
- Closed lost
Different roles use lead status differently. SDRs use it to track outreach progress. AEs use it to track deal progression. Your custom status values should reflect actual workflow, not generic CRM best practices.
Syncing lifecycle stage from contact to company
Lifecycle stage is a contact-level property by default. But in B2B, you often care about the company's lifecycle stage, especially when multiple contacts work at the same company.
HubSpot can sync lifecycle stage from contact to company automatically based on rules.
Navigate to Settings > Data Management > Objects > Companies. Find "Lifecycle stage" under company properties. Click "Edit" on the property.
Under "Calculation," choose "Use the highest lifecycle stage value from associated contacts."
This means: If Company A has three contacts (one Lead, one MQL, one Customer), the company's lifecycle stage becomes "Customer" (the furthest-along stage).
Why this matters: When reporting on companies (account-level metrics), you want to know "Is this account a lead, an opportunity, or a customer?" Syncing lifecycle stage from contacts to companies enables account-based reporting.
Alternative calculation: "Use the most recent lifecycle stage from associated contacts." This sets the company's lifecycle stage to match whichever contact progressed most recently. Useful if you care about recency over advancement.
Choose the calculation that matches how you think about accounts.
When to use which field
Use lifecycle stage when you need to:
- Track progression through the customer journey
- Build conversion rate reports
- Segment for nurture campaigns based on buyer journey phase
- Measure time-to-customer
Use lead status when you need to:
- Track sales rep activity and next steps
- Filter views for daily work (show me all MQLs that are "New" or "Attempting contact")
- Report on sales velocity within a stage (how long does it take to move from "Connected" to "Meeting scheduled")
- Qualify or disqualify leads without moving their lifecycle stage
Both fields work together. Lifecycle stage is strategic; lead status is tactical.