Naveed Abbas profile photo
Naveed Abbas
CRM Administrator
HubSpot Admin · Module 5

Lead
Status

The sales activity layer of your CRM — how to configure, govern, and extract maximum pipeline value from this fully-customisable contact property.

7 default options Fully customisable Bad timing re-engagement Disqualification reasons 3 case studies 4 key workflows
Foundation · 01
What Is Lead Status?

A Contact property that tracks the sales team's day-to-day working state with a lead — from first contact to conversion or disqualification.

Core definition

Lead Status is a customisable dropdown property on Contact records that tells you what the sales team is currently doing with a lead. While Lifecycle Stage tells you the big-picture funnel milestone (which chapter), Lead Status tells you what's happening right now (which page). It is owned and managed by the sales team — reps update it as they work their leads.

Why the sales team needs it

Sales questionHow Lead Status answers it
Which leads have my reps actually worked?Filter: Lead Status ≠ New
Which leads are sitting untouched?Filter: Lead Status = New AND Create Date > 48h
Which reps are most active right now?Count Lead Status changes by owner this week
Why aren't MQLs converting to SQLs?Report on Unqualified + Bad Timing reason breakdown
What future pipeline is sitting in Bad Timing?Count Bad Timing × avg conversion rate × ACV
Which leads should I resurrect next quarter?Active list: Lead Status = Bad Timing AND Follow-up Date = this month
Foundation · 02
Lead Status vs Lifecycle Stage

The most important distinction in HubSpot contact tracking. These two properties serve completely different purposes.

Lead StatusLifecycle Stage
PurposeSales working state — what the rep is doing todayFunnel milestone — how far the contact has come
AnalogyThe current page of the bookThe chapter of the book
Used bySales team onlyAll teams — Marketing, Sales, CS
Options7 defaults + fully customisable7 fixed — cannot add or rename
DirectionAny direction, any time — no restrictionsForward by default — backward needs explicit logic
DrivesRep activity reports, coaching, disqualification analysisFunnel reports, MQL/SQL counts, conversion rates
Who sets itReps + workflowsWorkflows + automation (with rep input on SQL)
Syncs to Company?NoYes — via workflow
The analogy that makes it permanent

Lifecycle Stage = the chapter of the book. Lead Status = what's happening on the current page. A contact can be in the SQL chapter while their Lead Status is "In Progress" (rep is actively calling) or "Bad Timing" (spoken to them, right fit, not ready). The chapter doesn't change — only the page does. Never use Lead Status for funnel milestone reporting, and never use Lifecycle Stage for rep activity tracking.

Foundation · 03
All 7 Default Options

Click each status to see the full definition, who sets it, when to use it, and admin notes — including perspective from your SDR background.

Foundation · 04
System Logic

Five rules that govern how HubSpot handles Lead Status — know these before building any automation.

RuleWhat it meansAdmin implication
Any direction, any timeLead Status has no direction enforcement. New → Bad Timing → New → In Progress — all valid.No safety net. A careless rep can overwrite important statuses. Build required Reason properties to capture context before status changes.
Fully customisableYou can add, remove, and rename any option at any time.Never delete an option that has contacts assigned — it blanks those contacts' Lead Status. Archive instead.
Does not sync to Lifecycle StageChanging Lead Status has no automatic effect on Lifecycle Stage and vice versa.You connect them via workflows. Build explicit automation to bridge them (e.g. deal created → Lead Status = Open Deal).
Contact property onlyLead Status lives on Contact records. It does not exist on Deal or Company records.When a Deal moves through pipeline stages, you must build a workflow to update the associated Contact's Lead Status if needed.
No history protectionEvery change overwrites the previous value. No forward-only protection exists.Use property history logs for auditing. Build required Reason fields to capture context at the point of change, not after.
Admin Setup · 05
Custom Options to Add

The default 7 cover the basics — but most real sales teams need more granularity to capture their actual process.

OptionWhen to use itWhy it's valuable
Contacted — no responseOutreach attempted (call/email) but no reply yetDistinguishes "actively trying" from "haven't started." Shows reps who are running cadences vs sitting on leads.
Meeting bookedDemo or discovery call is scheduled but hasn't happened yetMilestone before meeting completion. Enables no-show re-engagement workflows.
Wrong person — find DMRight company, but speaking to the wrong contactTells the next rep exactly what to do: find the decision maker. Better than leaving it In Progress.
Referral givenContact referred the rep to the right person at their companyTracks referral activity. Trigger follow-up task for the referred contact.
Closed lost — nurtureDeal closed lost but contact is worth nurturing for futureDifferent from Unqualified. These people could return — enrol them in a long-term nurture sequence.
Sequence enrolledContact is in an active email sequenceFilter "who is currently in a sequence" — prevents reps from manually emailing someone already receiving automated sequences.
Admin rule — less is more

Keep total Lead Status options under 12. More options = less adoption. If you have 18 options, reps either pick randomly or always pick the same 3. Run a quarterly usage report: any option with fewer than 5% of contacts assigned should be reviewed — either retrain the team on it or remove it.

Admin Setup · 06
Step-by-Step Setup
Path in HubSpot

Settings → Properties → Contacts → Search "Lead status" → Click to edit options

  1. Export current distribution — Before editing, check how many contacts are at each current option. Go to Contacts → filter by Lead Status = each value → note the counts. This prevents accidentally removing a status 300 contacts are using.
  2. Review default options — Decide which defaults to keep, which to rename, and which to remove. "Open" is commonly unused — if your team skips it, remove it to reduce noise.
  3. Add custom options — Click "Add option." Name it clearly. Set display order: active outreach options first (New, In Progress, Connected), then exit options last (Unqualified, Bad Timing). This ordering guides rep behaviour.
  4. Set a default value — In the property settings, set "New" as the default value. Every contact created manually or imported without a Lead Status will start at New automatically.
  5. Update MQL workflow — In your MQL promotion workflow, add: Set Lead Status = New. This ensures every MQL lands in the SDR queue as a fresh, unreviewed contact.
  6. Build Open Deal automation — Workflow: Deal is created AND associated Contact exists → Set Contact Lead Status = Open Deal. This removes a manual step reps consistently forget.
  7. Create the Reason property — Create a custom dropdown: "Lead Status Reason." See the Disqualification Reason section below for the full option list.
  8. Create Follow-up Date property — Custom Date picker property on Contact: "Lead Status Follow-up Date." Reps fill this when setting Bad Timing. The re-engagement workflow uses it as a trigger.
  9. Build the Bad Timing re-engagement workflow — This is the most valuable setup step. See the Workflows section for full details.
Admin Setup · 07
Disqualification Reason Property

The diagnostic data that improves your entire upstream process — most companies don't build this. Those that do see compounding returns.

Why this matters

Setting a contact to Unqualified or Bad Timing without capturing why is like a doctor discharging a patient without writing a diagnosis. You lose the data that would improve your lead generation targeting, your MQL criteria, and your content strategy. This one property, collected consistently over 6 months, drives more strategic improvement than almost any other admin initiative.

Recommended option list by category

Wrong fit
Wrong industry Wrong company size Wrong geography Wrong product fit
Wrong person
Not decision maker Wrong department No referral possible
Budget / authority
No budget this year Budget too small Budget already committed
Timing
Starting next quarter Post merger / acquisition Just signed with competitor
Engagement
Ghosted — no response (6+ attempts) Asked not to be contacted Duplicate contact
What to do with this data

Build a monthly report: count of Unqualified contacts by Lead Status Reason, segmented by Lead Source. If the top reason is "Wrong industry" from leads that came via Google Ads → your ad targeting is wrong. If it's "No budget" → add budget confirmation to your MQL criteria or your forms. This feedback loop makes your entire demand generation engine smarter over time.

Admin Setup · 08
Key Workflows to Build

Four workflows that every portal with a sales team needs — in priority order.

Workflow 1 — MQL arrival (highest priority)
Enrolment trigger: Lifecycle Stage = Marketing Qualified Lead AND Lead Status is unknown (first time entering MQL)
  • Set Lead Status = New
  • Notify assigned SDR: "New MQL — {{contact.firstname}} at {{contact.company}}"
  • Create task for owner: "Review this MQL — due in 4 hours"
Workflow 2 — Open Deal auto-set
Enrolment trigger: Deal is created AND associated Contact is known
  • Set associated Contact Lead Status = Open Deal
Workflow 3 — Stale lead alert (rep accountability)
Enrolment trigger: Lead Status = New AND Create Date is more than 2 business days ago
  • Create urgent task for owner: "MQL sitting at New for 48h — review immediately"
  • Notify SDR manager via email
Workflow 4 — Bad Timing re-engagement (highest ROI)
Enrolment trigger: Lead Status = Bad Timing AND Lead Status Follow-up Date = today
  • Set Lead Status = New
  • Clear Lead Status Follow-up Date
  • Notify owner: "Time to re-engage — {{contact.firstname}} at {{contact.company}}. You marked them as Bad Timing on {{lead_status_follow_up_date_original}}."
  • Create task: "Re-engagement call — {{contact.firstname}}"
Build these in order

Workflow 1 is highest operational priority — every MQL must land in a rep's queue. Workflow 4 is highest ROI — it generates revenue from leads most teams forget. Build both in your first week of any new HubSpot setup.

Applied Learning · 09
Real-World Example

How a complete Lead Status system transformed a sales team's pipeline visibility and created a re-engagement revenue engine.

The situation

A 15-person B2B SaaS company was generating 80 MQLs per month. Sales was complaining leads were garbage. Marketing said sales wasn't working them. Neither had data. Lead Status was being used — but with no custom options, no disqualification reasons, and no automation. Every dead lead was just "Unqualified" with no further context.

What the admin built

  • 📋
    Added 5 custom options: "Contacted — no response," "Meeting booked," "Wrong person — find DM," "Closed lost — revisit," and "Sequence enrolled"
  • 🔢
    Created "Lead Status Reason" dropdown with 12 specific disqualification options across 4 categories
  • 📅
    Created "Lead Status Follow-up Date" date property — reps required to fill when setting Bad Timing
  • ⚙️
    Built all 4 workflows above: MQL arrival, Open Deal auto-set, Stale lead alert, and Bad Timing re-engagement
  • 📊
    Built a Lead Status dashboard: contacts by status per rep, stale New count, Bad Timing pipeline forecast, and Disqualification Reason breakdown

Results after 3 months

MetricBeforeAfter
Avg time from MQL to first outreach3.2 days6 hours
MQLs sitting unreviewed at any time40+ contacts0–3 contacts
Disqualification reason dataNone12 specific reasons tracked
Bad Timing contacts re-engaged/month0 (manually impossible)23 automatically
Revenue from re-engaged Bad Timing$0~$50k ARR/month
Marketing's top ad targeting fixUnknown"Wrong industry" = 41% of Unqualified → fixed Google Ads audience
Applied Learning · 10
Three Case Studies
📊
Case 1 — The In Progress graveyard
When reps use In Progress as a permanent parking spot
Rep accountabilityB2B SaaS
Problem
Solution
Outcome
The problem

A sales manager noticed their pipeline was stagnant. Looking at the CRM, 240 contacts had been sitting at Lead Status = In Progress for more than 30 days. Reps were calling them "active" but in reality, most hadn't been touched in weeks. Nobody wanted to move leads to Unqualified because it looked like they were failing to convert. The sales manager had no visibility into which reps were actually working their queue vs using "In Progress" as a comfort blanket.

  • ⚙️
    Admin built a workflow: Lead Status = In Progress AND Last Activity Date > 14 days → Create urgent task for owner: "This lead has been In Progress for 14 days with no activity. Review and update status today." → Notify manager.
  • 📊
    Built a "Stale In Progress" dashboard widget: count of contacts per rep that have been In Progress 14+ days with no logged activity. Updated daily. Visible to the sales manager.
  • 📋
    Added "Contacted — no response" as a new Lead Status option. Now reps had a honest place for leads they were genuinely trying to reach but getting no reply — without the psychological weight of "Unqualified."
  • 🗓️
    Added a weekly 15-minute "pipeline hygiene" task to every rep's recurring tasks: review all In Progress leads and update statuses. This normalised honest status reporting.
RevOps outcome

Within 6 weeks, the 240 stale In Progress contacts were resolved: 60 moved to Connected after re-engagement, 80 moved to Bad Timing with follow-up dates, 70 moved to Unqualified (honest disqualification), and 30 moved to "Contacted — no response" (genuine attempts with no reply). The pipeline became accurate. The sales manager could finally trust the data and coach reps on real issues rather than chasing ghost leads.

🔄
Case 2 — The Bad Timing pipeline machine
Building a systematic re-engagement loop from scratch
Re-engagementAgency
Problem
Solution
Outcome
The problem

A 30-person digital agency was generating strong pipeline from inbound, but the VP of Sales noticed that about 35% of qualified leads were being marked Bad Timing and then forgotten forever. Reps would tell contacts "I'll follow up in Q3" but then never do — because there was no system to remind them. The agency estimated it had "forgotten" $800k+ in potential ARR from qualified leads over the past 18 months.

  • 📅
    Created "Lead Status Follow-up Date" custom Date property. Made it visible in the contact sidebar. Added it to the default view alongside Lead Status.
  • ⚙️
    Built Bad Timing re-engagement workflow (Workflow 4 above). When Lead Status = Bad Timing AND Follow-up Date = today → reset to New, notify owner, create task.
  • 📊
    Built a "Bad Timing forecast" report: count of contacts with Lead Status = Bad Timing by follow-up month × average historical conversion rate × average ACV = projected future pipeline per month. Shared in the monthly exec review.
  • 🔔
    Added validation: when a rep sets Lead Status = Bad Timing, a workflow creates a task: "Fill in Follow-up Date for {{contact.firstname}} — Bad Timing contacts without a follow-up date will be automatically re-engaged in 90 days." This ensured the date was always set.
RevOps outcome

In the first 6 months after implementation: 180 Bad Timing contacts were automatically re-engaged by the workflow. Of those, 34 (19%) converted to SQL. 12 (35% of SQL) became customers. Average ACV $18k → $216k in revenue directly attributed to the re-engagement system. The VP of Sales called it "the best ROI of any admin project we've ever done." The system required zero rep effort after setup.

🔍
Case 3 — Disqualification data transforms marketing spend
When Lead Status Reason data reveals a broken lead gen strategy
Disqualification analysisB2B Tech
Problem
Solution
Outcome
The problem

A B2B technology company was spending $45k per month on Google Ads generating 150 MQLs. Sales was accepting only 30 (20% acceptance rate) and closing 5 per month. The CMO and VP of Sales were in constant conflict — CMO claimed volume was strong, VP claimed quality was terrible. They had been arguing about it for 6 months with no resolution because there was no objective data on why 120 MQLs per month were being rejected.

  • 📋
    Admin built Lead Status Reason property with 12 specific options. Required field via workflow task when Lead Status = Unqualified or Bad Timing.
  • ⚙️
    Added "Lead Source" as a cross-dimension in the disqualification report. Now could see disqualification reasons broken down by where the lead came from.
  • 📊
    After 30 days of data: built the disqualification report. Shared it in a joint Marketing-Sales monthly review.
RevOps outcome

The data was decisive. 62% of disqualified leads from Google Ads had "Wrong industry" as their reason. Investigation revealed a broad keyword strategy was pulling in B2C companies and non-target verticals. The CMO immediately restructured the Google Ads campaigns: tighter keyword targeting, industry exclusions, negative keyword lists. Within 60 days: MQL volume dropped from 150 to 70, but acceptance rate jumped from 20% to 58%. SQL count actually increased from 30 to 41 per month with half the unqualified leads. Ad spend efficiency nearly doubled. The CMO and VP of Sales stopped fighting. The argument was resolved with data.

Applied Learning · 11
Common Admin Mistakes
  • 01 — Using Lead Status for funnel reporting
    Lead Status = In Progress doesn't tell you about pipeline health — it tells you about rep workload. Reporting on Lead Status as a funnel metric confuses activity with progression. Use Lifecycle Stage for funnel analysis. Use Lead Status for rep activity analysis.
  • 02 — Not capturing disqualification reasons
    Setting Unqualified or Bad Timing with no reason loses your most valuable diagnostic data. Fix: build the Lead Status Reason property and make it required via a task workflow that fires on these transitions.
  • 03 — Letting In Progress become a parking lot
    Leads that stay In Progress for 30+ days are either being ignored or the rep is avoiding a difficult disqualification decision. Fix: build the 14-day stale In Progress alert workflow. Normalise honest disqualification.
  • 04 — Not automating Open Deal status
    Relying on reps to manually set Lead Status = Open Deal when they create a deal results in 30–50% of contacts never getting updated. The data becomes unreliable. Fix: build the workflow. Always.
  • 05 — Deleting a Lead Status option instead of archiving
    Deleting a Lead Status option removes the value from every contact who had it set — replacing their status with blank. Their Lead Status history is lost and any workflows referencing that option break silently. Fix: always archive, never delete.
  • 06 — Creating too many Lead Status options
    18 options means reps pick the first three they see or the same one every time. Data quality drops to near-zero. Fix: start with 8–10 options maximum. Quarterly review: remove options with less than 5% adoption.
  • 07 — Forgetting to build the Bad Timing loop
    Bad Timing contacts without a re-engagement system are forgotten pipeline. Every one of them was a qualified lead who just wasn't ready. Without automation, they never come back. Fix: Workflow 4 is non-negotiable. Build it in every HubSpot setup.
Applied Learning · 12
Admin Best Practices
  • 🔄
    Build the Bad Timing re-engagement loop as standard. Every HubSpot setup you do, this workflow goes in. It is the highest-ROI single automation in a sales CRM.
  • 📊
    Report on Lead Status transition velocity. How many days does a contact spend at New before moving to In Progress? Average days at In Progress before Connected? These benchmarks identify process bottlenecks and individual rep patterns worth coaching.
  • 🔍
    Use disqualification data as a coaching tool. A rep with mostly "Wrong industry" in their Unqualified reasons is getting bad leads. A rep with mostly "Ghosted" is not running enough touchpoints. The data tells the coaching story.
  • 📋
    Align options with your actual sales motion. An inbound-only team may not need "Open" or even "New" the way an outbound SDR team does. Customise to reflect how your team actually works, not how an imaginary team works.
  • 🗓️
    Quarterly Lead Status audit. Review usage counts per option. Remove or retrain on options with less than 5% adoption. Review whether new options are needed based on rep feedback.
  • 🔔
    Make the SDR manager's alerts automatic. A weekly "stale MQL" summary email, auto-generated by HubSpot workflow, that shows the manager which reps have the most uncovered New contacts is a simple admin build with significant operational impact.
Applied Learning · 13
Practice Exercise

Do this in your free HubSpot sandbox — approximately 40 minutes.

  1. Review default Lead Status options — Settings → Properties → Contacts → search "lead status." Look at the 7 defaults. Note which you'd keep, rename, or remove for a typical B2B sales team.
  2. Add 3 custom options — Add: "Contacted — no response," "Meeting booked," and "Wrong person — find DM." Set them in a logical display order after the defaults.
  3. Create the Reason property — New dropdown property: "Lead Status Reason." Add 8 options across 3 categories (wrong fit, budget, timing). Put it in a new group called "Sales Tracking."
  4. Create the Follow-up Date property — New Date picker property: "Lead Status Follow-up Date." Put it in the same "Sales Tracking" group.
  5. Build the Bad Timing workflow — Contact-based workflow. Enrolment: Lead Status = Bad Timing AND Follow-up Date = today. Actions: Set Lead Status = New, clear Follow-up Date, create task for owner. Activate on 5 test contacts. Set one's Follow-up Date to today and watch it fire.
  6. Build the Stale New alert — Contact-based workflow. Enrolment: Lead Status = New AND Create Date is more than 2 days ago. Action: create task "Stale MQL — review and update status." Test with a contact you created 3 days ago.
  7. Build the Lead Status dashboard — Contacts → Create a saved filter for Lead Status = each value. Note the counts. Build a simple "contacts by Lead Status" bar chart report. This is the rep activity view your sales manager needs.
Applied Learning · 14
Interview Questions
"How does Lead Status differ from Lifecycle Stage, and when would you use each?"
Lifecycle Stage tracks the big-picture funnel milestone — it's shared across Marketing, Sales, and CS and drives all cross-functional reporting. Lead Status is a sales-specific working state — it tells a rep what action they're currently taking with a contact. Lifecycle Stage has seven fixed options and moves forward by default; Lead Status is fully customisable and can move any direction. The analogy: Lifecycle Stage is the chapter of the book, Lead Status is the current page. I'd report on pipeline health and MQL-to-customer conversion using Lifecycle Stage. I'd report on rep activity, disqualification patterns, and outreach velocity using Lead Status. They work together — neither replaces the other.
"What is the Bad Timing status and why do you consider it strategically important?"
Bad Timing means the contact is genuinely qualified — right fit, right seniority, real need — but the timing is wrong right now. Maybe they just signed a contract, are in a budget freeze, or are going through an acquisition. The strategic value is that these are warm leads who already know you. They will be ready in the future — and when that future arrives, a competitor could reach them first. My approach is to build a re-engagement workflow using a "Follow-up Date" custom property. When a rep sets Bad Timing, they fill the date. On that date, the workflow resets Lead Status to New and notifies the owner. Done consistently, Bad Timing contacts become one of the most reliable pipeline sources — I've seen this generate 15–25% of monthly new pipeline at companies with good CRM hygiene. Most teams leave this completely untapped.
"A sales manager says they have no visibility into what reps are doing with their MQLs. How do you solve it in HubSpot?"
First, I'd audit the current Lead Status setup: are options aligned with the actual sales process, are reps actually updating them, and is there a default set on new contacts? Then I'd build four things. One: an MQL arrival workflow that auto-sets Lead Status to New and creates a review task for the rep — so every MQL is acknowledged. Two: a stale New alert workflow that fires if a contact sits at New for more than 48 hours without being touched, notifying the manager. Three: a disqualification reason property so every Unqualified or Bad Timing contact has a logged reason — this turns "garbage leads" complaints into structured data. Four: a Lead Status activity dashboard showing contacts by status per rep, average days at New, and disqualification reason distribution. Within 30 days the manager would have full activity visibility and could make data-driven coaching decisions.
"You want to remove a Lead Status option that nobody seems to use. What's the right process?"
Never delete — always archive. Deleting a Lead Status option removes the value from every contact currently assigned to it, replacing their status with blank and breaking any active workflows or lists referencing that option. The right process: first, filter contacts by that Lead Status value and note the count. If there are contacts there, decide what their status should be updated to and bulk-update them before archiving. Check all active workflows for any branches or triggers that reference that option and update or remove them. Then archive the option in the property settings — it disappears from the dropdown but the historical data is preserved. Finally, document the change in your admin changelog so future admins understand why it was removed.
Applied Learning · 15
Summary Cheatsheet
ConceptKey point
What is itA customisable Contact property tracking the sales team's day-to-day working state with a lead
vs Lifecycle StageLead Status = current page. Lifecycle Stage = chapter. Never confuse them.
DirectionAny direction, any time — no forward-only protection
CustomisableFully — add, remove, rename via Settings → Properties → Contacts → Lead status
NewUntouched lead. Auto-set by MQL workflow. Monitor for 48h+ inactivity.
In ProgressActive outreach underway. Key rep activity metric. Alert if stale 14+ days.
ConnectedFirst real two-way conversation. Conversion rate from here = qualifying conversation quality.
UnqualifiedWrong fit — always capture the reason. Data drives ICP refinement.
Bad TimingRight fit, wrong timing — build re-engagement automation. This is free future pipeline.
Open DealDeal created — automate via workflow. Never rely on rep manual update.
Critical custom optionsContacted — no response · Meeting booked · Wrong person — find DM
Disqualification ReasonRequired custom property when Unqualified/Bad Timing. Monthly report drives upstream improvements.
Follow-up DateCustom date property reps fill with Bad Timing. Re-engagement workflow fires on this date.
Highest ROI workflowBad Timing + Follow-up Date → auto-reset to New. Generates 15–25% of pipeline at well-run companies.
Admin interview gold"I build Bad Timing re-engagement loops as standard. It consistently generates revenue from leads most teams forget entirely."
Never do thisDelete a Lead Status option — always archive. Deletion destroys historical data on contacts.
RevOps mindset on Lead Status

Lead Status is the activity data layer of your CRM. It enables three things Lifecycle Stage cannot: rep accountability reporting (who is working their queue?), disqualification analysis (why are leads failing, and what does that tell marketing?), and future pipeline prediction (Bad Timing contacts with known re-engagement dates = quantifiable projected revenue). Companies that build this system seriously — with custom options, disqualification reasons, and re-engagement automation — consistently outperform those that treat Lead Status as a simple dropdown they fill in manually. The difference is not the property itself — it's the system built around it.