To find unused fields in Salesforce, count how many records hold a value in each field with a SOQL query, then check what references the field with Where is this used. A field is unused only when both checks come back empty.
Clientell AI, the AI Salesforce admin, scans your org read-only and returns a ranked list of fields nothing uses, with what references each one. Start with the free Salesforce health check. This guide shows how to do the same job by hand.
Does Salesforce have a built-in unused fields report?
No. Salesforce Help states that Salesforce does not include a built-in report on field usage and populate rate. It points admins to AppExchange apps with "field usage" or "field adoption" in the name (Salesforce Help, 22-06-2026).
You have three native signals instead:
| Signal | Where to look | What it tells you |
|---|---|---|
| Fill count | A SOQL query | How many records hold a value |
| References | Where is this used? on the field page | Which reports, layouts and code point at the field |
| Last change | The FieldDefinition object | When someone last edited the field's setup |
No single signal is enough. Use all three.
How do I count how many records fill a field?
Run an aggregate SOQL query (the Salesforce query language). COUNT(field) counts only records where the field is not null. COUNT(Id) counts every record.
SELECT COUNT(Region__c) filled, COUNT(Id) total
FROM Account
If filled is 0, no record holds a value. If it is a small share of total, the field is a candidate. Run this in the Developer Console Query Editor, Workbench or sf data query.
Three traps to know:
- Checkbox fields are never null. A checkbox is true or false, so
COUNTshows every record as filled. Count the true values instead:SELECT COUNT(Id) FROM Account WHERE Active__c = true. - Formula fields cannot be counted this way. Check what references them instead.
- Old data skews the count. A field filled on 40,000 records from 2019 and none since is stale. Add a date filter to the count:
WHERE CreatedDate = LAST_N_DAYS:365. Salesforce supportsLAST_N_DAYSas a date literal in SOQL.
To list the custom fields on an object first, query FieldDefinition:
SELECT QualifiedApiName, DataType, LastModifiedDate
FROM FieldDefinition
WHERE EntityDefinition.QualifiedApiName = 'Account'
AND QualifiedApiName LIKE '%__c'
LastModifiedDate shows when the field's setup last changed. It does not show when data last changed in it.
How do I check what references a field?
Open Setup, then Object Manager, then the object, then Fields and Relationships, then the field. Click Where is this used?. Salesforce lists the components that reference the field, such as page layouts, reports, flows, formula fields and Apex.
This list is a start, not proof. It can miss references in some places. The next guide covers what it misses and how to query the same data with the Tooling API: Salesforce dependency analysis.
Also check the places no list covers:
- Integrations. An outside system may write to the field through the API. Ask the owners of each connected app.
- Reports. Search report columns and filters for the field's label.
- Email templates and merge fields. These can use the field by name.
- Field-level security. If no profile or permission set can see the field, nobody can fill it by hand. That makes the fill count read low.
How do I use Field History to see if anyone still edits a field?
Field History Tracking records changes to a field, but only if it was turned on for that field. If it was on, query the history object. For a custom field on Account:
SELECT Field, COUNT(Id)
FROM AccountHistory
WHERE CreatedDate = LAST_N_DAYS:365
GROUP BY Field
For a custom object, the history object is named ObjectName__History. If a field has no history rows in a year and its fill count is flat, it has stopped changing. If tracking was never on, this query returns nothing, and that tells you nothing about the field.
What evidence should I have before I delete a field?
Salesforce's own Trailhead advice is to validate and retire fields created more than about 6 months ago that no reporting, integration or automation references (Trailhead, Data Cleanup Fundamentals). Turn that into a checklist:
| Evidence | Pass looks like |
|---|---|
| Fill count | Zero, or a very low share, and no recent writes |
| Where is this used? | No references, or only references you also plan to remove |
| Integration owners | Each one confirms the field is not used |
| Report search | No report column or filter uses it |
| Field age | Created more than 6 months ago |
| Business owner | A named person agrees |
A low fill rate alone does not make a field safe. A field filled once a month by an integration can show a 2% fill rate and still run a month-end process.
How do I retire a field safely?
Retire in steps. Each step is easy to undo. Delete last.
- Hide it. Remove the field from page layouts and Lightning record pages. Users stop seeing it, and nothing is lost.
- Remove access. Turn off field-level security on every profile and permission set. Users and integrations that rely on their own permissions lose access, which flushes out hidden dependencies.
- Wait through one full business cycle. A month-end close catches the jobs that run once a month. Watch your integration error logs.
- Export the data. Run a Data Export or a SOQL export of
Idand the field. Keep the file. - Try the delete in a sandbox first. Fix every error it raises. Fields that others reference block the delete.
- Delete in production. Setup, Object Manager, the field, Delete.
Salesforce keeps a deleted custom field for 15 days. During that time you can find it under Deleted Fields on the object's Fields and Relationships page, and undelete it. After 15 days it is erased for good, with its data (Salesforce Ben, how to restore deleted fields). A restored field can lose settings such as required or unique, and you re-add it to layouts by hand. Treat the 15 days as a safety net, not a plan.
What can go wrong, and how do I undo it?
| What breaks | Why | Undo |
|---|---|---|
| An integration fails | It wrote to the field | Undelete within 15 days, or restore FLS (step 2) |
| A report shows blanks | The report used the field | Rebuild the report from your export |
| A flow errors out | The flow read the field | Fix the flow, then restore the field if needed |
| Data is gone | The 15 days passed | Import from the export you took in step 4 |
Why does the field limit matter for cleanup?
Each object has a cap on custom fields. Salesforce's limits tables list 500 custom fields per object in Enterprise Edition and 800 in Unlimited and Performance Editions (Salesforce Limits and Allocations). Check the current table for your edition.
How do I check my org for unused fields in Clientell AI?
The safe order is a read-only scan first, you approve every change, sandbox first, rollback ready. See privacy and security.
Try it in Clientell AI: "Scan my org in read-only mode and list the custom fields nothing uses, with the reports, flows and page layouts that would break if I deleted each one."
Start the 14-day trial, no card needed. Or run the free, read-only health check. For a wider look at what else to remove, read the org cleanup tool checklist.
FAQ: common questions about finding unused fields in Salesforce
How do I find fields with no data in Salesforce?
Run SELECT COUNT(Field__c), COUNT(Id) FROM Object in SOQL. If the first number is 0, no record holds a value. Checkbox fields always count as filled, so count the true values instead.
Is an empty field safe to delete?
Not by itself. A report, flow, Apex class or integration may still point at it. Check Where is this used? and ask the integration owners before you delete.
Can I get back a field I deleted?
Yes, for 15 days. Open Deleted Fields on the object's Fields and Relationships page and undelete it. After 15 days the field and its data are erased.
How many custom fields can an object have?
500 in Enterprise Edition and 800 in Unlimited and Performance Editions, per Salesforce's limits tables. Check the current table for your edition.
Is there an app that reports field usage?
Yes. Salesforce points admins to AppExchange apps for field usage, and several third-party tools scan fill rates and references. Compare what each one reads before you connect it.
Sources for this guide on unused Salesforce fields
- Salesforce Help, How to Report on Field Usage and Populate Rate (22-06-2026)
- Trailhead, Clean Up Unused Fields and Field Configuration
- Salesforce Limits and Allocations (PDF)
- Salesforce Ben, How to restore deleted Salesforce fields
Last updated: October 9, 2026