Impact analysis is the ability to foresee the impact of a change in your Salesforce configuration and metadata.
Salesforce provides native impact analysis for custom fields through the "Where is this used" feature
, allowing you to see what other metadata components and configurations are using a field.
A common question that we get is how Salto's impact analysis is different from Salesforce's "where is this used"? So let's go through some use cases:
Get started with Salto
Find all those hardcoded IDs once and for allTry Salto free ≥
Support for standard fields
This Salesforce native feature lets you see where a custom field is used. However, if you want to know where a standard field (like Opportunity.StageName, for example) is used, you are out of luck.
For Salto, a standard field is the same as a custom field, just another "element."
Here's what the "where is this used" view looks like for the Opportunity.StageName field:
More than just fields
When we think about impact analysis in Salesforce, we almost always talk about where a field is used.
The truth is, custom fields are just one of many metadata types in Salesforce that can be used by other metadata types. Let's see other examples:
Where a visualforce page is used
All the places where an email template is referenced
The above is an example of a textual search, which is another way of doing impact analysis.
Exactly where a field is used
The "where is this used" feature in Salesforce will only show you the name of the metadata where a field is used, but it won't tell you exactly where within that metadata:
Here, I can see that the field is being used in many flows. But exactly where in those flows? In screen elements? Decision elements? Fast updates? The only way to know is to open the flow and inspect all the elements one by one.
In Salto, we can tell you the exact location of the field within the flow's metadata:
In the above example, I can see the field is used in 3 different elements within the flow.
When it comes to apex classes, you can even see a preview of where the field is used without going through the entire code. In the following example, we can see how the Opportunity.StageName is used by the apex classes.
Dependencies at a glance
The final key element of our approach to impact analysis is that we can annotate any metadata with the dependencies we know exist without you having to ask for it explicitly.
Let's see an example:
We are seeing an apex class and its sibling metadata file, which contains the apiVersion, name, etc. Salto expands this file by adding generated_dependencies, a list of other elements that the apex class has a reference to.
In this particular example, we can see that the apex class references two other apex classes, the standard Lead object and another custom object
That's it for today. Until the next post!