If you enabled "API client whitelisting" (a.k.a "API Access Control") in your org, SF Inspector may not work anymore.
To secure the extension usage, you can use a OAuth 2.0 flow to get an access token, linked to a connected app installed in your org.
- Open the extension and scroll down to the “Generate Access Token” button.
- You should see the “OAUTH_APP_BLOCKED” error which is normal at this stage.
- Go to “Connected Apps OAuth Usage” in setup and search for “Salesforce Inspector reloaded”.
- Click “Install” and then confirm installation.
- Now configure the profiles or permissions sets which will have the right to use the extension.
- Go back to “Connected Apps OAuth Usage” and click “Unblock” next to “Salesforce Inspector reloaded”
- Once again, open the extension and scroll down to the “Generate Access Token” button
This is it ! You can use the extension with the default connected app.
From now when the token will be expired, this banner will show up and provide a link to re-generate the access token
Warning Don't forget to grant access to the users by selecting the related profile(s) or permission set(s).
If you are a Firefox user, or if you want to have full control over the connected app settings, you can also use your own connected app by following these instructions:
-
Create a connected app under Setup | App Manager > New Connected App.
-
Set callback url to
chrome-extension://chromeExtensionId/data-export.html
(replacechromeExtensionId
by the actual ID of the extension in your web browser). Make sure the "Manage user data via APIs (api)" scope is selected. You can leave other settings to their default values.Warning Don't forget to replace "chromeExtensionId" with your current extension Id
-
Get Consumer Key and save it in the Options page
-
Enter the consumer key
-
Refresh page and generate new token
-
Open it in VS Code, you should have a JSON like this one:
[ { "query": "select Id from Contact limit 10", "useToolingApi": false }, { "query": "select Id from Account limit 10", "useToolingApi": false } ]
From there you have two options
Import the queries by adding a label for each one with the label in query property suffixed by ":" ie.
[ { "query": "Contacts:select Id from Contact limit 10", "useToolingApi": false }, { "query": "Accounts:select Id from Account limit 10", "useToolingApi": false } ]
Re-import this json in the new extension (with the same key insextSavedQueryHistory
)
Add a new property csvSeparator
containing the needed separator for CSV files
Add a new property disableQueryInputAutoFocus
with true
Enter value in "Query Templates" option with your custom queries separated by "//" character. Example:
SELECT Id FROM// SELECT Id FROM WHERE//SELECT Id FROM WHERE IN//SELECT Id FROM WHERE LIKE//SELECT Id FROM ORDER BY//SELECT ID FROM MYTEST__c//SELECT ID WHERE
If you want to always open extension's links in a new tab, you can set the openLinksInNewTab
property to true
If you want to open popup keyboard shortcuts, you can use the 'ctrl' (windows) or 'command' (mac) key with the corresponding key. Example:
- Data Export : e
- Data Import : i
- Org Limits : l
- Download Metadata : d
- Explore API : x
- Event Monitor : m
- Field Creator : f
By default when you enter keyword in the Shortcut tab, the search is performed on the Setup link shortcuts AND metadata (Flows, PermissionSets and Profiles). If you want to disable the search on the metadata, update related option:
Go on a Salesforce flow and check / uncheck the checbox to update navigation scrollability on the Flow Builder
Because one of the main use case for custom links is to refer to a record in your org, those links are stored under a property prefixed by the org host url.
You can find the value by checking the property _isSandbox
Then copy the url and add _orgLinks
for the property name.
Now you can enter the custom links following this convention:
[
{
"label": "Test myLink",
"link": "/lightning/setup/SetupOneHome/home",
"section": "Custom",
"prod": false
},
{
"label": "EnhancedProfiles",
"section": "Custom",
"link": "/lightning/setup/EnhancedProfiles/home",
"prod": false
}
]
ET VOILA !
Since Winter 24, there is a beta functionality to view a summary of the PermissionSet / PermissionSetGroups
You can enable this view for the Shortcut search by enabling the option as shown below.
Then when you click on a PermissionSet / PermissionSetGroups search result, you'll be redirected to the summary.
Customize Create / Update rest callout headers (to prevent execution of auto assignment rules for Accounts, Cases, or Leads)
From the popup, click on "Options" button and select the API tab.
If you want to prevent auto assignment rules, set the createUpdateRestCalloutHeaders
property to {"Sforce-Auto-Assign" : false}
Since the plugin's api version is only updated when all productions have been updated to the new release, you may want to use the latest version during preview windows.
Important
When you manually update the API version, it won't be overridden by extension future updates.
To make your life easier and avoid third party tools or login to ELF website, we implemented the download option from the data export page. When quering EventLogFile, add the "LogFile" field in the query and click on the value to download corresponding log.
Sometimes you may want to enable logs for a particular user. From User tab, click the "Enable Log" button.
By default, this will enable logs with level "SFDC_DevConsole" for 15 minutes.
You can update the debug level (configuration is per organization) and duration (for all organizations) on the Options page.
Warning Increasing the default duration may lead to a high volume of logs generated.
To enable performance metrics for queries on the data export page, open the Options screen and select the Data Export tab, then set "Display Query Execution Time" to enabled. Total time for the query to process and, when applicable, batch stats (Total Number of Batches, Min/Max/Avg Batch Time) are displayed.
Warning
DEPRECATED : Since you can use Data Export to test GraphQL and also REST Explore to run the request, this should not be useful anymore.
- Open popup and click on "Explore API" button.
- Right click on the page and select "Inspect"
- Execute the code in dev console:
var myQuery = { "query": "query accounts { uiapi { query { Account { edges { node { Id Name { value } } } } } } }" };
display(sfConn.rest("/services/data/v59.0/graphql", {method: "POST", body: myQuery}));
From the option page, you can customize the default favicon by:
- a predefined color name among those values or any HTML color code you want (ie
#FF8C00
). - a custom favicon url (ie "https://stackoverflow.com/favicon.ico")
The customization is linked to the org, it means you can have different colors for DEV and UAT env for example.
Now if you want to populate all the orgs you visited with a custom favicon, you have two options:
- Smart mode enabled: this will analyze your environment name and populate a favicon based on this (blue for dev, green for int, purple for uat and orange for full)
- Random: this will choose a random color among all the predefined colors
Then you click on Populate All and that's it! Note: orgs with an existing customized favicon won't be affected.
From the option page, enable "Use favicon color on sandbox banner"
This functionality already exists in the legacy version but since many users don't know about it, I would like to document it.
When on the export page, put the cursor between SaELECT
and FROM
and press Ctrl + space
for inserting all fields (if you don't have the rights for a particular field, it wont' be added).
If you want to insert only custom fields, enter __c
between SELECT
and FROM
.
You can exclude formula fields to be included in the autocomplete by disable the toogle
Navigate to chrome://extensions/shortcut and choose dedicated shortcuts for the pages you want.
After running a query in the "Data Export" page, you can hide additional columns in the query results. These columns represent the name of the objects included in your query. They are useful to automatically map the fields to the correct object in the "Data Import" page. The columns are hidden in the exported files (CSV or Excel) as well. You can set a default value, using the 'Hide additionnal Object Name Columns by default on Data Export' option ("Options" -> "Data Export" tab).
You can configure the SOAP headers when importing records to specify Assignment Rule, Duplicate Rule or OwnerChangeOptions. Because custom headers can be hard to configure, you could iterate through suggestions by pressing down key. If you want to include new suggestions, feel free to open a new feature request.
ie for KeepAccountTeam:
{"OwnerChangeOptions": {"options": [{"type": "KeepAccountTeam", "execute": true}]}}
Production environment are critical, to avoid confusion with other orgs, you can enable an option which will add a 2px border on the top of the Salesforce UI and also in the extension's pages.
Under User Experience
tab, enable the option Highlight PROD with a top border (color from favicon)
.
To export and import your current configuration, go to the options page and click the corresponding icon in the header:
From any page of the extension (Options, Data Export etc.), right click on the page and select Inspect
.
Then, from the browser console, paste the following code and press enter.
const localStorageData = { ...localStorage };
const jsonData = JSON.stringify(localStorageData, null, 2);
const blob = new Blob([jsonData], { type: "application/json" });
const link = document.createElement("a");
const url = URL.createObjectURL(blob);
link.href = url;
link.download = "reloadedConfiguration.json";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);