What is Admin Serviceable Design?
There’s a quote in the Matrix movies that goes something like “That's how it is with people - nobody cares how it works as long as it works”. This unfortunately is too often the sentiment when building a Salesforce solution. Often teams are put against tight deadlines or lack the general know how to think through how the backend should be designed for scalability. When you make an investment in the Salesforce platform you are investing in the backbone of your organization, but how your business works today will most likely be different than how it works in a few years from now. So how do you build a system that is malleable to changes i.e. Admin Serviceable design.
Custom Metadata is Your Best Friend!
Let’s look at an example of leveraging Salesforce’s capabilities to build a solution that is easy to change. Imagine you have a requirement that if an opportunity has been open for 90 days close the opportunity automatically. We are going to assume that we are going to leverage flow to tackle this requirement. So in that mindset, we will need a daily scheduled flow to see if an opportunity has met this threshold. To do this we will create a formula field on the opportunity object that indicates if the opportunity should be closed. This formula would look like the one below.
Then in our flow we will have the start condition be where this checkbox is true.
The Requirements Always Change!
Now lets say 6 months down the line the requirement has changed and you now want to close the opportunity if it has been opened for only 60 days. This requires modifying the formula field and remembering how all of this works.
Imagine now that you have settings that control the variable for the number of days to close an opportunity. To do this we will create a custom metadata type called Opportunity Settings and create a custom field that stores the number of days to close the opportunity.
Next, we will modify our formula field to reference the metadata.
Now going forward if you ever want to change the number of days to auto-close the opportunity all you need to do is change the value in the metadata.
This concept of leveraging metadata and custom settings to give your admin controls to easily modify automation provides immense flexibility and ease of change to your solution. Not to mention anyone whether they are a salesforce professional or not can modify the automation. This is what we call admin serviceable design. This mentality can be pushed to extremes where there are controls for almost all of your automation. So when that immediate change to your platform is needed it no longer takes weeks, but minutes to modify. Do you see the power?