Salesforce orgs can become unmanageably complex over time. The complexity might stem from corporate mergers and acquisitions, poor change and release management practices, failed development projects, or disruptive administrative turnover. Complexity can result in slow performance, reduced agility, sluggish adoption, and IT/business misalignment. Older projects must be cleaned up to make room for new initiatives, or any Salesforce org can become unhealthy over time.
Consider an org where Profiles and Custom Objects are being created with the Setup Menu at a linear rate. The number of user object permissions in the org will increase at an exponential rate. But when you consider the impact of other entangled assets like Custom Fields, Record Types, Page Layouts, and Apex Classes, the overall complexity of the org will increase at an even higher rate than in this simple example.

This white paper discusses how the Snapshot Change and Release Management product from Metazoa can help you clean up and optimize your Salesforce account. Snapshot provides over fifty reports to help you identify forgotten assets, underutilized fields, and abandoned projects. Once you understand where the problems are, you will be on the right track to simplifying your org and reducing complexity.

Field Usage Report

Some of the Custom Fields in your Salesforce account are more useful than others. Some are rarely used, others not at all. One way to measure usefulness is to look at fields that are empty or contain default values. The more distinct the field values, the more the field is being used, versus fields with more uniform values, which contain lots of duplicate information. The Field Usage Report presents all of this information for any set of selected records.

Once this information has been gathered, judgement is required on a field by field basis to determine usefulness. You may need to drill down and see why a field is more or less distinct. For example, Account Name, Phone, and Website will be almost 100% distinct, but Account Zip Code and State will be more uniform. Often you will discover that more uniform fields are mainly populated by empty or default values. That might point to a field that needs to be deleted, or perhaps that should be a required field. If most of the fields are no longer needed, perhaps the entire object can go.

Picklist Usage Report

The only thing more complex than fields are picklists. Picklists are multiplexed by Record Types, and further complicated by controlling versus dependent picklists. Picklists will have a defined list of values, but they will likely have many other values that have been entered by hand over the years. What values should be on the defined list? What other values need to be remapped to one of the defined values? Which picklist items should be eliminated from the list entirely? The Picklist Usage Report displays all of this information. The Record Types Vs. Picklists Report and the Controlling Vs. Dependent Picklists Report provide additional information about the structure and usage of picklists in your org.

Forgotten Assets Report

There are over 150 asset types currently handled by the Metadata API. These metadata assets describe all the customizations in your org. But this information can also be used to discover forgotten, hidden, and inactive assets. In some cases, an asset will not be enabled by any of the Profiles or Permission Sets in the org. In other cases, there will be no metadata references to the asset. Many metadata assets have an “active” or “visible” flag that can be checked. The Data API can also be used to find assets that have no assigned users. Here is a list of common problems that the Forgotten Assets Report can discover:

Last Activity Date Report

Some assets are enabled and properly connected to your Salesforce account, but they have not been used in a very long time. Email Templates have a Times Used and Last Used Date field available from the Data API. Likewise, Reports have a Last Run Date. The Refresh Date for Dashboards can be calculated from the connected Reports. You will likely find Reports and Email Templates that have never been used, but be careful, because sometimes these objects are simply new, so be sure to also check the Created and Last Modified Dates. The Last Activity Date Report provides all of this information.

Profiles and Permission Sets Report

Every user has a Profile that defines what they can see and do. Profile permissions include Application and Tab Visibility, Apex Class and Page Access, Object and Field Permissions, User and Custom Permissions, and Layout Assignments. An administrator can also assign any number of Permission Sets to a user. Permission Sets are similar to Profiles. They are used to grant additional permissions for special situations. Profiles and Permission Sets are the key junction object that manage complexity at the heart of a Salesforce account.

The Profiles and Permission Sets Report provides over 30 different tables that display the use of Profiles and Permission Sets in your org. You can see which Profiles and Permission Sets are assigned to the most users. Perhaps some Profiles and Permission Sets can be consolidated. Another interesting report shows the extent to which various child types are used by each Profile or Permission Set. For example, which Profiles enable the most Apex Classes, or User Permissions? Which Profiles show the most Custom Tabs and Applications? This information will help identify duplicate and underutilized Profiles and Permission Sets that can be removed, refactored, and consolidated.

Relationship Matrix Report

Sometimes old projects and systems need to be removed from a Salesforce account. Maybe they are no longer in use, or perhaps they are being replaced by a new project. If the project is a Managed Package, then removal is simple, but be aware that Managed Packages can contain unpackaged customizations that will also be removed when the package is uninstalled. Unmanaged Packages are more likely to be tangled up with the Salesforce account because their assets can be customized directly without any kind of namespace to help identify them.

A much more complex situation occurs when a project is built out of unpackaged assets and customizations. In this situation, understanding the metadata relationships and constructing with the Snapshot Relationship Matrix Report can be very helpful. By keying on unique names, all of the related assets in a project can often be identified in the sea of unpackaged assets. The Search Palette in the View Assets dialog can also find related assets. Then the entire project can be removed from the org, roots and all.

Change and Release Management Practices

So far, this blog has focused on techniques to identify assets that need to be cleaned up or optimized. After that, the best practices moving forward are:

The adoption of an effective change and release management practice will ensure that your Salesforce org remains healthy. In fact, org cleanup and optimization should become a regular priority in the release cycle. Snapshot provides extremely powerful tools that can help, including powerful interfaces for Taking Snapshots and Deploying Metadata. These tools will ensure that your Salesforce org continues to grow with new capabilities and robust user adoption but without crippling complexity.

Org Cleanup and Optimization

Snapshot provides over fifty reports to help you understand and visualize the complexity of your Salesforce org. Most Salesforce accounts get more complex every day. Cleanup and optimization should become a regular part of your change and release management practice. Let us know if we can help you clean up and optimize your Salesforce account.

Click the download button to get the pdf version of this whitepaper.

[email protected]

1 (833) METAZOA (638-2962)

Twitter: @metazoa