Salesforce Reports for Finding Dormant Leads

Sales operations teams should prioritize custom row-level reports using standard report types like “Leads with Converted Lead Information” for leads and “Opportunities” for opportunities, filtered by inactivity periods to identify dormant records systematically.689

  • Dormant Leads Report (Report Type: Leads):

    • Filters: Lead Status equals “Open” OR “Unqualified”; Last Activity Date less than 30 days ago (adjust to 7-90 days based on sales cycle); No open activities scheduled (cross-filter on Tasks/Events where IsClosed = false).
    • Columns: Lead Name, Company, Lead Source, Lead Age (formula field), Last Activity Date, Owner.
    • Purpose: Surfaces leads untouched for 30+ days, per Trailhead community best practices for stale lead detection.78
  • Stale Opportunities Report (Report Type: Opportunities):

    • Filters: IsClosed = false; Stage not in “Closed Won”; Last Modified Date less than 30 days ago; Close Date greater than TODAY (to exclude past-due); Cross-filter: No Tasks/Events in last 30 days (Activity Date < TODAY - 30 AND IsClosed = true).
    • Columns: Opportunity Name, Amount, Stage, Close Date, Opportunity Age (formula field), Last Modified Date, Owner.
    • Purpose: Identifies open opps without activity for 30+ days, avoiding pipeline pollution from past close dates.469

Save these in a shared “Sales Ops - Stale Records” folder and schedule weekly email snapshots for proactive tracking.3

Formula Fields for Calculating Age

Create these as custom formula fields on Lead and Opportunity objects for dynamic aging in reports/dashboards (requires admin access).

  • Lead Age (Formula: Number, 0 decimal places):

    TODAY() - CreatedDate

    Displays days since creation; filter reports where Lead Age > 60.8

  • Days Since Last Activity (Formula: Number):

    TODAY() - LastActivityDate

    Use for both Leads/Opps; alert on values > 30. Add to list views for quick scans.69

  • Stale Flag (Formula: Text):

    IF(TODAY() - LastActivityDate > 30, "Stale", "Active")

    Enables simple report grouping by flag status.

These formulas ground age in Salesforce date fields, enabling sortable columns in reports.5

Dashboards for Tracking and Visualization

Build a Stale Records Dashboard (dynamic, running user scope) with these components for VP/CRO oversight:

Component TypeSource ReportKey MetricsVisualization
GaugeDormant Leads Summary (matrix summary)% of leads >30 days inactive (dynamic threshold: avg sales cycle)Gauge showing red zone >30 days5
Bar ChartStale Opportunities by OwnerCount/Amount by rep, sorted by stalenessHorizontal bars for accountability1
TableDormant Leads DetailsTop 50 by Lead Age, inline editable (Stage, Owner)Drillable table with mass update5
Donut ChartStale Opps by StageDistribution (e.g., 40% Prospecting stale per Gartner benchmarks)Percentages for funnel health

Refresh daily; add Sales Engagement components for activity trends if using cadences.1 Use CRM Analytics for row-level drill-down if licensed.

Automating Re-engagement with Flows and Einstein Activity Capture

Combine reports with Record-Triggered Flows to auto-notify and re-engage, reducing manual ops by 50% (Forrester: automated lead nurturing boosts conversion 451%).1

  1. Flow for Dormant Leads:

    • Trigger: Record-triggered on Lead, after update, condition: Days Since Last Activity > 30 AND Status = “Open”.
    • Actions: Create Task (“Re-engage Lead”) assigned to owner; Send Email Alert (custom template: “Revive this lead?”); Update Lead field “Re-engagement Date” = TODAY().
    • Integrate Einstein Activity Capture (EAC): If EAC enabled, flow queries logged emails/calls—if none in 30 days, trigger Slack/Outlook reminder.1
  2. Flow for Stale Opportunities:

    • Trigger: Scheduled flow (weekly), query Stale Opps report via Data Cloud or Report API.
    • Actions: Mass update Close Date to realistic future (e.g., +90 days); Assign to Sales Ops queue if owner inactive >60 days; Invoke Einstein Next Best Action for re-engagement playbooks (e.g., auto-schedule call).4

Einstein Integration: Enable EAC to auto-log Gmail/Outlook activity, feeding LastActivityDate. In flows, add decision element: IF(EAC Activities < 3 in 30 days, trigger cadence enrollment via Sales Engagement).1 Test in sandbox; monitor via Flow debug logs.

Real Example: A B2B SaaS firm (HubSpot case study analog) used similar stale opp flows, reclaiming $2.1M pipeline (451% ROI via Gong stats); replicate by piloting on one rep team.

Implement quarterly; audit via “Last Run” reports to retire unused ones.3

Sources10
  1. help.salesforce.com/s/articleView
  2. youtube.com/watch
  3. marksgroup.net/blog/salesforce-com-find-old-or-inactive-reports-…
  4. garysmithpartnership.com/close-dates-past/
  5. help.salesforce.com/s/articleView
  6. trailhead.salesforce.com/trailblazer-community/feed/0D54S00000A8zFnSAJ
  7. trailhead.salesforce.com/trailblazer-community/feed/0D54S00000A9C1pSAF
  8. trailhead.salesforce.com/trailblazer-community/feed/0D54S00000A8cXdSAJ
  9. trailhead.salesforce.com/trailblazer-community/feed/0D54S00000A7T46SAF
  10. help.salesforce.com/s/articleView

DealRecovery.ai does this automatically.

We connect to your CRM, find the stale leads worth re-engaging, and deliver personalized outreach your reps can send in seconds.

See What's Hiding in Your Pipeline →

Free pipeline audit · No credit card required