DeadAccount.ai
Salesforce6 min read·

How to Find Dead Accounts in Salesforce (Step-by-Step)

A practical step-by-step guide to finding and cleaning dead accounts in Salesforce. Includes SOQL queries for stale accounts, orphaned records, and duplicates.


Quick Answer

To find dead accounts in Salesforce: run a stale activity report filtering for Last Activity Date ≤ 365 days ago, use SOQL to pull accounts with open opportunities but no recent activity, identify orphaned accounts with no contacts or opportunities, and check for duplicates by sorting on Account Name. For territories over 100 accounts, this process requires automation to be sustainable.

Stale account data in Salesforce doesn't just look bad in reports — it costs you real money. Pipeline gets inflated by opportunities attached to companies that no longer exist. AEs waste outreach effort on accounts that were acquired two years ago. Territory coverage looks balanced on paper but is hollow underneath.

Here's a practical, step-by-step process to find and remediate dead accounts in Salesforce, including SOQL queries you can use today.

Step 1: Run a Stale Activity Report

The fastest first pass is a report on Account records with no related Activity in the past 12 months. In Salesforce, create a report using the Accounts with Activities report type, add a filter for Last Activity Date less than or equal to 365 days ago, and also include accounts where Last Activity Date equals null (these are often orphaned records that were created and never touched).

This gives you a working list. Export it as a CSV.

Step 2: Use SOQL for a More Precise Pull

If you have access to the Developer Console or a tool like Workbench, this SOQL query pulls accounts with no activity in the past year and at least one open opportunity:

SELECT Id, Name, Website, LastActivityDate, OwnerId
FROM Account
WHERE LastActivityDate < LAST_N_DAYS:365
AND Id IN (
  SELECT AccountId FROM Opportunity
  WHERE IsClosed = false
)

These are your highest-risk records — open opportunities attached to accounts no one has touched in over a year.

Step 3: Check Account Record Type and Status Fields

Many Salesforce orgs have a custom Account Status or Account Type field. If yours does, filter for accounts marked as Active or Customer that haven't had activity in 12+ months. The mismatch between status and behavior is a reliable signal of data decay.

If your org doesn't have a status field, this is also a good time to add one as part of your cleanup initiative.

Step 4: Identify Orphaned Accounts

Orphaned accounts — records with no contacts, no opportunities, and no activity — are pure noise. They come from data imports, list buys, and integrations that pushed records without associated data.

Use this SOQL to find them:

SELECT Id, Name, CreatedDate, OwnerId
FROM Account
WHERE Id NOT IN (SELECT AccountId FROM Contact)
AND Id NOT IN (SELECT AccountId FROM Opportunity)
AND LastActivityDate = null

Step 5: Check Duplicate Accounts

Salesforce has a Duplicate Management feature under Setup, but its default matching rules only catch exact matches. For a more effective pass, export your Account Name and Website fields to a spreadsheet and run a fuzzy sort — accounts with very similar names but different IDs are your duplicate candidates.

Common patterns: one record has 'Inc.' at the end, one doesn't. One was created by an AE manually, one was pushed in by a marketing integration. Both have separate opportunity histories.

Duplicates are especially dangerous in Salesforce because they split attribution — a deal closed on one record doesn't show up in reports filtered by the other.

Step 6: Validate the High-Value Accounts

For your top accounts by ACV or pipeline value, manual validation is worth the effort. Check:

  • Does the company's website load and appear current?
  • Is the company still active on LinkedIn?
  • Has there been a recent acquisition or funding event?
  • Is the HQ address in your territory, or has the company moved?

For enterprise accounts, this 20-minute check can save a full quarter of misdirected effort.

The Scale Problem

The process above is thorough. It's also slow. At 200+ accounts, running manual checks alongside your actual selling responsibilities is not realistic. The research alone — domain checks, LinkedIn, news, duplicate matching — takes hours you don't have.

DeadAccount.ai automates every step in this process. Upload your Salesforce account export as a CSV, and the system runs domain health checks, M&A and funding signal detection, duplicate identification, and HQ change detection across your entire list. You get a prioritized output — which accounts to work now, which to update, and which to remove — in minutes.

Stop working dead accounts.

Try it on your first 20 Salesforce accounts for $7 at deadaccount.ai. Upload a CSV export — no Salesforce integration setup required.

Get started — $7/mo →