See Also

Custom Report Types. Reports are not powerful until you have a good grip on Custom Report Types.


Reports on Lighthing are much nicer to use, but much harder to build. But there is hope! We now have our Search functionality back as of Summer '19 and Anusha (the Report Builder PM) said in Summer '19 Release Readiness video that they were looking at adding the option to multi select fields #safeharbor - That will be a godsend. 

Matrix reports on Lightning are lovely. I don't know why people still hate them. 

Report Gotchas

On Group Edition, it seems that if the field is not available on the page layout, it does not appear on the list of available fields on the report. 

Report Type Tips

Choosing the right report type and knowing which report type to start from is the key to getting good at doing Salesforce Reports. Don't worry, you will always get it wrong and have to try it agian with another report type. 

Opportunity History Report Type

This has a record for each opportunity and each stage that that op went through. Do not use this report for calculating dollar values of opportunities. 

Report Tips

Don't be like me and save all reports to Unfiled Public Reports because you can not be bothered to create appropriate folders and file reports in them. 

For temporary reports I save them with an _ in front of the name so I know I could just come along and delete them at any time with no issues. 

NEVER EVER name reports with a date range in the name - you are just showing that you don't understand how reports work. 

Go to Report and Dashboard User Interface Settings and check to Exclude Disclaimer - but check if this is right for your organisation first. 

Report Subscription

FINALLY in Summer '19 the feature of Report Alerts has come to Lightning. Just use Report Alerts, with the Summary Option only. Do NOT use anything else. Do NOT email your data out of Salesforce! EVER! 

Unfortuntately there is NO option to enable ONLY Summary Reports to be subscribed to. AND as an Administrator - you will have to login as the user to see which reports they are subscribed to. This is completly shit! So you STILL have to trust your users. Note: Salesforce does have a label next to the Subscribe to Reports function that is completely useless that says "Subscribe to reports in Lightning Experience to schedule report refreshes and send notifications by email. Your organization's data may be saved and/or processed by third-party services, and Salesforce is not responsible for data users choose to send outside of Salesforce" just for CYA purposes. 

To Subscribe

Ensure you have ALL of the following permissions. Note that the Help Page neglects to mention Send to Groups and Roles.  

To Subscribe to Public Groups or Roles, ensure the Folder is first shared to that specific Public Group or Role. You just don't get the option in the Edit Recipeients dialog if this is not set up.  

Set the Subscription Settings similar to below. I chose another person running the report, becuase after I test it out I won't have it subscribed to me anymore. 

Remember, the report can not be run as "me" as in the person subscribing to the report, IF they have not set up the report by themselves, so they may see data in the report that they maybe should not see. In this case, the group is all Management so that is OK. 

And you can now even Subscribe to Refresh as Dashboard, but not have it emailed! Automatic Dashboard Refresh! But it does count against one of your 5 Subscriptions. 

Other Notes

Each user has a limit of 5 Report subscriptions - this is bad!. Even if you Subscribe 5 OTHER people to Reports and NOT yourself, it counts against your Subscriptions. This is quite ridiculous! 

Once you have created and clicked Run Report, there will be a Subscribe button on the far right. 

What reports am i subscribed to? Click the Reports tab and go to the dropdown box on the far right. One of the options is "Items i'm subscribed to".

New in Spring '19! Platform Users can now Subscribe to Reports!!! Woooohooo!!!!

Export Reports

You can now export reports as formatted reports or CSV. I would still export as CSV in almost all instances. 

See also Data Into Excel for some other tools that can also do export. Also see Salesforce: 9 Easy Ways to Export Data as .CSV

Report Creation Screen

Here's a tip. If you have folders, you can drag the whole folder onto the report canvas and it drops every single field in that folder onto the report. 

Don't do what I did - had a great report 95% completed, just wanted to add one more field - accidentally dropped the whole contracts object onto the report canvas - it was quicker to start again than remove 90+ fields. Save your reports!

Stupid Things about Reports

  • You can't change the fields that appear as standard on a standard report type. 
  • You can't add just a few fields to a standard report type - you need to create and then continue to maintain a Custom Report Types

Creating New Report with MavensMate

I have a complex report and I need to include one additional field in it - that field is from a related object and not available on the standard report. A Custom Report Type is the way to go - but annoyingly I can't just change the Report Type a report is based off. 

MavensMate to the rescue.



  • Create the new report based on the new Report Type - don't add any additional fields to it.
  • Make the new report have the same structure - eg if it's tabular or summary.  
  • Save the new report. 
  • Refresh MavensMate to get the new report's metadata. 
    • (I had to go into Edit the Project Metadata to include the report - but if you had chosen to include ALL reports in the metadata selection list, it should have probably come through. 
  • Find both reports in MavensMate and open them in two different tabs - or even two different monitors if you have them. 
  • Look at the structure of the old report - copy each section into the new report eg
    • <filter> to </filter> goes before <format>
    • <sortColumn> to </sortOrder> goes after <showDetails>
    • <timeFrameFilter to </timeFrameFilter> goes at the end before </report>
    • Copy all <columns></columns> to the new report replacing the columns that are there 
    • Save the new report in MavensMate which will try to deploy it
  • Gotchas. 
    • My ReportType did not have fields that were EXACTLY the same name as the standard Report Type, so I had to look up the Metadata file for the Custom Report Type to find the fields. But if you have created the ReportType based on the standard object, with not much fiddling then it should be OK. 
    • It did not like the Sort Columns and Time Frame Filters - so I just deleted them. 


  • Nope, I have had to give up on this. It is something to do with the column names in reports are different to the API names of the fields - eg the ContractNumber in the Standard Report is CONTRACT_NUMBER and it is the standard API Name ContractNumber in the custom report type. 
  • I get an error on saving that CONTRACT_NUMBER is an Invalid Field Name. I change that to ContractNumber and it says the same thing. I even try Contract.ContractNumber and it doesn't work. 
  • I deleted that column and it had an issue on the next column. 
  • So I give up for now. I don't have time to debug this when it will now be quicker just to bring up both reports side by side on different screens and rebuild it. Annoying, but that's life.