Reporting Snapshot
A Salesforce feature (also called Analytic Snapshot) that captures report results on a scheduled basis and stores them as records in a custom object, creating historical data snapshots for trend analysis over time.
Definition
A Salesforce feature (also called Analytic Snapshot) that captures report results on a scheduled basis and stores them as records in a custom object, creating historical data snapshots for trend analysis over time.
In plain English
βA Reporting Snapshot is a Salesforce feature that captures report results on a schedule and stores them as records in a custom object. You use it to create historical data snapshots for trend analysis over time, since Salesforce doesn't track historical changes to most fields automatically.β
Worked example
Pelican Software's data team needs to track historical pipeline trends, but Salesforce doesn't preserve daily Opportunity stage changes by default. They configure a Reporting Snapshot: every weekday morning at 6am, a source report runs (current Opportunities by Stage and Owner), and the results write into a custom object called PipelineHistory__c - one record per Opportunity-Stage-Owner snapshot. After 6 months, PipelineHistory__c has 130 days of accumulated snapshots. Trend dashboards built on PipelineHistory__c show pipeline movement, stage-conversion rates over time, and rep performance trends - historical data Salesforce wouldn't otherwise retain.
Why Reporting Snapshot matters
Reporting Snapshot is a Salesforce feature (also called Analytic Snapshot) that captures report results on a scheduled basis and stores them as records in a custom object, creating historical data snapshots for trend analysis over time. Snapshots solve a fundamental challenge: Salesforce doesn't natively track historical changes to most fields, so analyzing trends requires capturing point-in-time data.
Reporting Snapshots are valuable for any trending scenario: pipeline velocity over time, case volume trends, user adoption trends, and countless others. Without snapshots, you can only report on current state; with them, you can analyze how things have changed. Mature orgs use reporting snapshots strategically for key metrics that benefit from historical visibility, with careful target object design for clean downstream reporting.
How to set up Reporting Snapshot
Reporting Snapshots (formerly Analytic Snapshots) capture a Tabular report's results on a schedule and store them as records in a Custom Object β "every Friday, snapshot the open-pipeline-by-stage report." Build historical trend data without point-in-time SOQL hacks. Setup is the snapshot definition; the actual snapshot job runs on the configured schedule.
- Build the source Report (must be Tabular)
Reports tab β New Report β choose Tabular format. Save with the columns you want to snapshot. Summary / Matrix reports aren't supported.
- Build the Custom Object that will receive snapshot rows
Setup β Object Manager β Create β Custom Object. Add fields matching the source report's columns + a Date field for the snapshot date.
- Open Setup β Reporting Snapshots
Setup gear β Quick Find: Reporting Snapshots β Reporting Snapshots.
- Click New Reporting Snapshot
Top-right. Set Name, Description, Running User.
- Pick the source Report and target Custom Object
Source: the Tabular report. Target: the Custom Object you built. Field mapping wizard appears next.
- Map source report columns β target object fields
For each report column, pick the matching target field. Mismatches block save.
- Set the schedule (Daily / Weekly / Monthly)
When the snapshot job runs. The job reads the report results and inserts one row per source-report row.
- Save and Activate
The snapshot runs at the next scheduled time. Verify by checking the target object after the first run.
Tabular only. Summary / Matrix not supported.
Receives the snapshot rows.
Per-column mapping. Mismatches fail.
Daily / Weekly / Monthly.
Whose context the snapshot job runs in. Drives sharing visibility.
- Source report must be Tabular. Summary or Matrix reports fail at snapshot setup time β the wizard rejects them.
- Each snapshot run inserts rows up to a hard limit (~2,000 rows per run by default). Reports larger than that get truncated silently β split the source or filter to fit.
- Snapshots count against target object's storage. Daily snapshots of a 1k-row report add 30k rows/month β plan storage and archival.
How organizations use Reporting Snapshot
Uses reporting snapshots to track weekly pipeline snapshots for pipeline velocity analysis.
Captures monthly snapshots of user adoption metrics for trend analysis.
Treats reporting snapshots as foundational infrastructure for historical reporting.
Trust & references
Straight from the source - Salesforce's reference material on Reporting Snapshot.
- Report on Historical Data with Reporting SnapshotsSalesforce Help
- Schedule and Run a Reporting SnapshotSalesforce Help
Test your knowledge
Q1. What is a Reporting Snapshot?
Q2. Why is this needed?
Q3. What's captured by snapshots?
Discussion
Loading discussionβ¦