10 Advanced Salesforce Reporting Features

Share this article...

Salesforce Reporting is one of the most powerful features, used to give users many different views into their data, and for Admins to demonstrate the value Salesforce has upon the organization’s productivity.  

Building reports in the Lightning Report Builder, a drag and drop interface, is extremely effective – as a Salesforce Admin, you should have a solid idea of all the options available to you when reporting requirements come up.

What are advanced reporting features in Salesforce? These are the tricks Salesforce power-users should know to ultimately create the reports users need – even with challenging data models – in the most efficient and scalable way (with minimal additional configuration).   

Let’s have a look at some of the more advanced reporting options that Salesforce offers.

READ MORE: How to Create a Report in Salesforce

1. Custom Report Types

Salesforce comes with report types out-of-the-box for all standard objects and standard object relationships eg. “Contacts & Accounts” or “Opportunities with Products”. You can view a list of report types when creating a new report: 

For the custom objects we build, Salesforce also creates report types automatically. 

These report types have a “with” or “and” relationship, depending on whether the two objects have a Lookup or Master-detail relationship.

You may want to go beyond standard and auto-created report types, when you need to report:

  • On more than two objects at a time, 
  • On “without” relationships (not just “with”)

This is where Custom Report Types come in.

The high-level steps to create a custom report type are:

1. Select the objects you would like to include. 

2. Depending on the Primary object (Account in the example above), the wizard will show you its child objects. You can also report on grandchild objects, up to a total of 4 objects. 

3. You will notice that we can specify whether the object selected has to have related records to show up in the report. This is useful if you would like to show a report, eg. Accounts with & without Opportunities.

Bonus! You can now auto-add fields to Custom Report Types, without having to manually add new fields that you create to each report type.

READ MORE: How to Create Salesforce Custom Report Types + Examples

2. Cross Filters (Exception Reports)

When filtering reports, sometimes you want to retrieve records with or without other related records – such as, to identify Accounts without executive Contacts, or Opportunities without any Activities in the past week. 

Cross Filters enable you to find where data does not exist, sometimes described as an exception report. In the Report Builder, Cross Filters are added like any other filter, with extra options. Their format is:

Show me — [primary object] — with/without — [related object]  

Example: Show me — Contacts — without — Campaign History

Take Cross Filters further by adding additional filters. After selecting the objects, an additional filter box appears. This is where you add sub-filters to narrow down the related records even further: 

Example: Show me — Contacts — without — Activities — with status: “open”

Will pull a report with all contacts that have no open activities.

Cross Filters are essential for Salesforce Admins to master to avoid unnecessarily creating custom report types or rollup fields.

READ MORE: What are Cross Filters in Salesforce Reporting?

3. Summary Formulas

Summary Formulas can handle complex calculations at all summary levels. 

Summary Formulas act like fields once the formula has been created, hence why they are referred to as Summary Formula Columns in Salesforce Lightning. 

At first, these can seem daunting – let’s walk through this to put this reporting feature into context.

1. Start by adding a number field to the report canvas. 

2. Open up the collapsed “Fields” left sidebar. You’ll see “Summary Formulas” as a section.

Example: Say I want to find out how each account is contributing to the pipeline for each specific Opportunity “Type”. Which accounts are driving the greatest share of the new business pipeline? What about renewal opportunities?

3. Search for, and insert fields and functions to the left. I’ve used PARENTGROUPVAL in this example, which allows me to “grab” a previous grouping in the report (the total revenue for the Opportunity “Type”) and use it to calculate my percentage at the Account level.

4. Check you have selected the correct “Display” setting (you will receive an error if it’s not the correct option)

5. Once you’ve validated and applied your formula, the formula will appear as a column. Note that summary formulas appear as the furthest right column in the report (you cannot move it’s order in the report)

This is a glimpse into what Summary Formulas can do. 

READ MORE: Summary Formula Column to a Report

4. Row-level Formulas

From Summary Formulas to Row-level Formulas. They sound similar, but have distinct differences between them! Row-Level Formulas are applied to a single record and are displayed on the row itself.

Example: Check if two fields on the same record have the same value.

READ MORE: Summary Formulas vs Row Level Formulas in Salesforce Reports (+ Examples)

5. Reporting Snapshots

Reporting Snapshots allow you to take a picture of a set of Salesforce records and freeze the data on them for future reference. The most common use case is Opportunity Pipeline Change over time (tutorial linked below).

READ MORE: How to Set Up Salesforce Reporting Snapshots – Freeze Data for Future Reference

6. Historical Trend Reporting

While Reporting Snapshots capture a data overview at specific moments in time, Salesforce Trend reports are designed to glance back at historial field values on a given date (the “As of date”).   

As this tracking is more targeted (think about how more data is captured for you to find out the value, on a specific date, on-demand!), there are limits to the objects and fields you can track with Historical Trend Reporting:

  • Available for Opportunities, Cases, Forecasting Items, and up to 3 custom objects.
  • Choose up to 8 fields per object. 
  • 5/8 Opportunity fields are pre-selected. All 8 Forecasting fields are pre-selected.

Example: show the amount value my Opportunities had in the w/c 26/07/21:

READ MORE: Set Up Historical Trend Reporting

7. Field-to-field Filters

These special filters make it possible to compare values in different fields on a Salesforce report, when defining report filter criteria. 

Example: filtering a report to show only Contacts with donations this year greater than last year:

READ MORE: Compare Field Values in Salesforce Reports (with Field-To-Field Filters)

8. Stacked Summaries

Stacked Summaries summarize a substantial amount of data for quicker review and comparison. This view is automatically activated when you add fields to both rows and columns, and can be switched on/off at the bottom of the Report Builder.  

Example: show the number of Opportunities by account, by Opportunity Type. 

Clicking on one cell of the Stacked Summaries view will filter the report that sits below.

9. Joined Reports

A Joined report combines two reports that have different report types, within a single view. They appear like one single report, so that you can get a more holistic data view.

Add report “blocks”, and define the filters for each. 

Example: show account details in block 1, related cases in block 2, related opportunities in block 3.

READ MORE: Creating Joined Reports in Salesforce Lightning

10. Report URL Hack

Not a Salesforce Reports “feature” per say but a “hack” that will certainly advance your reporting skills. 

“URL hacking” parses over URL parameters to set values for filters (and fields), which is now supported in Lightning Experience. Reports URL Hacking means users can open a report with filters set by the URL parameters, removing the need to clone, replicate or have multiple reports. The URL parameters are dynamic, set automatically according to the record data the user is viewing. 

Example: launch an Opportunities report from an Account record, that only shows Opportunities related to that specific Account. 

READ MORE: Salesforce Reports URL Hack


Advanced reporting features in Salesforce are the tricks Salesforce power-users should know to ultimately create the reports users need – even with challenging data models – in the most efficient and scalable way (with minimal additional configuration).   

Give these 10 features a test drive in your own Developer org, and let us know what you find!

18 thoughts on “10 Advanced Salesforce Reporting Features

  1. Ben,
    Same for me, become aware of many good features while studying, it’s definitely indirect benefit of taking cert exams.

  2. Thanks Ben and nicely put. I actually failed my Advanced Admin exam (thought I’d passed damn!) but this sort of overview is fantastic – it really helps with context and you are right all of this is relevant to Advanced Admin, you need to know when to use what. I will try again in a couple of weeks!

  3. Ben, I observed than when I create a Report Type, if I have A -> B -> C and I need to include in my report, another field than “Name” from object C (C.AnotherField), I can’t. It doesn’t exists in the report builder … How can I do that ?

  4. Hi — For the Custom Summary Formulas, I am not able to find the field that I need (Quote Line Item Quantity).. How do I go about it?

  5. Hi Ben, this is an awesome overview – I was just a little confused about the exception Report example
    „From the above you can see we are looking at Accounts without opportunities that are closed equal false, showing us all accounts with open opportunities.“

    Why should I Look for Accounts without Opps and then in a Second step Filter on it? Can you make an example why this makes Sense ( I am sure it does but I am just not getting it)? Many thanks, Saskia

  6. Hello Ben,

    Your write-up is very helpful. it would be great if you could call out the difference between the Historical Trending and Reporting Snapshot features. Both seem to serve the same purpose. Thanks in advance! Shyamala

  7. Thanks for always being such a helpful resource, Ben!

    One question – what if I don’t want to have to pick certain dates, but just want it to show any time a field is changed and the what the new value was? For example, we’re tracking events and want to know who was invited or not and who RSVP’d as attending/not or no-show, etc. When the status field flips from invited to attending/attended, we lose a way to report the previous statuses (i.e. after the event when we look at who attended, we can’t determine which of those were invited vs which just came or were guests because we can’t see the “invited” status anymore). I have history tracking turned on but can’t figure out how to report on the history related list.

    Thanks again!

  8. Thank you for this article, Ben! Just curious if Historical Trending for Accounts is not available? I tried enabling it but whenever I search Accounts, Salesforce prompts “No trendable entities”. Is Account really not available for this feature or I just need to configure something else in Setup?

  9. “From the above you can see we are looking at Accounts without opportunities that are closed equal false, showing us all accounts with open opportunities.”

    This type of filter actually shows accounts WITHOUT open opportunities. Resulting report includes accounts that either:
    1) do not have opportunities at all
    2) do not have any open opportunities (or only have closed opportunities)

Add Comment