Tracking history on reports
Reporting on current values is cool, but sometimes, we need to know the trends of certain fields.
As an example, it may be necessary for our call center to find out how the statuses of the cases change day by day or how the opportunity amount and stage vary from week to week.
Historical Tracking Reports
We can implement this kind of insight with Historical Trend Reporting or Historical Tracking Reports. If enabled, Salesforce stores certain fields value for up to 3 months (plus the current month).
Go to Setup | Feature Settings | Analytics | Reports & Dashboards | Historical Trending and enable historical trending for opportunities and any other objects you want to track. Here, we have set up an example:
Historical Tracking Reports set up
The result is that you get a custom report type when creating a new report called Opportunities with Historical Trending (it depends on the enabled object).
Enablement can take a while (wait until you receive a confirmation email stating that historical tracking has been enabled). When it’s ready, you can create a new report with the previous report type.
As we can see, it differs from a typical report:
Historical trending report example
In the Snapshot Dates section, you can select up to five different times, while in the Columns section, you can choose the enabled fields with the historical versions, which will give you the trending scenario of that value (in red or green).
For a complete list of features related to Historical Trend Reports, please refer to Salesforce Help at https://help.salesforce.com/articleView?id=reports_historical_concepts.htm&type=5.
Reporting Snapshots
Besides Historical Tracking Reports, Reporting Snapshots is another feature that we can implement when we want to report data in a deeper and more customized way.
With Reporting Snapshots, you can map tabular or summary reports to a custom object so that you can work on a report’s results in the same way as you would work with any other Salesforce object.
When I was first introduced to Reporting Snapshots, they appeared to be magical—at least from my junior developer point of view. I used them to track day-to-day status changes on changing records on our customer business flows.
For Reporting Snapshots to work, we need a custom report where all the required columns will be tracked, a custom object where the tracked data will be loaded and, of course, custom fields, which will receive actual data when the reports are run.
We are doing this because we want to track the case age by status to see how cases are handled in their life cycle (until they are closed) and check how many days each status stays still.