Custom report types enable you to create reports that go beyond the standard Salesforce-provided ones. You can think of a Salesforce report type as a template/framework that tells Salesforce which objects and relationships to consider, and therefore which fields to make available for selection in the report builder – like a magnifying glass on your whole Salesforce data model.
In this post, we will go through the basics of custom report types, how you can get started, and some of the most common examples where creating a custom report type can enhance the reporting experience for your users.
What is a Custom Report Type?
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 wherever you create a new Report.
For the custom objects and relationships you create, Salesforce will automatically generate the report to get you started, but these will still be deemed Standard. This means that you will not have the option to pick and choose the available sections or fields.
While the out of the box options are great to begin with, the reality of business requirements and org-specific complexities will sooner or later bring up the need for Reports to include fields which are not already available, or even display data from objects further apart than the initial one – this is where custom report types come in.
Unlike standard ones, the custom report types allow you to tailor what your users can see and choose from when building Reports. This means that you select the starting object, the available fields, and even fields made available through other relationships from the selected objects, as you will see when we deep dive below.
Great examples of when to create a custom report type include scenarios where you need to report on more than two objects simultaneously, report on data “without” a relationship (such as Contacts without Accounts, rather than the typical “with” relationship), or access additional fields beyond those available in standard report types.
Experience Enhancements
Before going into the tutorial and examples, note that this post will use the enhanced custom Report Types experience and pages, which have been a huge change from the legacy version you might have already seen before.
The redesigned editor is bringing the well-known classic-like report types pages into the present, and will surely bring joy to all Salesforce Admins out there. Take a look yourself at the same report type layout editor viewed in the legacy experience, as well as the new one!
The new builder experience will become generally available in Spring ‘25, and can be enabled in Reports and Dashboard Settings within Setup, by checking the “Enhanced Custom Report Type Setup Page” box.
On top of the actual pages where you start building the report type, a new addition is the list view experience which works similar to those of other objects. You can create new list views, select fields to display, add filters and pin the one you use most.
How to Create a Custom Report Type
Creating a custom report type involves selecting the standard and custom objects you would like to include, and whether the parent object must have child records to be eligible for the report (which we will see later in the tutorial). The high-level steps to consider when creating a custom report type are:
- Think about the object(s) you would like to include in the report and what you want to report on.
- Depending on the Primary Object, the wizard will show you its child objects. You can also report on grandchild objects, up to a total of four objects.
- 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 pull a “without” report, e.g. Accounts with and without Opportunities which is the one we will deep dive into.
- Edit the report layout (which fields are included in the Report Builder, and where they are positioned). You can also set which fields should appear as report columns each time a user creates a new report.
Only Salesforce Administrators or users with the ‘Manage Custom Report Types’ permission can create custom report types, so check you have this permission assigned before continuing.
Follow along using our interactive tutorial:
Salesforce Custom Report Type Features
Now that you understand how to build a custom report type, it’s time to dive deeper into the highlights of custom report types. We have selected these four features that can add “wow factor” for your team:
- Default Columns: you can control which columns are already displayed on the report when users create a new one.
- Multiple Objects: add up to 4 layers of objects as long as they have a relationship.
- Fields via Lookup: you can add fields into the report from any related object.
- Sections and fields: create, remove, rename, and reorder.
1. Include Multiple Objects on Reports
When you need to report on more objects than the standard report types allow, you can add up to 4 layers of object relationships – so long as they are related.
Below, you will see a Venn diagram of a custom report type as it’s being created. It’s a nice visual aid to see the scope of your report type.
These objects are all related with lookup relationships (or master-detail), so each successive object that’s added needs to be a child/grandchild of the Primary Object in the hierarchy.
Each contact record must have at least one related record from the first child object, which must have at least one related record from the grandchild object (and so on…).
This is the option called: “Each “A” record must have at least one related “B” record”. This means that the report will only return contact records that have relationships with the child/grandchild etc.
What happens if each record doesn’t need to have a related record? At each level in the report type hierarchy, you can choose to select if related records are essential or not.
Each contact record could have related records from the first child object, which could have related records from the grandchild object (and so on).
This is the option called: Each “A” record may or may not have related “B” records. This means that the report will return all contact records, some with related child/grandchild etc. records, others not.
2. Add Fields Related via Lookup
With standard report types, fields are automatically added from related objects (depending on which report type we’re referring to) or when new fields are created on the objects.
When creating new custom fields, the option to automatically add it to custom report types is checked by default as well, removing the need to manually go and add custom report types where the object is used.
With custom report types, you can add fields onto the report from any related object. This is useful when you need to view fields that aren’t necessary to view on the record itself but are key to reporting.
This is not a possibility with standard report types, making it one of the main reasons why Salesforce Admins have to create custom report types.
By using the “+ Lookup Fields” button as you did in the above tutorial, you could add fields from the user object, even though the user object is not included in the custom report type hierarchy as the user is the Account Owner.
Similarly, if your organization is using Sales Territories, you can pull more fields through the relationship. For example, the Parent Territory of the Territory associated with the Opportunity. Note that all fields added via lookup will have an arrow pointing up as the icon.
In the legacy experience, when adding fields via lookup, they used to have a magnifying glass icon next to them. So depending on which experience you’re looking at, the icons are different.
3. Report Sections and Fields
Just like you can add sections and position fields on a Salesforce page layout, custom report types open up the opportunity for you to make the Lightning Report Builder suit your users better.
From the Edit Layout page, you can control exactly how the fields and sections display when a user is creating a report. You saw part of this in action during the interactive tutorial, but keep in mind you can always return to this page and create new sections as needed.
4. Default Columns
In the Edit Layout view, you can also set which fields should appear as report columns each time a user creates a new report. This will save your users time and is useful for drawing their attention to the most important fields.
1. Accounts With or Without Opportunities
By completing the interactive tutorial above, you have already successfully created this example. This report type will access Account records that may or may not have related Opportunities. The practical use would be for sales reps to identify accounts they haven’t targeted for a sale just yet, as well as following stage progression of existing Opportunities for their Accounts.
- Primary object: Accounts
- Store in Category: Accounts and Contacts
- Click to ‘relate to another object’: choose Opportunities.
- Select Each “A” record may or may not have related “B” records. (translation: accounts may or may not have related opportunities).
2. Contacts With Cases And Activities
This report type will access contact records that have related cases, and those related cases have related activities. The practical use would be for either the sales or support team to identify contacts who have been engaged in a case (which could mean they are unsatisfied with your product/service, and it’s best to wait before discussing further purchases).
- Primary object: Contacts.
- Store in Category: Customer Support Reports
- Click to ‘relate to another object’: choose Cases.
- Select Each “A” record must have at least one related “B” record. (translation: Contacts must have related Cases).
- Click to ‘relate to another object’: choose Activities.
- Select Each “B” record must have at least one related “C” record. (translation: Cases must have related Activities).
3. All Fields For an Object
This report type will allow you to have one go-to report type for all fields related to an object. While new custom fields can be automatically added to report types upon creation, when it comes to fields added via lookup it doesn’t work the same way.
By having a dedicated custom report type, especially for the core objects, it will also make it easier for users to know where exactly to go when they need to report on only one object – Opportunities, for example.
- Primary object: Opportunities
- Store in Category: Opportunities
- Edit Layout to suit your needs, and organize it in a way to make it as easy as possible for users to find what they are looking for by using sections and eventually changing the display name of fields.
Tips For Finding the Right Salesforce Report Type
With both standard and custom report types existing, it’s obvious that Salesforce users can have many options to choose from when they are looking to build a report for their particular use case. Have you ever felt overwhelmed? We don’t blame you!
Salesforce has invested time and energy to make the process of selecting the correct Salesforce report type far more user-friendly. But what does this all mean practically, as someone who relies on Salesforce day-to-day? Let’s find out.
View Available Objects and Fields in a Report Type
View the report’s structure (objects, fields) before even building it. When you create new reports and click on the report type, you will see a sidebar menu detailing which fields are available to use in the report type (either standard or custom).
This saves you a lot of time – previously, you would have to either launch a report for “trial and error” or go to the report type Setup. Safe to say, this is a huge time-saver.
Bonus: You can search the name of the field you would like to include. It won’t be necessary to scroll through an impossibly long list of fields (I’m not the only one who thinks this is marvellous, right?)
Filter Report Types by Available Objects
With this enhancement, you will be able to filter by any object/s you need contained in your report type. The difference is being able to filter vs view in a pop-up menu. This Salesforce reporting feature will enable you to easily see if a matching report type (standard or custom) already exists with your target objects.
Filter Report Types by Available Fields
Similar to the previous feature, this is going to be a huge time saver when building a report, especially if you’re looking to capture certain fields. This feature supports fields from different objects – see the example below.
View Objects Used in a Report Type
Perhaps our favorite feature, and one that is very useful especially for admins – being able to view the joins between objects when building a report will be a huge hit. The alternative has always been to navigate through Salesforce Setup, find the custom report type, and check out the objects and relationships selected there.
Summary
This guide has shown you how custom report types enable you to go beyond the out of the box ones available in Salesforce. By leveraging your own report types, you’re creating additional “magnifying glass” views into your Salesforce data model so that your users can locate the records they need and subsequently deepen their insight into your organization’s data at a glance.
Given the examples we included, you can test them out to build your confidence first. It’s a simple exercise now that will continue to provide a lot of value into the future!
Which custom report types have you created? Are you looking forward to experiencing the enhancements? Let us know in the comments!
Comments: