How to Resolve: Salesforce “Global Search” not returning recently added Records

When records are newly inserted or updated via the user interface, data imports, or API integrations, users expect them to appear in the Global Search bar immediately. If Global Search returns zero results for an exact record name, the cause is typically search index processing lag, restrictive Search Layout settings, tab visibility configurations, or sharing rules that hide the record from the user's view.

Fast Fix

Verify whether the record opens directly via its URL. If it does, check whether the target object's Tab is set to "Default On" for the user's Profile in Setup. Global Search excludes custom objects from standard multi-object searches if the object does not have an active, visible tab assigned to the searching user.


Diagnostic Snapshot

  • Symptom: Exact record name or ID entered into the Global Search bar yields "No results found," even though the record exists in the database.
  • Underlying Architecture: Salesforce Object Search Language (SOSL) asynchronous search indexing engine.
  • Common Causes: Asynchronous search index processing delays, missing custom object tabs, Search Layout restrictions, or user sharing limits.
  • Permissions Needed: System Administrator access to inspect Object Manager, Profile Tab Settings, and Sharing Rules.

How Salesforce Global Search Indexes Records

Salesforce does not run live SQL database queries when you use the Global Search bar. Instead, it uses a dedicated search engine powered by SOSL:

  1. When a record is created or updated, the database transaction saves the data immediately.
  2. The platform places an indexing request into an asynchronous search queue.
  3. A background process extracts the text, breaks it into searchable tokens, and adds them to the search index.
  4. Under normal conditions, indexing takes seconds. However, during high-volume data operations (such as Bulk API loads or heavy trigger activity), indexing jobs can queue behind large batches.

If a record was created 30 seconds ago during a data migration of 50,000 records, the database has saved it, but the search index has not yet read it.


Diagnostic Path

Record Not Found in Global Search
 ├── Can the user view the record using a direct URL?
 │    ├── No ──► Issue is Record Sharing / Security (OWD, Sharing Rules)
 │    └── Yes ──► Issue is Search Configuration or Indexing
 ├── Is the record an instance of a Custom Object?
 │    ├── Check Tab Settings: Is the object tab set to "Default On"?
 │    └── Check Object Definition: Is "Allow Search" enabled?
 └── Was the record created via Bulk API or Data Import?
      └── Allow time for background search indexing queues to clear

Step-by-Step Resolution

1. Confirm Object Searchability in Object Manager

If a custom object was created without enabling search, records created under that object will never appear in Global Search.

  1. Go to Setup > Object Manager.
  2. Select the custom object.
  3. Click Edit in the Object Details section.
  4. Scroll to Optional Features.
  5. Check the box for Allow Search.
  6. Click Save.

2. Verify Tab Visibility for User Profiles

Even if "Allow Search" is checked, Salesforce prioritizes search results for objects that users actively work with. If an object does not have an active custom tab, or if the tab is set to Tab Hidden, the global search engine suppresses the object from returning general results.

  1. In Setup, search for Profiles and select the profile of the affected user.
  2. Scroll down to Custom Tab Settings.
  3. Locate the target object:
    • Tab Hidden: The object will not appear in search results.
    • Default Off: The user must explicitly click "Search all objects" or pin the object in the search results sidebar.
    • Default On: The object is fully indexed and prioritized in standard Global Search.
  4. Change the setting to Default On and save.

3. Check Search Layouts and Display Fields

If a record appears in search results, but the primary identifier column is blank or hidden, users often mistake this for a missing record.

  1. In Object Manager, open the target object.
  2. Click Search Layouts.
  3. Click Edit on the layout assigned to the default profile (or the relevant Search Results layout).
  4. Ensure the primary identifying field (such as Name or CaseNumber) is in the Selected Fields list and positioned as the first column.
  5. Save the layout.

4. Audit Search Terms, Wildcards, and CJK Characters

Salesforce search operates using specific tokenization rules:

  • Minimum Length: Search strings must contain at least two characters. Single alphanumeric characters do not trigger indexing lookups.
  • Stop Words: Common English words (e.g., and, the, to) are discarded by the search engine unless enclosed in exact-phrase quotation marks ("The Example").
  • Punctuation: Searches containing hyphens, underscores, or periods may break tokens unpredictably. Use wildcards () to match partial strings (e.g., Acme*).

5. Rule Out Record-Level Sharing and Security

Global Search enforces strict record-level security. If a user does not have read access to a record, the search engine silently removes it from their results.

  • Check your Organization-Wide Defaults (OWD): If the object is set to Private, confirm whether a Sharing Rule, Role Hierarchy inheritance, or Manual Share grants the user access.
  • To test, log in as a System Administrator and search for the record. If the Administrator finds the record but the standard user cannot, the issue is data sharing, not the search index.

Common Misdiagnoses

  • Search Index Lag vs. Database Sync Failure: If a third-party integration claims to have inserted records, but neither Global Search nor direct SOQL queries find the record, the transaction failed before reaching Salesforce. Check integration logs for integrity faults using Fix: Salesforce "Field Integrity Exception" during Data Import.
  • Enterprise High-Volume Index Corruption: In extremely large enterprise orgs (millions of records), high-volume data churn can occasionally corrupt an object's search partition. If search fails across all users for all records on a specific object, review Fix: "Search Index" corruption in High-Volume CRM Environments.

Hard Stops

  • Do not repeatedly edit and re-save records to force indexing during large data migrations. Doing so creates additional database transactions and triggers that compound CPU limits and further delay the background indexing queue. Allow scheduled bulk jobs to finish completely before diagnosing missing search results.