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!

  1. Access the report type by clicking Setup | Create | Report Types | Report Type Name.
  2. Click Edit Layout in the Fields Available for Reports section.
  3. 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.
  4. In the window that opens, check the box titled Checked by Default.
Change the field display label and indicate if the field should be defaulted on the report.

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.

Determine what fields are available to report on using this field selector.

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:

Add fields related via lookup
Dig deep into the relational database by adding additional fields from related records.

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.

These field folders are created by default but can be modified to meet your specific business needs.

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.

Change Section Header
Modify the folder section names to represent your companies nomenclature.


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:

  1. Click ReportsNew Report…
  2. Check the box titled Select Report Types to Hide
  3. Click the check mark to change it to an X and hide the report type
Cleanup the list of available report types by hiding the types that aren’t used.

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!

48 thoughts on “ The Hidden Functionality of Custom Report Types ”

  1. 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.


  2. 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’.


    1. 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!


  3. 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?


    1. 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!


  4. 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?


    1. 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.


  5. 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



    1. 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.


      1. 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.


        1. 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.


  6. 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 ?


  7. 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?


  8. 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


  9. 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


    1. 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.


  10. 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!


    1. 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.


  11. 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 ..?


    1. 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.


  12. 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 …?


    1. 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!


  13. 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!


  14. **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!


  15. 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?


    1. 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.


  16. 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?


    1. 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.


  17. 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 ?



    1. 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?


  18. 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?


    1. 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.


  19. 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.


    1. 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.


      1. 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?


  20. 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-


  21. 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


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.