SFDXLabs Salesforce Toolkit
Explore Salesforce schema, understand automation and access, compare orgs, work with records, and investigate org activity from Visual Studio Code. The toolkit uses your installed Salesforce CLI and existing org logins. Connected tools identify their target org; local tools such as Flow Visualizer and the formatters can work offline.
Quick start · Find a tool · Org & Tools · Settings · Troubleshooting · Development For release highlights, see the changelog. Quick startRequirements
Open your first workspace
Multi-root workspaces and Salesforce projects nested inside a workspace are supported. Find a tool
Only featured tools appear directly in each sidebar section. More tools… opens its searchable catalogue. Right-click a tool to add it to Favourites; favourites are shared with Home and the action picker. Collapse All folds the sidebar. Home and org selectionToolkit Home shows the active org, environment, connection details, useful counts, limits, licence availability and recent guarded operations. Unavailable statistics are labelled rather than shown as zero.
Switch org changes the workspace target and loaded schema. Existing query, comparison and API workspaces keep their displayed target; changing the workspace default does not redirect an in-flight operation. Check the org shown on the page before running it. SchemaLoad and explore objectsLoad only the objects you need. Choose standard/custom objects, a manual list or a saved selection. Generated share, history and change-event companions can be excluded. The schema header shows the org and loaded object/field counts. Use Add or remove objects…, Reload from org, or Load a different org… to manage the session. Saved selections contain object names and org identifiers, never credentials. Cached schema is separated by org ID, authenticated user and API version. Object and field details include descriptions, formulas, defaults, picklists, relationship properties and available capabilities. Copy an API name or starter SOQL, jump to matching local XML, and search/filter the tree. Data DictionaryGenerate Data Dictionary and Export Loaded Dictionary open the same setup and preview workspace.
Exports include a coverage summary and Report Centre manifest. Files are staged before publication, so a cancelled export leaves the previous completed set intact. Timestamped exports are optional. Relationship ExplorerView relationships between loaded objects on a dotted canvas. Drag objects to arrange them, pan the background, zoom, search, or navigate with the overview map. Positions are remembered; Reset layout restores the initial arrangement. Select an object for its metadata and incoming/outgoing relationships. Select a connector for the field, relationship type, requiredness, endpoints and SOQL traversal names.
Pause motion is remembered, and reduced-motion preferences are respected. Only relationships between loaded objects appear. Field impact and dependenciesUse these tools together when assessing a field change:
Where Used groups results by file with source links, snippets, search and type/source filters. This field only excludes known references to other objects; Unresolved only shows matches whose object could not be established. Right-click a field in the Schema tree or an Dependency Viewer separates Uses these components from Used by these components. Follow up to three levels, inspect traversal paths, change the root component, or use Back/Forward to revisit scans. Refresh reads the org again; complete scans can be reused briefly. Find local source opens a matching project file when available. Analyse Field Usage supports saved scans, compatible comparisons and retries for failed queries. Unsupported or failed measurements remain distinct from empty fields. Coverage depends on the source, schema and API available. Dynamic references can remain unresolved or absent. An empty result is not proof that deletion is safe. Source-editor shortcutsIn Apex, SOQL, XML, JavaScript, TypeScript or HTML, select a schema reference and right-click SFDX Labs:
Qualified references such as Field Manager and data qualityField Manager creates fields individually or from pasted tables and edits supported attributes in local Run Data Quality Audit checks missing documentation/help text, empty picklists, missing relationship names and duplicate labels. Document them opens an editable worklist for findings with local source; unavailable source files are listed separately. DataSOQL & Record WorkspaceUse multiple builder or free-form query tabs against the displayed org.
The result grid is bounded to 1,000 rows and 4 MiB. Tabular exports flatten relationship values; JSON preserves the nested response. Discard edits clears pending edits, and Escape reverts the active cell. CSV imports and Bulk API jobsImport Records from CSV supports Bulk API 2.0 Insert, Update and Upsert. Move through Source, Configure, Map columns, Review and Results. Search or filter mappings, choose fields with the same keyboard-accessible picker as the SOQL workspace, explicitly skip unwanted columns, validate the full file and confirm the target before submission. Mapping drafts stay with the same source file and org; long mapping lists and result previews are paginated. Optional blank-to-null conversion and private reusable recipes are available. From Results, Start new import returns to Source; Recent imports keeps up to 20 known jobs for this org with operation, object, date, filename and saved counts where available. Expand an entry to refresh its status or open the Bulk monitor; unavailable details remain marked as unknown. Opening history reads only local metadata and does not query Salesforce. Monitor Bulk API Job shows processing counts and terminal failures/unprocessed rows. When Salesforce returns enough source data, Prepare rows for retry creates a private CSV and returns through the usual mapping and confirmation steps. Datasets and seeding
Seed import review supports up to 100 JSON files, 8 MiB per file and 20 MiB in total. Plan file paths must stay inside the dataset folder. This review checks local structure and references; Salesforce validates permissions and record values during import. Dataset exports are staged before publication. Preview/root-record limits do not include all related child records; Salesforce tree-export limits still apply. AutomationFlow VisualizerOpen Automation → Flow Visualizer, an active
Current Flow Builder elements keep their Flow Builder names and icons: Wait for Amount of Time, Wait Until Date, Wait for Conditions, Collection Filter, Collection Sort, Recommendation Assignment, Run Agent, Email Alert, Apex Action and Apex Action (Legacy), Add Prompt Instructions, Experiment paths and legacy Steps. Auto-layout Groups are drawn as labelled containers around their elements and exported as Mermaid subgraphs. Asynchronous action timeout paths are labelled Timeout. Lint findings link to their steps. Refresh updates the displayed snapshot and clears a version comparison. Mermaid export describes the current displayed version. Subflows and orchestration stages remain single elements; unsupported metadata and incomplete paths appear in diagram notes. Object Automation MapExplore a local object’s automation with the same canvas controls and a detailed inspector. Review entry conditions, status, record operations, actions, schedules and validation messages; open source or jump into Flow Visualizer.
Phase groups and card positions do not establish execution order, and animation is not a live execution trace. The map scans configured package directories and reuses unchanged metadata. Object names are matched without regard to case. Apex references are inferred from source: types declared in other files, SOQL built at run time and custom trigger frameworks can be missed. Lint and cleanupLint All Flows checks local metadata for issues such as missing fault paths, queries/DML inside loops, hard-coded IDs, unreachable steps and same-object after-save update risks. Clean Up Inactive Local Flows moves reviewed files to Trash. Delete Inactive Org Flow Versions permanently deletes selected versions after the target and confirmation phrase are reviewed. Compare OrgsSchema, source and local comparisonsOpen Compare Orgs to choose a reference org, a compared org, and a scope: objects/fields, source metadata, or both. Loading the page or a saved preset does not start retrieval.
Source comparison retrieves into temporary directories outside your project. Normalization removes formatting/ordering noise while preserving meaningful changes. Profiles are excluded from source comparison because retrieved content depends on the manifest. Coverage reflects the connected users’ access and the chosen scope. Email templates and library filesOpen Compare Email Templates or Compare Library Files:
Both Classic and Lightning shared email folders are supported, including public unfiled templates. Personal folders are excluded. Template results show Classic/Lightning indicators; type differences across orgs are labelled. Files match by title, extension and relative folder path; Lightning email templates match by readable name, while Classic templates use their API name. Both also match namespace and relative folder path, so generated Lightning API suffixes do not produce false missing-template results. All shared email folders preserves the full folder API path. Duplicates are flagged rather than paired arbitrarily. File content is not downloaded or compared. In both means presence, not content equality. For a uniquely matched email template, expand Show differences (optional) to compare subject, text, HTML or Visualforce markup on demand, then expand each field to review an inline source diff. Large previews are bounded, and template HTML is displayed as text. Folder and presence loading show live progress with cancellation. Attachments and referenced images are outside that comparison. Users & AccessSecurity 360 and the Permission grant viewerOpen Users & Access → Open Security 360 to search users, Profiles, Permission Sets and Permission Set Groups. To open the Permission grant viewer: select a user, then choose Trace grants beside an object or field permission. The diagram shows user → granting source → permission, with source navigation, directional animation and a pause control. The workspace provides paginated permissions, source details, user/source comparisons and read-only assignment-impact previews. Live Permission Set Groups use Salesforce’s calculated permissions after muting and require a current calculation. Unavailable evidence is labelled; record sharing, session activation and licence restrictions remain separate checks. Additional tools are available through More tools…:
Clone UserChoose a source user and review the new user’s identity before creating them. Copy or choose a profile and role, then independently select All, Choose, or None for permission sets, permission set groups, public groups and queues. Queues default to None; new users default to inactive. The review shows copied/omitted access and advisory licence checks. Creation and assignments report individual outcomes; download the provisioning report when finished. Apply remaining / retry failed operates on the newly created user and does not create another user or automatically retry unknown write outcomes. Only direct memberships are copied. Passwords, MFA and feature/permission-set licences are not copied. Salesforce validates assignment compatibility. User Access PoliciesSearch policies, inspect criteria and grant/revoke actions, and activate or disable all or selected policies for the displayed org. Activate all / Disable all covers the full loaded list, regardless of filters. Individual failures do not stop remaining policies. Stop remaining stops further work and final verification reports confirmed, failed, unknown and unattempted outcomes. Disabling a policy does not undo earlier access changes. Unsupported API operations link to Salesforce Setup. Apex & LogsAnonymous ApexAnonymous Apex Scripts manages per-org Loaded-schema and local Apex suggestions complement normal editing. Results link compilation/runtime errors to source and include searchable, bounded log output. Deleted scripts go to Trash. Earlier notebook support remains available for compatibility. Apex Test RunnerChoose classes, suites or local tests, optionally request coverage, and track asynchronous runs. Inspect failed methods, source-linked stack frames and uncovered lines, rerun failures, or reopen Apex Test History. Tests run against deployed code. Pause updates or closing the page stops local tracking, not the Salesforce test run; use Watch run to resume. Run coverage and org-wide coverage are shown separately. Comparisons require compatible org/user, scope and coverage settings. Debug Log ViewerSearch recent logs by user, operation or status; use Older logs for more history. Inspect execution sections, exceptions, debug output, SOQL/DML, callouts and governor limits. This Frame, Executable and Debug Only help narrow a log. Timing is inclusive of nested sections; incomplete sections have no duration. Raw/JSON exports open on demand. Test and debug evidence uses private extension storage by default. Org & ToolsManifest BuilderBuild or open
Outside file changes and unsaved manifest edits are checked before saving. Retrieval can change local source; save or revert affected editors first. Cancelling cannot undo files already retrieved. The builder does not deploy to the org. Org Health & LimitsReview limits/storage, queued and failed Apex, scheduled jobs, deployments, Bulk ingest jobs and debug-log inventory. Sections appear as checks finish, with check times and explicit unavailable states. Refresh all, refresh limits, or retry one section. Successful activity reads can be reused for one minute; explicit refresh bypasses the cache. Use Limits needing attention only, activity search and Failures only to focus the page. Limits are ranked by usage: below 75% is healthy, 75–89.9% is warning, and 90%+ is critical. Trends compare compatible snapshots; Open JSON snapshot opens the evidence. Setup Audit TrailReview who changed Setup, what changed and when.
Salesforce retains up to 180 days. Reads require access to Setup audit history in the selected org. Changed MetadataList every piece of metadata the org reports as created, modified or deleted in a time window: fields, Flows, layouts, Apex, Lightning pages, reports and every other listable type.
The scan calls the Metadata API directly with your CLI login, three types per request, and falls back to the Salesforce CLI when the direct connection is unavailable. Scan notes list types the org could not list and members that report no dates (standard objects and org-wide settings usually do not). Deletions appear by name only where source tracking exists (scratch orgs and tracked sandboxes); elsewhere they appear in Setup activity. A parent's date does not change when its children do, so a new field is listed as a API Explorer and GraphQL WorkspaceAPI Explorer sends org-relative REST, Tooling and Apex REST requests using your CLI login. Choose an example or enter the method, endpoint and optional JSON body. Review HTTP status, elapsed time, response body and headers. Writes and custom Apex REST requests require target-aware confirmation. GraphQL Workspace provides query/variable editors, saved requests, schema exploration and individual error messages/paths. Cursor controls appear for connections reporting another page; they set Both tools share formatted/compact response views, full-response search, Show more, copy and open-in-editor actions. Large responses render a bounded preview. Cancellation stops local work; a request may already have been processed by Salesforce. Request bodies and responses are not automatically saved as artifacts. Custom Metadata WorkspaceFind a type on the page, search its records, inspect field values, and explicitly export loaded records. The current preview reads up to 200 records per type; that limit and potentially partial exports are labelled. Compare exports shows searchable, expandable before/after differences. Generate from export previews XML and lets you select files to write under JSON and Formula formattersBoth open with selected editor text and work without an org connection. Use Undo formatting, Compare before / after, clickable error locations, line numbers, word wrap, copy or Open in editor. Line numbers are hidden while wrapping.
Large inputs use plain highlighting, draft saving is batched, and delayed formatting replies cannot overwrite newer edits. Oversized selections receive an explicit message rather than being truncated. Environment Doctor and Report CentreEnvironment Doctor checks workspace trust, project structure, CLI, org connectivity, API version, schema and artifact storage. Problems appear first. Use Attention only, relevant settings/org/schema shortcuts, or Copy redacted summary for support. Report Centre searches generated evidence by category, org, status and storage location. Open artifacts, compare compatible reports, favourite them, export copies or review retention candidates. Selected deletions go to Trash after confirmation. Sanitized exports redact common identifiers and credentials, but cannot guarantee anonymization of arbitrary business data. Storage, coverage and performance
Useful limits
SettingsOpen VS Code Settings and search SFDXLabs Salesforce Toolkit. All names below use the
Keyboard shortcuts
TroubleshootingThe extension cannot find A tool is missing from the sidebar. Open the section’s More tools… or Find a tool…. The Permission grant viewer is inside Security 360: select a user, then Trace grants beside an object/field permission. A report is empty or incomplete. Check its selected org, filters, coverage and loaded scope. The authenticated user may not have access to every component or record. Refresh the affected section or load the required objects. New commands or Explorer menus are missing during development. Run Developer: Reload Window in the Extension Development Host. Restarting only the extension host does not reload menu contributions. F5 reports “Could not register service worker / InvalidStateError”. Stop debugging, close the development-host window and launch F5 again. If necessary, close it and rename DevelopmentPreview without rebuilding a VSIX
The extension runs from Build, check and package
Release builds enforce an 800 KiB activation-bundle budget and a 3 MiB total JavaScript budget. Source maps and development fixtures are excluded from the VSIX. Packaging uses the version in The headless policy runner remains available through Feedback and licenceReport issues through the repository’s Issues page. Include the tool, extension version, reproduction steps and a reviewed Environment Doctor → Copy redacted summary where useful. Avoid attaching credentials or sensitive org data. Released under the MIT licence. |