Reports and dashboards tend to multiply quickly in every org. While there isn’t a limit to the number of reports an org can have, too may reports can cause confusion and create clutter for users. I know from experience that a good majority of reports are created for one-time use but never purged afterwards.
Salesforce has drastically improved the tools Admins can use to audit reports and remove unused or outdated reports quickly and easily from Salesforce, and that is what we are going to review today!
Report on Reports & Dashboards
Before deleting any reports, as with anything, it’s wise to perform an audit to see what’s out there. Salesforce has a report type called Reports which is extremely useful in collecting information on reports, but I prefer to create a custom report type called Reports & Dashboards to get the most granular information possible.
Leveraging a custom report type allows me to see what reports are tied to dashboards and even the specific dashboard component name. To create a report type, click Setup | Create | Report Types | New Custom Report Types.
With Reports as the primary object, I can add Dashboard components as a relationship to Reports. If desired, a C-level relationship can be added pulling the dashboard Chatter feed into the mix, but I don’t find that terribly helpful.
Using this report type, I’ll add the Report Name, Folder, Created Date, Created By, Last Modified Date, Last Modified By, Last Run Date, Dashboard Title and Title into the report and sort the report on Last Run Date.
Notice that I didn’t include a field to see which reports are scheduled and it’s not on purpose. The only way to see which reports are scheduled is through the Scheduled Jobs monitoring section: Setup | Monitor | Jobs | Scheduled Jobs. Also, this report doesn’t display any reports that are stored in other user’s My Personal Reports folder. However, this is a feature which will be released in Spring ’16.
To learn more about custom report types, check out The Hidden Functionality of Custom Report Types.
Get Stakeholders Involved
Deleting reports seem like a pretty harmless clean-up exercise, but you’ll be surprised how many users and stakeholders will feel betrayed by not being a part of the thinning process. When a report is deleted, it’s gone. But, unlike data, a report can always be rebuilt. It’s always better to have stakeholders knowledgeable with what the inconveniences are before performing a delete.
Not only that but getting user buy-in is one way to get and keep adoption of Salesforce. When users are made aware and have ample time to prepare while feeling able to contribute, Salesforce becomes inherently more valuable to them.
More than anything, you’re looking to make stakeholders aware of the project, and what your intent is, along with the repercussions. When I have done this in the past, I’ve presented the data, provided my recommendation (delete reports that haven’t been run in 12 months or more) and told them what would happen if they suddenly needed the report again. Unless every decision is made by committee in your organization, I don’t think you’re looking for permission here.
Provide users ample time to prepare. Let users know that any report that meets the criteria will be purged on a specific date. Give users at least a week so there is plenty of time for questions. Again, in my experience, no one seemed to care, but I can guarantee that someone would have cared had I not communicated first.
Before Summer ’14, Salesforce Administrators needed the Force.com IDE to mass delete reports from Salesforce. Now, Admins have the ability to mass delete using declarative actions, and it’s magic!
To mass delete reports, click Setup | Data Management | Mass Delete Records | Mass Delete Reports.
What’s great about this mass-delete option is that it will not delete reports that are tied to a dashboard. If the analysis of the reports in your org requires that dashboards are also cleaned up, it may be good to start there. Once a dashboard is deleted, the underlying reports would then be eligible for deletion via the declarative mass delete option.
Enter the filter criteria for the reports you wish to delete and click Search.
In the above screenshot, you can see I’ve used a single criterion based on Last Run Date. Keep in mind that this date is updated any time a report is run, and a report is technically run every time a user views it. Be aware then of opening a report to see if it’s useful because the last run date will update to TODAY() and won’t display in this record search as a result. It’s best to delete the report manually right then and there if you determine that there is no value in it staying in Salesforce.
Click the checkbox for each report that should be deleted, or click the master checkbox at the top of the column to select all reports. Then, click Delete.
Now that the initial purge has taken place schedule a report delete on a regular basis. Every month or every 12 months, it doesn’t matter. What does matter is that users know the deletion cadence, and the criteria are kept the same. If there are any changes to the criteria, notify users before the delete process so that there are no surprises.
Now the fun part – share with me how many reports you deleted from your org after going through this process! Leave a comment below!