Custom report types in Salesforce are great. They let you build an array of relationships to see data in a variety of complex ways. But they also hold some secrets that most admins don’t know about.
It wasn’t until I took the Advanced Administrator certification class that I learned the secret functionality of custom report types. With just a few extra keystrokes, administrators can make these reports far more user-friendly.
Let’s take a look!
Set Default Fields
When selecting a standard report type, Salesforce will populate the report with a few default fields. This makes the report building process much easier.
Custom report types don’t default any data adding several extra steps for users. But, you can add some immediate value to the report by defaulting fields to the report type – giving users an immediate report template to build off of.
Here’s how to do it!
- Access the report type by clicking Setup | Create | Report Types | Report Type Name.
- Click Edit Layout in the Fields Available for Reports section.
- Fields with a checkbox in front of the label are already defaulted. To add a field to the default layout, double-click the field name.
- In the window that opens, check the box titled Checked by Default.

Notice that in this new window that opened, the field label can also be changed in the Display As section. The change made here doesn’t reflect on the Salesforce record – it just updates the name in the report builder and the output report.
This is an excellent way to add clarification to a particular field if there tends to be user confusion or wholly rename everything. I think there is an April Fool’s day joke in there somewhere!
Conversely, to remove a field from being a default value on the report, uncheck the Checked by Default box.
Hide Specific Fields from Reports
Custom report types also allow us to determine which fields can be reported on.
Have old fields that you don’t want users to be able to pull into a report? Perhaps you just wish to reduce the number of fields available to report on to help streamline the report creation process. It can be done!
While fields can be removed, it is important to note that sometimes, fields also need to be added to the report type. Specifically, when adding new fields to an object, the new field doesn’t always show up in the report because it hasn’t been added to the report type.
If this seems janky to you, it is. Vote for this idea to have new fields automatically added to report types.
Alright, let’s look at how to hide or show fields on the custom report type. Follow steps 1 and 2 above to access the report type.
First of all, notice that on the right side of the page, there is a box that shows fields for each object in the report type. In the View section, choose the object to review.

Fields that are available on the report are shaded gray. The fields with the green/brown color are hidden from the report type. This means that users will be unable to report on the data in these fields.
When a new field is added to your object, it tends to end up here – inaccessible to the report.
To add this field to the report type, simply drag it into the appropriate section.
Add Fields via Lookup
Not only can you add or remove fields related to the objects in the report type, but additional fields from related objects can be added to the report as well.
In the report type that I have been working with, Accounts and Contacts are the two primary objects. But let’s say that I want to pull in more specific information on a related object (where a lookup field is used) such as owner email address. We can do that!
In the above screenshot, you’ll notice a hyperlink under the object picklist which says Add fields related via lookup. When clicking on this, all objects related to the selected object will display. In this example, I am looking at Account Fields. When I click the link, this is what I see:

By clicking into any one of the options, I’m presented with and add any number of additional fields. Clicking on Account Owner, I can select any number of fields related to the owner including email address.
These additional fields are useful for adding additional context to the data but also for slicing and dicing the data multiple ways using filters.
Change Field Section Folder Names
Salesforce’s report builder does a decent job of grouping fields in the field panel, but certain fields make sense in a different folder section. There may even be a need to create a whole new custom folder section.

In the above image, we can see that there are two folders in the field panel of the report – Accounts and Contacts. These folders match the sections visible in the custom report type editor (where we were adding, removing and defaulting fields above).
Let’s say that we want to create a new section and organize the fields totally different than what Salesforce provides.
Following steps 1 and 2 above to access the custom report type, the click Create New Section. Once the section is created, drag and drop any fields from other sections to this new section.
To edit the labels of existing sections, click Edit in the red header to rename.

Hide Unused Report Types
In the Spring ’14 release, Salesforce gave us the ability to hide unused report types. With so many default report types provided, hiding unused report types can increase adoption of reports, reduce confusion for users and streamline the process of choosing a type of report to build.
To hide specific report types:
- Click Reports | New Report…
- Check the box titled Select Report Types to Hide
- Click the check mark to change it to an X and hide the report type

With these hidden functionality gems, reporting will become more productive and provide users with a lower barrier to entry when it comes to creating their own reports. We all want self-sufficient users and simplification is one of the key components to users helping themselves.
Consider adding the report type clean-up to your list of items to audit so that they are regularly cleaned and updated and unused report types are removed from view or deleted.
What other setting or tips and tricks did I miss when it comes to report types? Let me know – leave a comment!
Great stuff Brent!!
LikeLike
Thank you Susie! Glad you enjoyed it.
LikeLike
Great tips here! I always forget about the ability to hide report types. I have about 15 dev instances I should go back and cleanup.
The one item that I find invaluable is the ability to: Add fields related via lookup
The ability to reach through any number of lookup relationships (Standard or Custom) and pull information and details to the report level is so useful in so many ways. Really provides great utility for filtering and display of detail data.
LikeLike
Pete, that is another great hidden feature of custom report types. I’ll have to update this post to include that one as well!
LikeLike
I would create a custom report if one of the reasons applies:
* You want to filter data utilizing the object model – ex. Accounts with Activities
* Want to include ‘related data’ in the report that a standard report cannot provide. Ex. Cases with custom Case owner information
* You want to hide select fields from the ‘general public’. Ex. a simplified ‘opportunity’ report that only includes the Top X fields.
One tip – if you’re creating a custom report with an object relationship, include that information in the report label. Ex. Accounts with Opportunities or Cases with or without Solutions.
If it’s not labeled it becomes difficult to understand why one report returns different results than another, if the object model is filtering records ‘behind the scenes’.
LikeLike
Great suggestions Matt. I am in the process right now of cleaning up our report type labels because they don’t match that naming convention and it becomes difficult to determine when that specific report type would be used. This is something I must have learned from you!
LikeLike
Facing some difficulties, maybe you’ll have an idea how to overcome it
I had to create a custom object with custom fields that will calculate the split (since split only available on opportunity page). No challenge is to have these fields work for report that will be used in a drill down by person dashboard. Any ideas how to overcome it?
LikeLike
Hello Liubov! Is this custom object connected to the user via a lookup? You’ll want to ensure that you can access all of your data points through no more than 3 levels deep (that’s the standard limit to report type depth). It sounds like these records should be assigned to an owner which would be the rep. In addition, there should be a lookup relationship to the Opportunity. Actually, you probably just need the relationship with the opportunity because you can use the opportunity owner as the user grouping. Let me know if that helps (or if it doesn’t). Thanks for reading!
LikeLike
Hi Brent, it’s great to find this page it will be very helpful to our company users who always find reporting a challenge! Thanks for all the tips.
I have one issue though while I am testing, I am trying to add the default fields to a custom report and I do not see the field listed in the grid. It is a field that we have had on the Opportunities object since day one and so I would think should appear on a custom report type that was created later? Any advice here please?
LikeLike
Hello Sophie! Custom report types should include all of the fields on the objects selected as of the time the report type was created. If you aren’t seeing specific fields in the selected list or in the list of available fields, there may be something else happening. You may want to open a ticket with Salesforce support.
LikeLike
Hi,
The custom report type in still in development status.
Report type is not visible to end user but the reports created are visible to the users.
How? please help
Thanks.
LikeLike
Report types are GA and have been for more than 5 years. End users won’t be able to create custom report types, but they will be able to create reports based on the report types you create and activate. Be sure that the custom report type created is deployed – otherwise the end-user will not see the custom report type created.
LikeLike
My issue is report type is still in development status, user cannot see this.
But the reports thst are created using this report type are visible to user in the folder and when they try to access they get insufficient priveleges(As report type is in development status). but my question is how come the report is visible to user in the reports folder when report is not accessible.
LikeLike
Okay, I understand now! Even though the report type isn’t activated yet, you as the Administrator have the ability to build and save reports using that report type. This is mainly for planning purposes and ensuring that the report type is accurate before deploying to the organization. I would create a new folder, accessible only to Admins, which contains these “test” reports built on the new report types that haven’t been deployed. Once the report type has been deployed, move the report to a public folder where end-users can access the report. That should take care of the issue.
LikeLike
In Dev environment We have have created so many fields (approx 100 fields for 10 objects), I have to add these fields in the Custom report Types, So I have to open each and every report Type manually (Approx 120 report types) and also need to drag & Drop each fields, So totally i have to drag & Drop for 2150 times, Its painful to do.
Is there any easy way (or automated way or Programmatic way) to do it quickly and wihtout more manual effort ?
LikeLike
I hear ya! It’s brutal. There isn’t a way to do this automatically, but there is an idea on the IdeaExchange for this very thing that you should vote on: https://success.salesforce.com/ideaView?id=08730000000h8DhAAI
LikeLike
Excellent!!! This is so well done. I am going step by step to master these concepts! Thank you!
LikeLike
Awesome! They will help your reporting process a ton.
LikeLike
Thanks for creating and posting such a great article! I didn’t realize it was possible to change field section folder names in Salesforce. I need to create some short animated demos of Salesforce functionality showing the configuration for a client’s instance. What tool or application did you use to create the great animated .gif in the “Add Fields via Lookup” section of this post?
LikeLike
Hey you save my day yar. Because in my organisation we created lots of reports i stuck in a place called reports.Because in my org leads have record types.I got a requirement like create same label names fields in lead page.I stuck this place because when i come to reports it showing the same label twice i cannot create based on this.But, you saved me like create a custom report and create sections and change the name labels in reports.I want to lean Integration in sfdc can you share any posts regarding it.I will love your tips
LikeLike
Hide function hides the report type from all users. Is there a way to hide it selectively from specific set of users ?
LikeLike
Not currently – I believe it’s all or nothing.
LikeLike
Hi Brent,
I am new to SalesForce. I can create a custom report type and add filters. I am facing a problem with adding custom filters displaying a picklist for user to select. for Example: I have a custom report type between Accounts and opportunities. I want a custom field filter for “Account Type” displaying a picklist for user to select the available Account types and then click Run Report. Is this possible? I can create custom field filter “Account Type equals “Customer” but cannot diplay a picklist for the user to select
LikeLike
You’re actually building the report filter picklist in the report builder. Where you’ve created a field filter for “Account Type equals Customer”, you would continue to add additional values – one for each value housed in your Account Type picklist.
LikeLike
This made my day. Thanks!
LikeLike
This is a very insightful post! Thank you, Brent!
I had one more question that I am hoping you could answer for me.
When I filter a report to show only contacts who have a phone number (for my call team), the report defaults to adding the the “Account” phone number whenever the “Phone” field is blank. So my call team clicks on records from the report where it is assumed that we have their phone number, only to find that all of the phone number fields are blank.
I expect there is a simple solution, but the office database managers have been unable to find one yet.
Any ideas?
Thanks for your help!
LikeLike
I’ve come across these types of oddities in reports as well. I have found that, for Contacts, it may be easier to create a custom report looking at Contacts only. What’s happening is that the report type you’re using is evaluating the Account because of it’s relationship to the Contact. Give that a go and hopefully it will result in what you’re looking to accomplish.
LikeLike
Hi All ,
I have followed the above steps and hide the report type.same like that some other user also will do like that ..How can we track this who hide the report type ..?
LikeLike
Are you wanting to find out who hid a report type? There isn’t a way that I know of to track that, but the permission to manage report types is awarded to a user’s profile, (System Admin by default) and narrow it down from there.
LikeLike
Thanks BRENT ,
But I have more than 100 admins in my system .
But we have to track it .many report types are hidden .is there any way …?
LikeLike
Woah! Over 100 System Administrators?! My first suggestion is that you need to find a way to pair that down – that’s absolutely insane! I can’t think of a single reason why there should be more than 5 Admins in a single org. If users are setup as Admin’s that’s a HUGE problem! I’m sure that the management of reports isn’t the only issue you’re facing!
LikeLike
Thank you so much for your blog! Using your instructions I was able to get the Organization Business Hours fields to appear in a record type. What I am trying to do is tell the report not to give Data for Saturday and Sunday. But I am stuck here! Any thoughts will be appreciated!
LikeLike
**Sorry for the earlier comment that has a mistake. I meant Custom Report Type and not Record Type.
Thank you so much for your blog! Using your instructions I was able to get the Organization Business Hours fields to appear in a custom report type. What I am trying to do is tell the report not to give Data for Saturday and Sunday.
But I am stuck here! Any thoughts will be appreciated!
LikeLike
Brent, thanks so much for the tips!
I wish I would have known some of these a couple of years ago.
I’m actually struggling with a custom report type problem right now and was wondering if you might be able to help.
I would like to create a report type that is Opportunities with Partners, with and without bookings (custom object). The problem is that the custom object isn’t available after I select the Partner object…a bunch of other objects are
Is there any trick that can be used to pull in the custom object?
LikeLike
Hey Julie, without knowing the data model (not sure what Partners are and how Bookings relate to these objects) it’s hard to say. Salesforce reporting requires some sort of relationship to traverse in reporting, but the main object you select is key to getting the right data set.
LikeLike
I want to create a custom object to manage our licenses (not community licenses.) I am trying to retrieve the number of available licenses from the company information page. I CAN create a report type of users that includes a field containing the total number of licenses available, by way of “User Fields (via lookup)
Lookup Path: Users>>Profile>User License>Total Licenses
But I can’t seem to do that with a formula field on a custom object.
Is this possible? I want to manage our licenses, keep track of how many I have and how many are available.
Is the only way I can get this information by looking at the company profile page?
LikeLike
Are you referring to your company’s Salesforce licenses? I’m not sure of a way to capture that Company information in a report. You may need to create a field in the custom object that houses the number of licenses. It would be a constant (like a formula field) and could then be easily updated when your license counts change.
LikeLike
Hi Brent,
I am facing an issue in the “ADD FIELDS VIA LOOKUP” section. I have a custom object “Cycle” and I want to extract the record owner’s fields. The record owner’s data is stored is stored in the standard User object.
When I use the “ADD FIELDS VIA LOOKUP” this way : Cycle >> Created By ; I get all the fields (standard+custom) of the User object.
But when I go this way : Cycle >> Owner ; I get only a few fields like Name, Profile, Role etc(no custom fields).
Now in my case the Created By user is different than the Owner and I need specifically some custom field values of the Owner user. Is there any way to derive those custom fields in the path Cycle >> Owner ?
Thanks,
Sou
LikeLike
Hmm, that’s interesting. I’m not entirely sure – as long as it’s Owner is a lookup field, it should display the resulting fields related to the Owner user. Can you confirm that it’s a lookup field?
LikeLike
Hi Brent,
In Salesforce, there is a requirement for me identify the Custom Report types that are not in use. I do not have local admin rights added to my Profile. So, I can access Data loader and basic Salesforce instance. Can you suggest how to identify Customer Report types that are not in use currently?
LikeLike
Hi Somdatta! You’ll probably want to have System Admin permissions, or at least full access to all reports in order to make this work. When you run the report on reports, you can identify the report type being used for each report. I would summarize the report by report type and then go through the list of custom report types in your org, doing a stare and compare. Process of elimination will determine which custom report types are not being used.
LikeLike
Hi Brent,
I came across your website resource and I ‘ve followed this series religiously. So well put together for beginner and easy to follow. What advice do you have on how to proceed with learning salesforce. The resources out there are really overwhelming and I’d love to learn more about Salesforce admin.
LikeLike
Thank you very much YAZ! I appreciate the feedback. My suggestion would be to focus on Trailhead. There is a lot of great content there, and you’ll get some “hands-on” knowledge as well which I think is very helpful in learning.
LikeLike
Hi I have below 3 objects
Account (Parent) —>Child objects (Lookup) SH and OH.
SH and OH Objects have common field name Order Date.
When i create a join report of SH and OH Objects is it possible to group the report by Order Date filed?
I am unable to findout Order Date field in common Field area?
LikeLike
eCourier-
Do you need people inside as well as outside of your organization to have access to your monthly Salesforce reports? eCourier lets you choose any existing report in your organization, be it standard or visual force, and lets you schedule it to be sent to any user, contact or even external email addresses. Download and try the latest version for FREE now- https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000EqoElUAJ
LikeLike
Hi, I’m having issues find the report type used for an existing report to be able to do such modifcations as shown above.
I’ve checked in both lighthning and classic editor, but I just can’t locate the report type to edit it
LikeLike