Salesforce impact analysis
Before you delete a field, deactivate a Flow, or refactor an Apex class, you need to know what depends on it. sf-intelligence answers "what breaks if I change this?" from your org's real dependency graph - not generic Salesforce training data.
Last updated 2026-07-29
run a blast-radius question in 2 minutes - no org, no auth
claude mcp add --transport stdio --scope user sf-intelligence-demo -- npx -y sf-intelligence demoThen try all three shapes of the question: "what breaks if I delete Invoice__c.Amount__c?" (a field with a roll-up, a formula, and Apex on it), "what if I make Permit__c.Approved_Date__c required?", and "what breaks if I deactivate the Installation_On_Complete flow?". Synthetic "Verdant Energy" org, served fully offline: no Salesforce login, no sf CLI, nothing to configure. more on the demo →
The problem with guessing
A general AI model will list "typical" references - validation rules, page layouts, reports - but cannot know which ones exist in your org. sf-intelligence builds a DuckDB dependency graph from a read-only metadata retrieve and traces edges with confidence tags: declared (from Salesforce metadata), parsed (from AST/XML analysis), or heuristic (regex - spot-check these).
Questions you can ask
- "What breaks if I delete the Contact email field?"
- "What is the blast radius of removing the Payment custom object?"
- "Is it safe to deactivate this Flow?"
- "What depends on Account.Industry__c?"
- "What would happen if I make this field required?" (optionally with live null-rate)
The router picks tools like find_component_usages, blast_radius, what_if_delete, and field_change_advisor automatically - you type the question, not the tool name.
Evidence tiers you can trust
| Signal | Meaning |
|---|---|
declared | Salesforce metadata states the dependency directly (highest trust) |
parsed | Found by AST/XML parsing of Apex, Flow, or formula source |
heuristic | Regex/token match - may have false positives; verify before acting |
partial | A metadata family was not retrieved - "not checked", not "none" |
Optional: live record counts
With the opt-in read-only live plane, blast_radius_live adds affected-record counts on top of the static graph. Hybrid answers disclose both vault freshness and live provenance - if the org is ahead of the vault, you get a staleness warning first.
Honest boundaries
sf-intelligence performs static analysis. Dynamic SOQL, reflective Apex, and runtime-only references are invisible. "No references found" means no static evidence, not "definitely unused." See the full boundary list on the trust page.
Blast radius is evidence, not a decision. Turning a dependent list into an actual change plan means knowing which references block a change outright, which ones succeed and break something quietly afterwards, and how to rank a backlog when a tool returns zero - which is the subject of the dependency-first method for deciding whether a Salesforce field is safe to delete. For the field-specific simulation with a verdict attached, see what breaks if you delete a field.
Try it on your org.
Free, read-only, offline. One retrieve, then ask impact questions in plain language.