Thankfully, there is an easy solution to this problem – Salesforce Analytic Snapshots (now known as Reporting Snapshots). Using Salesforce Analytic Snapshots you are able to create and store snapshots of data that you want to monitor, using custom objects. There are quite a few articles online that talk about Salesforce Analytic Snapshots but I found the advice to be limited. After figuring it all out, I thought I should put together this step by step guide to help other people, like me. Good luck. Share
Step by step guide to setting Salesforce Analytic Snapshots
Otherwise know as “How I was able to create and store daily snapshots of open Opportunities and their values” This guide is made up for three parts
- Part 1: Creating your Report
- Part 2: Creating a Custom Object to hold the Data
- Part 3: Create an Automation which saves data from your source report into your Custom Object
1: Creating your Report
Create a New report by going to Reports | New Report
Choose the Report type you want to use (For this example we’re interested in Open Opportunity Value but you could use any Object) Select the ‘Opportunity’ Object and then hit ‘Create’ Drag in the columns you want to monitor and click ‘Run Report’ As you can see above I have chosen Opportunity Name, Owner and Value as the columns. It’s worth mentioning the report has to be in Tabular or Summary format. I would also recommend choosing fields that are regularly updated to utilize the power Analytic Snapshots. Save your report with an easy to understand name…
2: Creating a Custom Object to hold the Data
Create a Custom Object by going to Setup | Create | Objects | New Custom Object
Give your Custom Object an easy to remember name and make sure the “Allow Reports” check box under Optional Features and the “Deployed” option under Deployment Status are both checked. Hit Save In your Custom Object, you now need to create Custom Fields to hold the data from your source report. Give your Custom Fields the same names as the columns in your source report. Do this by clicking on New under Custom Fields & Relationships In this example we need to create Custom Fields “Opportunity Name”, “Owner” and “Opportunity Value” to mirror the columns in my source report
3: Create an Automation job which saves the data from your source report in your Custom Object
By creating an Analytic Snapshot, You are specifying a time and frequency for your source report to run and then be saved in the Custom Fields you created moments ago. Go to Setup | Data Management | Reporting Snapshots | New Reporting Snapshot
Give your Analytic Snapshot a name. Make sure the Running User has permission to view and report on the data you’re going to push into your custom object. Choose the Source Report and Custom Object, you created moments ago, from the Source Report and Target Object drop down list respectively. Hit Save & Edit Field Mappings Map the columns from your source report to the right fields in your custom object
Hit Save Click on Edit under Schedule Reporting Snapshot to choose the frequency and the time you wish for your Source Report to run and be saved in your custom object 
Congratulations!
You have successfully created a Salesforce Analytic snapshot.
At the time you specified, the source report will run and the data will be saved in your custom object. Now go to Report | Create new report, Under Other Reports you will find your new custom object.
You can now wait for the report to run at the scheduled time or you could manually insert data in to your new custom object, just as you would with a standard object in Salesforce. After all, it’s all about helping you keep Salesforce data more accurate than ever before. Quick tip: The Salesforce Success Community is my go-to source for troubleshooting. This Schedule and Run a Reporting Snapshot post helped me a lot when I was creating my first Analytic Snapshot.]]>