Lifecycle
Stages
The shared language between Marketing, Sales, and Customer Success — how to configure, automate, and govern the full contact funnel from Subscriber to Evangelist.
A property that tracks how far along a contact is in their journey from stranger to customer — the funnel milestone property that drives everything else.
A Lifecycle Stage is a dropdown property on Contact and Company records that tells you where that person sits in your overall relationship — from total stranger (Subscriber) all the way to loyal advocate (Evangelist). It answers the question: "How far along is this contact in becoming our customer?"
Why it's the backbone of your CRM
| Business question | How lifecycle stage answers it |
|---|---|
| How many potential buyers do we have? | Count contacts where Lifecycle Stage = SQL or MQL |
| Where are leads getting stuck? | Compare MQL count vs SQL count — gap = Marketing/Sales friction |
| What's our lead-to-customer rate? | Customers this month ÷ Leads last quarter |
| How many MQLs did Marketing produce? | Count contacts who entered MQL stage this month |
| Who should CS be onboarding right now? | Active list: Lifecycle Stage = Customer AND Create date within 30 days |
| Which contacts should NOT get prospecting emails? | Suppress contacts where Lifecycle Stage = Customer |
If Lifecycle Stages are blank, stale, or inconsistently set — every funnel report is wrong, every automation that depends on stages breaks, and Marketing and Sales cannot align on performance. Stage governance is an ongoing admin responsibility, not a one-time setup task.
Click each stage to see the full definition, ownership, triggers, how contacts leave, and admin notes.
How HubSpot thinks about Lifecycle Stages — the four critical rules every admin must know.
| Rule | What it means | Admin implication |
|---|---|---|
| Forward-only by default | HubSpot ignores workflow actions that try to set Lifecycle Stage to an earlier value automatically | To move a contact backward, you must manually update the record or use explicit workflow logic with a "Set property value" action that forces the change |
| Single-select — one stage at a time | A contact can only be in one lifecycle stage simultaneously. Moving to MQL replaces Lead — they can't be both. | Stage is a clean overwrite. You track history via HubSpot's property history log or custom date-stamp properties |
| Auto-set on form submit | If a contact with a blank Lifecycle Stage submits any HubSpot form, HubSpot automatically sets their stage to Lead | This is why form submissions are the primary Lead creation mechanism. Ensure your forms are HubSpot-hosted or connected via embedding |
| Auto-set on Deal events (if enabled) | When a Deal is created → contact set to Opportunity. When a Deal closes won → contact set to Customer. Both require activation in Settings. | Enable both in Settings → Objects → Deals. Always test in sandbox first. These save hundreds of manual rep updates per month. |
The forward-only protection only applies to automated changes. Any user with edit permissions can manually set a contact to any stage — including backward. Workflows can also force backward movement with explicit Set Property actions. The protection prevents accidental workflow overwrites, not intentional admin actions.
What gets logged automatically
Every time a contact's Lifecycle Stage changes — regardless of how — HubSpot logs it in the property history. On any Contact record, click the Lifecycle Stage field → "View property history." You'll see every stage, when it changed, and what source changed it. This is your audit trail for debugging automation and data quality issues.
The most common point of confusion in HubSpot — they look similar but serve completely different purposes.
- →Answers: "How far have they come?"
- →Used by all teams: Marketing, Sales, CS
- →Changed by automation + all teams
- →7 fixed options — cannot add more
- →Moves forward by default
- →Drives cross-functional reporting
- —Cannot be customised or renamed
- —Not for day-to-day sales tracking
- →Answers: "What is the rep doing with them?"
- →Used by: Sales team only
- →Changed by: Sales reps
- →Fully customisable — add any options
- →Can move any direction at any time
- →Drives rep activity tracking
- —Not a funnel milestone
- —Not for cross-team reporting
Lifecycle Stage is the chapter of the book. Lead Status is what's happening on the current page. A contact can be in the SQL chapter (Lifecycle Stage) while their Lead Status is "In Progress" — the rep is calling them. Or "Bad Timing" — the rep spoke to them, they're qualified, but not ready. The lifecycle stage doesn't change. The working status does.
Default Lead Status options
| Default option | What it means | When to use |
|---|---|---|
| New | Lead just entered — nobody has touched it yet | Auto-set when MQL is created or handed to Sales |
| Open | SDR is aware but hasn't started outreach | Initial review stage |
| In Progress | SDR is actively reaching out | While calling or emailing sequence is active |
| Open Deal | A Deal has been created for this contact | Contact has moved to Opportunity stage |
| Unqualified | Not a good fit — wrong company, wrong person | After disqualification conversation |
| Bad Timing | Qualified but not ready to buy yet | After conversation — revisit in future |
| Connected | SDR has made first contact | After first meaningful conversation |
Consider adding: "Contacted — no response" (attempted outreach, awaiting reply) · "Nurture — revisit Q3" (timing issue, flag for future) · "Wrong person — find DM" (right company, need to find decision maker). Customise in Settings → Properties → Contacts → Lead status.
Every configuration decision an admin makes when setting up Lifecycle Stages — with the exact path in HubSpot.
- Enable Deal auto-set for Opportunity — Settings → Objects → Deals → scroll to "Lifecycle stage" → enable "Automatically set associated contact and company lifecycle stage to 'Opportunity' when a deal is created." This removes a major manual burden from AEs.
- Enable Deal auto-set for Customer — Same settings page → enable "Automatically set associated contact and company lifecycle stage to 'Customer' when a deal is closed won." Test this in your sandbox with a test deal before enabling in production.
- Define MQL criteria jointly with Marketing and Sales — This is a business conversation, not a technical task. Facilitate a joint session (see MQL section below). Document the agreed criteria in writing before building anything.
- Build the MQL promotion workflow — Automation → Workflows → Create workflow → Contact-based. Set the enrolment trigger to your agreed MQL criteria. Actions: set Lifecycle Stage = MQL, set Lead Status = New, notify assigned SDR, create follow-up task.
- Build the Customer post-close workflow — Enrolment: associated Deal stage = Closed Won. Actions: set Lead Status = Open Deal, enrol in onboarding sequence, notify CS team, create onboarding task.
- Customise Lead Status options — Settings → Properties → Contacts → Lead status → edit the dropdown options. Add options relevant to your sales motion. Remove options nobody uses.
- Create date-stamp custom properties — For each key stage (MQL, SQL, Customer), create a custom Date property on Contact: "MQL Date," "SQL Date," "Customer Date." Build workflows that stamp these when stages are entered. (See Date-stamp section.)
- Build the "blank Lifecycle Stage" monitor list — Active list: Lifecycle Stage is unknown. Review weekly. Any contact without a stage is invisible to your funnel reports. Fix by importing with a default or building a catch-all workflow.
- Sync Lifecycle Stage to Companies — Build a workflow: when Contact Lifecycle Stage = Customer AND associated Company Lifecycle Stage ≠ Customer → set Company Lifecycle Stage = Customer. Keeps your account-level data accurate.
The most important admin configuration — and the one that requires Marketing and Sales to agree before you build anything.
When an interviewer asks "how do you configure Lifecycle Stages?" — the answer that separates senior admins from juniors is: "Before I build any workflow, I facilitate a joint MQL definition session with Marketing and Sales. I document the agreed criteria and get sign-off from both sides before writing a single workflow action." This signals RevOps thinking, not just technical execution.
The MQL SLA document — what you produce as admin
The MQL definition is where Marketing and Sales alignment is tested. If Sales constantly rejects MQLs, the criteria are too loose. If MQLs pile up ignored, Sales doesn't trust them. As admin, you don't just build the workflow — you facilitate the negotiation, document the agreement, and build the feedback loop. This is the operational governance work that separates a CRM admin from a RevOps practitioner.
Every admin building a Lifecycle Stage system needs these five workflows — in this order.
- Set Lifecycle Stage = Marketing Qualified Lead
- Set Lead Status = New
- Notify deal owner via email: "New MQL — {{contact.firstname}} at {{contact.company}}"
- Create task for owner: "Review and accept/reject MQL — due in 4 hours"
- Set MQL Date = Today (custom date property)
- Set Lifecycle Stage = Sales Qualified Lead
- Set SQL Date = Today
- Notify SDR manager: "SQL created — {{contact.firstname}}"
- Set Lifecycle Stage = Customer
- Set Customer Date = Today
- Set Lead Status = Open Deal
- Enrol in onboarding email sequence
- Create task for CS owner: "Begin onboarding — {{contact.firstname}}"
- Notify CS Slack channel with deal value and contact details
- Notify SDR manager: "MQL unreviewed for 24h — {{contact.firstname}}"
- Create urgent task for SDR manager: "Review stale MQL immediately"
- Set Lifecycle Stage = Lead (default — no stage = treat as Lead)
- Set Lead Status = New
The RevOps superpower that turns Lifecycle Stage into a full funnel velocity reporting system.
Lifecycle Stage shows you the current stage. It doesn't show you when a contact entered each stage. Without date-stamp properties, you cannot calculate average MQL-to-SQL time, average SQL-to-Customer time, or sales cycle length — the core RevOps metrics every CEO asks for.
| Property name | Field type | What it captures | Set by |
|---|---|---|---|
| Lead Date | Date picker | When the contact first became a Lead | Workflow: on Lifecycle Stage → Lead |
| MQL Date | Date picker | When the contact was promoted to MQL | Workflow: on Lifecycle Stage → MQL |
| SQL Date | Date picker | When Sales accepted the lead as SQL | Workflow: on Lifecycle Stage → SQL |
| Opportunity Date | Date picker | When a Deal was created (Opportunity stage) | Workflow: on Deal creation |
| Customer Date | Date picker | When the contact became a Customer | Workflow: on Deal Closed Won |
With these properties, you can build reports: "Average days from MQL Date to SQL Date" → your Marketing-to-Sales handoff speed. "Average days from SQL Date to Customer Date" → your sales cycle. These are executive-level metrics that prove the RevOps function's value.
A real contact's complete lifecycle — every stage, every trigger, every owner, from first touch to signed contract.
-
SSubscriberSarah Khan subscribes to the SaaS Insights blog. HubSpot creates a Contact record and auto-sets Lifecycle Stage = Subscriber. Marketing owns her — she's in long-form nurture content drip.Day 1 · Auto-set on blog subscribe form
-
LLeadSarah downloads the "2024 B2B SaaS Buyer's Guide" — a gated asset requiring a form fill. HubSpot auto-sets Lifecycle Stage = Lead. She's now in a lead nurture workflow: 3 emails over 14 days.Day 8 · Auto-set on form submission
-
MMarketing Qualified Lead (MQL)Sarah opens 4 emails, visits the pricing page twice, and her lead score reaches 55. The MQL workflow fires: Lifecycle = MQL, Lead Status = New, SDR Naveed is notified with a task to review within 4 hours. MQL Date is stamped: Day 14.Day 14 · Workflow-set on lead score threshold
-
SQLSales Qualified Lead (SQL)Naveed calls Sarah. She confirms: budget ($12k approved), she's the VP of Operations (decision maker), they need a solution by Q1, and her current process is a clear pain. Naveed accepts the MQL. Lifecycle = SQL, SQL Date stamped. Lead Status → In Progress.Day 17 · Rep-set after qualification call
-
OppOpportunityAE James creates a Deal: "TechCorp — Pro Plan | $12,000 | Close: 45 days." HubSpot auto-sets Lifecycle Stage = Opportunity because the Deal is associated to Sarah's Contact. Opportunity Date stamped. The Deal enters the pipeline at Prospecting stage.Day 19 · Auto-set when Deal is created
-
CustCustomerSarah signs the Quote via HubSpot. James marks the Deal as Closed Won. HubSpot auto-sets Lifecycle Stage = Customer. Customer Date stamped. The Customer workflow fires: CS team notified, onboarding sequence starts, Sarah is added to [SUPPRESS] Customers list — no more prospecting emails ever. Total sales cycle: 17 days from MQL.Day 34 · Auto-set on Deal Closed Won
A B2B software company's marketing team was generating 120 MQLs per month and feeling great about it. But the Sales Director complained that "these leads are useless." SDRs were rejecting 85 of the 120 MQLs every month — 71% rejection rate. Marketing said Sales was being picky. Sales said Marketing had no idea what a good lead looked like. The HubSpot admin had built the MQL workflow based on a single criteria: lead score ≥ 30. That was it.
- 1.Admin facilitated a joint workshop with CMO and VP of Sales. Reviewed the last 6 months of closed-won contacts — what did they have in common? Industry (SaaS/FinTech), job title (VP+), company size (50+ employees), and they had either visited pricing or requested a demo.
- 2.Rebuilt MQL criteria: Lead Score ≥ 45 AND (Industry = SaaS OR FinTech) AND Job Title contains (VP OR Director OR C-level) AND (visited pricing page OR requested demo). Also required Company Employees ≥ 50.
- 3.Added a "MQL Rejection Reason" custom dropdown property on Contact. When an SDR rejects an MQL, they must select a reason: Wrong Industry, Wrong Seniority, No Budget, Bad Timing, Already a Customer. Made it a required field on rejection.
- 4.Built a monthly report: MQL rejection reasons by count. Shared with Marketing every first Monday. Both teams review together and adjust criteria quarterly.
MQL volume dropped from 120 to 38 per month. MQL acceptance rate jumped from 29% to 84%. Sales stopped complaining. Marketing stopped producing vanity metrics. The CMO initially pushed back on "fewer MQLs" — until the data showed MQL-to-Customer conversion went from 4% to 22%. Fewer, better leads outperformed more, worse ones by every measure.
An e-commerce SaaS company ran a "Free trial — last chance" campaign targeted at leads who hadn't converted. The email copy: "You're missing out — start your free trial today." A customer who had been paying $800/month for 8 months received it. They replied to the account manager: "Are we not considered a customer? Should we be looking at your competitor?" The deal auto-renewal was at risk. Investigation found: the campaign used a list filtered only on Lead Score < 60. Lifecycle Stage was never checked. The customer's lifecycle stage had never been set to Customer — the Deal close workflow wasn't enabled.
- 1.Enabled Deal auto-set in Settings → Objects → Deals. All future closed-won deals now automatically set contact to Customer. Ran a one-time import to retroactively set Customer stage for all 200+ contacts with associated Closed Won deals.
- 2.Created [SUPPRESS] Current customers — active list filtering Lifecycle Stage = Customer. Applied to every existing and future campaign as a mandatory exclusion.
- 3.Added a campaign pre-send checklist to the team's process: every email send over 100 contacts must have a Suppression List review by admin before scheduling.
- 4.Built a data quality monitor — active list: "Has associated Closed Won deal AND Lifecycle ≠ Customer." Found 47 more contacts in the same situation. Fixed all of them within 24 hours.
Zero suppression errors in the following 10 months. The pre-send review process caught three more errors before they went out. The at-risk renewal was saved — the customer received a personal apology from the CSM and renewed. The admin's data quality monitor list is now reviewed every Monday morning.
- 01 — Building MQL workflow before defining criteriaBuilding a workflow based on a guess at what MQL means leads to Sales rejecting most leads and losing trust in marketing data. Fix: document the agreed criteria with both teams before writing a single workflow action. Get written sign-off.
- 02 — Confusing Lifecycle Stage with Lead StatusTrying to track "Contacted — no response" as a Lifecycle Stage (impossible), or reporting on Lead Status as if it were a funnel milestone (wrong). Fix: Lifecycle Stage = funnel milestone. Lead Status = rep working status. Never use one for the other's purpose.
- 03 — Not enabling auto-set on Deal closeReps close deals and forget to update lifecycle stage. 40 contacts sit as SQL when they should be Customer. Suppression lists don't fire. Fix: enable Settings → Objects → Deals → auto-set lifecycle stage. Test in sandbox first.
- 04 — Leaving Lifecycle Stage blank on new contacts60% of contacts have no stage. Every funnel report is wildly inaccurate. Fix: build a catchall workflow (Lifecycle Stage is unknown → set to Lead) AND set defaults in import templates.
- 05 — Never building date-stamp propertiesYou can report current stage count, but not velocity — how long contacts spend at each stage. CEO asks "what's our MQL-to-Customer time?" and you have no answer. Fix: build date-stamp properties from day one. Retroactive repair is painful.
- 06 — Not moving contacts backward after lost dealsA lost deal leaves the contact at Opportunity or SQL — excluded from all lead nurture workflows. They're never re-engaged. Fix: when a deal closes lost, build a workflow that evaluates re-nurture eligibility and moves the contact back to Lead or MQL with appropriate reason logged.
- 07 — Not syncing lifecycle stage to Company recordsContact = Customer, Company = Lead. Account-level reporting is wrong. ABM targeting is broken. Fix: build a workflow that syncs Contact lifecycle stage to the associated Company record when it changes to Customer.
- 📋Document your MQL definition in writing — create a living document both Marketing and Sales reference. Paste the criteria into every related workflow's description field. Revisit quarterly.
- 🕒Always date-stamp stage entries — MQL Date, SQL Date, Customer Date properties + workflows. These unlock velocity reporting and sales cycle analysis — the metrics executives actually care about.
- 🔗Sync lifecycle stage to Companies — don't leave Company lifecycle stages out of sync with their Contacts. Build the sync workflow from day one.
- 🚫Build suppression before your first send — [SUPPRESS] Customers active list should exist before any campaign goes out. Make it a non-negotiable part of every campaign setup checklist.
- 📊Build the funnel dashboard immediately — Leads, MQLs, SQLs, Opportunities, Customers — all with month-over-month tracking. This gives stakeholders immediate visibility and justifies the admin function's value.
- 🔄Build the lost deal re-nurture workflow — when a deal closes lost, evaluate whether the contact should return to Lead for nurture. A lost deal isn't a lost contact forever — many buy 6–18 months later.
- 📅Run monthly lifecycle audits — check: blank stage count, Customer count vs Closed Won deal count (should match), MQL-to-SQL conversion rate. These three numbers tell you if your system is healthy.
Do this in your free HubSpot sandbox — approximately 45 minutes.
- Enable Deal auto-set — Settings → Objects → Deals → enable auto-set for both Opportunity and Customer. This is your first step in any real implementation.
- Create 5 test contacts — give each a different lifecycle stage manually: Subscriber, Lead, MQL, SQL, Customer. Note how each looks in the record view.
- Create date-stamp custom properties — Settings → Properties → Contacts → Create property. Create "MQL Date" (Date picker type). Repeat for "SQL Date" and "Customer Date." Put them all in a new group called "Funnel Dates."
- Build the MQL promotion workflow — Automation → Workflows. Enrolment: Lead Score ≥ 5 (low for testing). Actions: (1) Set Lifecycle Stage = MQL, (2) Set Lead Status = New, (3) Set MQL Date = Today, (4) Create task for owner. Save and activate.
- Trigger the workflow — Go to one of your Lead contacts. Manually set their Lead Score to 10. Wait 5 minutes. Watch: their stage should change to MQL, a task should be created, and MQL Date should be stamped.
- Test the Deal auto-set — Create a Deal for your MQL contact. Does Lifecycle Stage automatically change to Opportunity? If yes, the setting is working. Move the Deal to Closed Won — does the contact become Customer?
- Build the Customer suppression list — Active list: Lifecycle Stage = Customer. Name it [SUPPRESS] Current customers. Verify your Customer test contact appears in it.
- Build the blank stage monitor — Active list: Lifecycle Stage is unknown. Any contact in this list needs fixing. In a real portal, this list should trend toward zero.
| Concept | Key point |
|---|---|
| What is it | A funnel milestone property — tracks a contact's big-picture position from Subscriber to Customer |
| The 7 stages | Subscriber → Lead → MQL → SQL → Opportunity → Customer → Evangelist |
| Fixed options | Cannot add, remove, or rename — all 7 are permanent HubSpot options |
| Forward-only default | Auto-moves forward only — backward moves require manual action or explicit workflow logic |
| Auto-set: form submit | Blank contact submits any HubSpot form → auto-set to Lead |
| Auto-set: Deal created | Deal associated to contact → auto-set to Opportunity (must enable in Settings) |
| Auto-set: Deal closed won | Deal closes won → auto-set to Customer (must enable in Settings) |
| vs Lead Status | Lifecycle Stage = funnel chapter. Lead Status = rep's daily working state. Never confuse them. |
| MQL definition | Agreed criteria between Marketing and Sales — documented, signed off, reviewed quarterly |
| Date-stamp properties | MQL Date, SQL Date, Customer Date — enables velocity reporting and sales cycle analysis |
| Most critical workflow | Customer promotion on Deal close — with suppression list update as first action |
| Suppression rule | Customer = immediate suppression from all prospecting. Build [SUPPRESS] Customers before first send. |
| Company sync | Build workflow to sync Contact lifecycle stage changes to associated Company records |
| RevOps metric | MQL→SQL conversion rate = the primary marketing-sales alignment health indicator |
| Admin interview gold | "Before building, I facilitate a joint MQL definition session and document the agreed criteria with sign-off from both teams." |
Lifecycle Stages are the revenue reporting backbone. Every funnel metric — lead volume, MQL rate, MQL-to-SQL conversion, SQL-to-close rate, average sales cycle — depends on stages being accurate. Bad stage data means wrong decisions at the executive level. As a RevOps admin, you treat stage governance as a weekly operational responsibility: monitor blank stages, verify auto-set workflows are firing, review conversion rates, and facilitate the Marketing-Sales SLA conversation every quarter. This is the work that makes the CRM a reliable business intelligence tool rather than just a digital rolodex.