Resources /
Blog

Salesforce List View Limitations: Filters, Search, and Workarounds

Submit your details to get a book

10
Min Read
Resources /
Blog

Salesforce List View Limitations: Filters, Search, and Workarounds

Download

Submit your details to get a book

10
Min Read

Salesforce list views have three limitations that account for most of the frustration they cause: List View Search reads only the first 2,000 records in the list, several common field types cannot be searched at all (formula, lookup, derived, and non-text fields such as number and currency), and those unsearchable fields can still be filtered and sorted even though search ignores them. That last distinction is the one that trips up most admins, because searching and filtering are separate systems with separate rules.

This guide covers what each limitation actually is, when it applies, and the workaround for each, so you can tell the difference between a list view behaving as designed and a list view that needs replacing with a report, a Flow, or a custom component.

Salesforce List View Limits at a Glance

Start here. Most support questions about list views resolve to one of these rows.

LimitationWhat actually happensApplies toWorkaround
List View Search scopeOnly the first 2,000 records in the list are searched. A matching record beyond that is not returnedAll list viewsRe-sort so the record falls inside the first 2,000, or tighten filters so the list is smaller
Unsearchable field typesFormula, lookup, derived and non-text fields (number, currency) are not searchable. They can still be filtered and sortedAll list viewsPlace the cursor in the search box to see the unsearchable field list; copy values into a standard text field if search is required
Formula field filteringSupported. But non-deterministic and cross-object formulas cannot be indexed, so filters on them are non-selective and slow on high-volume objectsReports and list viewsCopy the formula result into a standard indexed field and filter on that
Partial-string matchingSearch only matches from the start of a value or after a space. Partial terms are supported only on record name fieldsAll list viewsSearch from the beginning of a word, or use Global Search
Person AccountsList view search is not supported, and filter criteria cannot be used on Person Account recordsPerson AccountsUse Global Search or a report
External objectsList views on external objects cannot be searchedExternal objectsQuery the source system directly
Spell correctionApplied automatically, so a search for Parish also returns ParisAll list viewsSurround the term in quotation marks to disable it
Single-object scopeA list view shows records from one object only and cannot join related records as rowsAll list viewsUse a report for related records, or a custom Lightning component
Inline editingFormula and roll-up summary fields are read-only. Fields are also locked by field-level security, validation rules and approval processesAll list viewsCheck field-level security, field type, then approval status. Use a data loading tool for bulk changes

Verified against Salesforce documentation, July 2026. Filter, display and mass-action record caps are not included here because they could not be verified; see the note in the update sheet.

Salesforce List View Filter Limits

Filters decide which records a list view returns. They are evaluated as part of the underlying query, which is why they behave differently from the search box sitting above them.

What you can filter. Most field types, including formula fields. This surprises people who have been told otherwise. You can build an Opportunities list view filtered on a formula field that scores deals, or a Cases list view filtered on a formula that flags a breached SLA, and Salesforce will return the right records.

Where it gets constrained. Filter performance, not filter availability. Salesforce’s query optimization guidance identifies non-deterministic formula fields and cross-object formula fields as index selectivity exceptions in both reports and list views. In practice that means a filter on those formula types cannot use an index, so on an object with millions of records the query does a far broader scan and the list view gets slow or times out. On a few thousand records you will not notice. On several million you will.

Other filter constraints worth knowing. Some list views have predefined filter scopes and cannot be filtered further, Recently Viewed being the common example. If the Filters panel shows Locked Filters, you do not have permission to edit that list view; clone it and filter the copy. And filter criteria cannot be used on Person Account records.

Filter logic. By default multiple filters combine with AND. Filter logic lets you write expressions such as (1 AND 2) OR 3 to build more precise conditions, which is usually a better answer than adding more filters.

The workaround. If a formula filter is slow on a high-volume object, copy the formula result into a standard indexed field and filter on that instead. The workarounds section below covers how.

Salesforce List View Search Limitations

The search box inside a list view is not Global Search and does not behave like it. Global Search queries indexed records across your org. List View Search only looks inside the list view you are currently viewing, and it carries several restrictions that Salesforce documents explicitly.

It only searches the first 2,000 records

When you search a list view, only the first 2,000 records in that list are searched. If your Accounts list view holds 8,000 records and you search for one starting with Z, it will not be found, because that record sits outside the first 2,000.

The workaround: sort the list so the record you want falls inside the first 2,000 (sorting Account Name Z to A in the example above), or tighten the filters so the list itself is smaller. Both are Salesforce’s own documented answers. The broader point is that list views are not designed to find one specific record, and Global Search or a report is the better instrument when that is the goal.

Several field types cannot be searched

Formula fields, lookup fields, derived fields, and non-text fields such as number and currency are generally not searchable in a list view. This is where the confusion starts, because those same fields can still be filtered and sorted. Search ignores them; filters do not.

The workaround: place your cursor in the list view search box and Salesforce displays a tooltip listing exactly which fields are not searchable on that object. Check it before assuming your data is missing. If users genuinely need to search on a formula value, copy that value into a standard text field, which is searchable.

Partial-string matching is restricted

Search does not find partial strings unless the string starts the value or follows a space. Searching commun finds Edge Communications, but dge and cation find nothing. Partial search terms are only supported against record name field values.

The workaround: search from the beginning of a word, or use Global Search, which applies different matching rules.

Person Accounts and external objects

List view search is not supported for Person Accounts, and results returned for Person Account records may not match the list view filter criteria. External object list views cannot be searched at all.

The workaround: use Global Search or a report for Person Accounts. For external objects, query the source system.

Spell correction and translated values

Search applies spell correction automatically, so a search for Parish also returns results for Paris. Surround the term in quotation marks to switch that off. Separately, if your org runs a non-English UI with translated picklist or label values, search using the English term rather than the translated one.

Why Formula Fields Behave Differently in List Views

It is worth understanding why formula fields sit in this odd middle position, filterable but not searchable, because it explains several other list view behaviours at the same time.

Formula fields are not stored. They are instructions held in metadata and evaluated when a record is retrieved, which means there is no stored value sitting in a table for the search index to read. That is the direct reason search skips them. Filters work because filtering happens as part of the query itself, where the platform can evaluate the formula, at a cost.

The Technical Reality Behind the Restriction

That cost is the part worth planning around. Because a formula value is computed rather than stored, Salesforce cannot always use an index to narrow the result set before evaluating it. Its query optimization guidance names two specific cases as index selectivity exceptions in reports and list views: non-deterministic formula fields, and cross-object formula fields.

When a filter cannot be selective, the query examines a much larger share of the object before returning results. On a small object nothing visible happens. On an object with millions of rows the list view becomes slow, and in the worst cases it times out. Salesforce runs a multi-tenant platform, so unselective queries are throttled to protect everyone sharing the infrastructure.

The practical rule: filtering on a formula field is fine and supported. Filtering on a non-deterministic or cross-object formula on a high-volume object is where you should expect trouble and plan a workaround before users find it for you.

Common Scenarios Where This Comes Up

Sales teams build an Opportunity score blending amount, stage age and activity counts. The list view filter works, but on an org with millions of Opportunities the view crawls, and nobody can search the score value from the search box.

Support leaders flag Cases with a formula that identifies breached SLAs. Agents can filter to those Cases, but cannot type the flag value into list view search to pull them up quickly, because formula fields are not searchable.

Compliance teams use a text formula that outputs Non-Compliant when required fields are blank. Filtering works. Searching does not, and if the formula reaches across objects, the filter is unselective and slows down as the Account or Contact volume grows.

In each case the fix is the same shape: move the computed value into a real, indexed, searchable field.

5 Proven Workarounds

These five approaches solve both problems, making formula values searchable and making high-volume filters fast. Choose based on record volume, admin capacity, and how often the underlying logic changes.

1. Shadow (Copy) Fields Updated by Flow

A shadow field is a standard field holding a copy of the formula result. Because it is stored, it is indexable and searchable, which resolves both limitations at once.

  1. Create a field matching the formula’s data type (Text, Number, Date).
  2. Set field-level security so it is read-only for most profiles.
  3. Build an after-save Flow that runs on create and update.
  4. Add an assignment element copying the formula value into the shadow field.
  5. Activate the Flow.
  6. Backfill existing records with a metadata loader or a batch process.
  7. Ask Salesforce Support to index the field if volume warrants it, then build list views filtering on it.

Trade-offs: it consumes storage, needs maintenance whenever the formula logic changes, and drifts if the automation fails. Best when volumes are large and the formula logic is stable.

2. Switch to Report Filters

Reports use a different query engine and handle formula filtering comfortably, including across multiple formula fields at once.

  1. Create a new report on the relevant report type.
  2. Add the formula field to both Columns and Filters.
  3. Set the filter criteria, save, and add the report to a dashboard or embed it on a Lightning record page.

Trade-offs: no inline editing, users need report permissions, and very large data volumes can still be slow. Best when analysis and scheduled delivery matter more than editing records in place.

3. Custom Lightning Web Component

For teams with developer capacity, an LWC gives complete control over both filtering and search behaviour.

  1. Build the component and an Apex controller that constructs a dynamic SOQL query.
  2. Put the formula criteria directly in the WHERE clause.
  3. Render results with lightning-datatable and add inputs for user-set criteria.
  4. Surface it through Lightning App Builder and set component and class permissions.

Trade-offs: it needs developers, code review, tests, and ongoing maintenance across Salesforce releases. Best when the requirement is genuinely beyond standard interfaces.

4. Ad-Hoc SOQL Queries

For one-off checks, query directly and export the result. You can reference formula fields in a WHERE clause:

SOQL
SELECT Id, Name, Amount, StageName, Deal_Score__c
FROM Opportunity
WHERE Deal_Score__c > 75
  AND IsClosed = false
ORDER BY Deal_Score__c DESC

Trade-offs: no interface for business users and no repeatability. Best for audits, spot checks, and urgent pulls handled by an admin or developer.

5. Scheduled Flow or Batch Apex

The same idea as shadow fields, updated on a schedule rather than on every save, which suits values that do not need to be current to the second.

  1. Create a standard field to hold the calculated result.
  2. Build a Scheduled Flow that retrieves and updates the relevant records, or a Batch Apex class with a Schedulable wrapper.
  3. Set the frequency, run an initial population, and monitor the first few runs.

Trade-offs: values are only as fresh as the last run, it consumes processing capacity, and it needs failure monitoring. Best when real-time accuracy is not required and admin capacity is limited.

Other List View Limitations Worth Knowing

Three further constraints account for most of the remaining complaints about list views. None of them are bugs, and each has a standard answer.

List views show one object at a time

A list view is scoped to a single object. You cannot build one that shows Opportunities alongside their related Contacts, or Cases next to the Accounts they belong to, the way a joined report can. You can display fields from a parent record through formula or lookup fields on the object you are viewing, but the rows themselves always come from one object.

The workaround: use a report when you need related records side by side, or a custom Lightning component when users need to act on them in one place.

Inline editing does not work everywhere

Inline editing from a list view is convenient, and its exceptions are the source of a lot of confusion. Formula fields are calculated, so they are read-only by definition and can never be edited inline. Fields the user lacks edit access to are locked, as are fields controlled by a validation rule the pending change would break. Some field types and some list views do not support inline editing at all, and a record locked by an approval process is not editable from the list either.

The workaround: when a cell will not become editable, check field-level security first, then whether the field is a formula or roll-up summary, then whether the record is in an approval process. If bulk changes are the real goal, a data loading tool applies them more reliably than the list view.

Mass actions across mixed record types are limited

Selecting several records and updating them together works cleanly when they share a record type. When the selection spans record types with different picklist values or different page layouts, the available actions narrow to what all the selected records have in common, and picklist values valid for one record type may not be offered.

The workaround: add Record Type as a filter so each list view covers one record type, then run the mass update per view. It is an extra step, and it avoids the partial updates that mixed selections produce.

Best Practices for List View Workarounds

The technical fix is the easy part. These practices are what stop a useful workaround becoming a liability.

Documentation & Change Management

Keep a matrix listing every formula, its shadow field, the automation that maintains it, and the list views depending on it. Update it whenever a formula changes. Add help text, restrict field visibility, and make sure the next admin can tell a shadow field from a real one.

Testing & Validation

Validate in a full sandbox before deploying. Compare formula and shadow values with a report or a SOQL check, and write Apex tests asserting the two match after inserts and updates. After deployment, test the list view filters against edge-case records rather than assuming parity.

Maintenance & Scalability

Audit quarterly for drift between formulas and their copies. Request indexing on high-volume shadow fields. Monitor Flow error logs, update automation when formulas change, and account for storage growth as record counts rise, since every shadow field consumes space across every record.

Manage List View Workarounds with Salesforce DevOps

Every shadow field, Flow, and component added to work around a list view limitation is another piece of metadata that has to stay synchronized. Over time they accumulate, and when someone updates a formula without updating its shadow, values drift silently and users stop trusting the data. Traditional change sets give little visibility into these dependencies.

A version-controlled pipeline addresses this directly: keep fields, Flows, Apex and Lightning components in one repository, require review before changes ship, and run regression tests that compare formula values against their shadow copies on every deployment. When something breaks, roll back to a known good state rather than debugging in production.

Flosum provides Salesforce-native DevOps that keeps metadata inside the platform, with conflict detection that catches mismatched Flow updates before they reach production and rollback that restores shadow fields and their automation together. Request a demo to see how it handles the fields, Flows and components these workarounds depend on.

Frequently Asked Questions (FAQ)

What are the main Salesforce list view limitations?
The three that cause the most trouble are the search scope, unsearchable field types, and the difference between the two. List View Search reads only the first 2,000 records in the list. Formula, lookup, derived and non-text fields cannot be searched, though they can still be filtered and sorted. List views also cover a single object and restrict inline editing on calculated and permission-locked fields.
How many filters can a Salesforce list view have?
Salesforce supports multiple filter criteria on a list view, combined with AND by default, and filter logic lets you write expressions such as (1 AND 2) OR 3 for more precise conditions. Confirm the exact maximum for your edition in current Salesforce documentation, since limits change. In practice, complex requirements are usually better served by filter logic or a report than by adding more filters.
Why can’t I find a record using List View Search?
Most often because it sits beyond the first 2,000 records, which is all List View Search reads. It can also be because the value lives in an unsearchable field type, or because your term is a partial string that does not start the value or follow a space. Re-sort the list, tighten the filters, or use Global Search instead.
Does List View Search search every Salesforce record?
No. It searches only within the list view you are viewing, and only the first 2,000 records in it. It is not Global Search, which queries indexed records across the org. Salesforce notes that list views are not designed to find one specific record, so Global Search or a report is the better tool when that is your goal.
Why can’t I filter a Salesforce list view by a formula field?
In most cases you can. Formula fields are filterable and sortable in list views; it is search that ignores them. If a formula field is missing from the filter panel or the filter performs poorly, the likely cause is a non-deterministic or cross-object formula, which cannot be indexed and is therefore non-selective on large objects. Copying the value into a standard indexed field resolves it.
Which fields are not searchable in Salesforce list views?
Generally formula fields, lookup fields, derived fields, and non-text fields such as number and currency. The exact set varies by object. Place your cursor in the list view search box and Salesforce displays a tooltip listing which fields are not searchable for that object, which is faster than guessing.
How many records can a Salesforce list view display?
List views page through results rather than loading everything at once, and the number rendered depends on the object, the interface and your filters. The figure worth knowing is the search ceiling: regardless of how many records the list contains, List View Search only reads the first 2,000. Check your own list view for the count it reports.
How many records can I select from a list view?
Selection for mass actions is capped, and the practical limit depends on the action and the interface. A more common obstacle is record type: when your selection spans record types with different picklist values or layouts, the available actions narrow to what all selected records share. Filter by Record Type so each list covers one, then run the update per view.
Table Of Contents
Author
Stay Up-to-Date
Get flosum.com news in your inbox.

Thank you for subscribing