Salesforce Optimizer is scheduled for retirement as of Winter ’26. See Optimizer App Retirement for details.
Analysis Use Cases
Insecure Default External Access Levels
From Setup, navigate to Security > Sharing Settings. In the Organization-Wide Defaults section, review the Default External Access column. Entries set to Public Read-Only or Public Read/Write should be considered insecure for external access.
See also Salesforce Security Health Check (from Setup, navigate to Security > Health Check), a tool that highlights common security misconfigurations.
Pending Release Updates
To see pending release updates, from Setup, navigate to Release Updates.
Data Storage Limits
To monitor storage limits, from Setup, navigate to Data > Storage Usage.
For a more detailed explanation of how Salesforce groups and calculates storage for various kinds of data, see Data and Storage Resources in the Salesforce online help.
Obsolete API Versions
Artifacts, such as Apex classes, Visualforce pages, Lightning web components, and so on are versioned, which binds them to a specific implementation version of Salesforce. Binding to older versions can be a maintenance issue, especially when features are upgraded or retired. To review the API versions of various Salesforce artifacts in Setup, see Check for API Versions in the Salesforce online help.
You can also review API versions for your Salesforce artifacts using SOQL. See Query for API Versions in the next section.
Query for API Versions
Here are SOQL queries for listing active Apex classes, Apex triggers, and Visualforce pages sorted by API version.
|
# Apex classes SELECT Id, Name, ApiVersion FROM ApexClass WHERE Status='Active' ORDER BY ApiVersion ASC # Apex triggers SELECT Id, Name, ApiVersion FROM ApexTrigger WHERE Status='Active' ORDER BY ApiVersion ASC # Visualforce pages SELECT Id, Name, ApiVersion FROM ApexPage WHERE Status='Active' ORDER BY ApiVersion ASC |
Finding other artifacts with older API versions follows the same pattern. All you need to change is the FROM clause.
Permission Sets with a Low Number of Users
Use the following SOQL query to find permission sets with 10 or fewer users.
|
SELECT PermissionSet.Name, PermissionSetId, count(AssigneeId) FROM PermissionSetAssignment WHERE Assignee.IsActive = true AND PermissionSet.IsOwnedByProfile = false GROUP BY PermissionSetId, PermissionSet.Name HAVING (count(AssigneeId) >= 1 AND count(AssigneeId) <= 10) ORDER BY count(AssigneeId) ASC |
Inactive Chatter Users
Tip: For extensive analysis options of your org’s Chatter usage, see the Salesforce Chatter Dashboards package on AppExchange.
Use the following SOQL query to find Chatter users that haven't been active in the last 30 days.
|
SELECT Id, ProfileId FROM User WHERE IsActive = true AND Id IN (SELECT ParentId FROM ChatterActivity WHERE SystemModstamp < LAST_N_DAYS:30) |
Most of the techniques described here require you to use various Salesforce APIs, primarily via SOQL queries, as well as the REST, SOAP, and Metadata APIs. The following resources can help you set up and use these APIs using a variety of tools of your choice.
There are a wide variety of ways to interact with Salesforce via APIs. You should feel free to choose any tool or tools that you’re comfortable using. If you’d like a little guidance, here are some suggestions.
Many of the techniques here make use of SOQL queries, and selecting a good tool for executing them is essential. Here are a few suggestions.
We provide guidance for using a few different tools to access REST API.
005167013

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.