In the last few months, I have been meeting SFDC admins on a daily basis. Powering through what is now known as "Zoom fatigue", I wanted to get a deeper understanding into these admins' scope of responsibilities, their approaches and methods, their daily tasks and the challenges they were facing.
When we moved to talk about their challenges, a couple of common threads appeared through most conversations. Troubleshooting was a serious issue - admins were struggling to understand how specific custom fields got their values for specific records. Designing a change also proved to be a pain, as admins admitted that they could not properly asses the impact of such change on other items in the configuration setup.
To address those issues, we need to first map a few items such as automation-like flows, process builders, Apex classes and workflows, that automatically change the value of fields. Mapping those will help us identify which of these automations may have triggered for a given record, and that will help us solve the mystery behind a specific incident. It would also help us to understand the actual impact, and to identify other design considerations that need to be taken into account when safely implementing a change.
Adding Salto's Sauce
This is where Salto comes in. Salto's declarative language (NaCl) describes the various objects and elements in a business application, as well as the dependencies and connections (or references) between them. When Salto discovers the current configuration and fetches it, it leverages NaCl to create a complete representation of the current state of your Production or Sandbox environments. This automated discovery can be run at any point in time and, using NaCl, reflect the current state of your desired environment.
Once you fetch the latest state of your environment, all you have to do is find the field you want to explore. Here is how it looks:
In case you have fields with the same name across multiple objects, for example - Opportunity and Account or Lead and Contact - you can choose the specific field that you want to focus on. Then, all you have to do is right click that field and choose "Go To References".
Salto will automatically list all of the elements in your environment that point to your selected custom field.
This list of elements will include flows, validation rules, Apex classes, process builders, workflows and even layouts, profiles, and permission sets - all of the actual dependencies related to this custom field. You can click on each of those elements to get a preview, which is the reference to the custom field along with relevant context. For example, if a layout points to this field you will be able to quickly tell whether the field is editable or not within that layout.
To further explore a given reference, you can simply open the NaCl file for it and take a closer look, or edit it when needed. And it doesn't stop at that. There are many other things that we built in order to make your life easier. For example, the ability to search a specific value in your workspace such as a picklist value or a special label, with a simple text search.
More on those in future posts.
To summarize, Salesforce admins are struggling to quickly troubleshoot how values are being set and to fully evaluate the impact of a desired change. The key to solving these pains is to enable them to quickly and clearly understand the context around changes and the dependencies between elements. Salto enables admins to do just that, through a simple, streamlined process.