Salesforce Analytic Snapshot Weekly Trend ChartTrend Reports are invaluable to any business executive needing to make decisions on the health of their business. Salesforce.com supports reporting on trends over time in a few ways, the strongest of which is Analytic Snapshots. Analytic Snapshots are available in Professional, Enterprise, Unlimited, and Developer Editions, with increasing amount of control over when snapshots are run. Each edition supports a whopping 200 of these, and it is even possible to purchase additional Snapshots!

Salesforce Help defines Analytic Snapshots as “allowing you to load data from a Custom Report to a Custom Object on a regularly scheduled basis.” This in turn allows you to create Reports and Dashboards based on the data in the Custom Object.

Analytic Snapshots are comprised of three things:

  • A source Report of type Tabular or Summary
  • A Custom Object with fields matching the columns in the source Report
  • An Analytic Snapshot definition, which maps fields and schedules the snapshot runs

Source Report
Your source Report can be of type Tabular or Summary. Our best practice is to include only columns that are being used by the snapshot, and to save the Report to a separate, well marked read-only Folder, so no one disturbs it. You can snapshot up to 100 columns on a Report- best bet is to think of columns you might want to leverage in trend reporting in the future, even if not immediately. There is a limit of 2000 rows that can be inserted by an Analytic Snapshot into your Custom Object at one time, so carefully consider how large your snapshot might get, and whether you’d be better off snapshotting summary data instead of individual records.

Custom Object
When creating your Custom Object, best bet is to name it clearly as being a Snapshot Object- such as “Opportunity Pipeline Snapshot”. Create a Custom Field as a receptacle for each column in your source Report, with an appropriate Data Type. One suggestion is that since you will likely only be reporting from this Custom Object, you can simply use Text fields in place of Picklists. One useful trick is to create a Tab for your Custom Object, even temporarily, so that you can manually massage or enter snapshot records if necessary. Best bet is to severely restrict who can read, make changes to, and delete the data in this object.

Analytic Snapshot
The Analytic Snapshot allows you to map individual report columns to fields on your custom object, based on data type. We are asked to set the Running User, that is the User whose data visibility permissions are used when running the source report. The Snapshot definition also lets you schedule runs of the snapshot, and see the success of past runs.

Analytic Snapshot DefinitionOnce you define your Snapshot runs, it will take some time before there is enough data populated in the Custom Object to be useful in Reporting. Just as with any other Custom Object, you can load up sample data with the Apex Data Loader or with other data tools.

Non Admins who have the Manage Analytic Snapshots Profile setting can create and edit Analytic Snapshots.

In the video below, I’ll walk through the setup of an Analytic Snapshot.

Video By OpFocus on Salesforce Blog