Salesforce Reporting

Learn all about Reporting in eComm's instance of Salesforce, primarily to create audiences for communications sent via Marketing Cloud. Before diving into eComm data, it's crucial to have a basic understanding of the Salesforce Reporting interface. After, find templates of common populations to clone (below) with the option of further customizing and familiarize yourself with eComm's data dictionary to better understand the 500+ data points that can be leveraged.

Data Dictionary Entity Relationship Diagram




Those tasked with creating audiences can apply the entire process by cloning the eComm specialist Training Plan. After reading the instructions below, navigate to the Reports & Data Extensions tab to practice creating a variety of Reports (populate Column C) while following along with the examples in the video below.

ROW 3 | 13:55, ROW 5 | 19:02, ROW 6 | 23:27, ROW 12 | 25:47, ROW 17 | 30:27


Email Performance

REPORT TYPE | Email Send

How is my recurring email performing over time?

View a comparison of how a recurring email is performing over time. The template uses 'Email Name CONTAINS' to find recurring messages (like a weekly/monthly newsletter), assuming the sender consistently names their emails. 'From Name', 'From Email', or 'Subject line' are also commonly used.

How did a single email perform?

The template leverages 'Email Send Number' to filter for a single email.

If only interested in analytics for a single email, you can view the Email Send rather than viewing a Report of it.


Email Engagement

REPORT TYPE | Contacts with Individual Email Results  (IERs)

Who received an email?

A Report of who recieved a particular Marketing Cloud email.

Individual Email Results are archived from Salesforce after 90 days. That means you must reference an Email Sends from the last 90 days to have data render in an Individual Email Result Report. 

Who didn't open (or click) an email from Marketing Cloud?

A Report of those who didn't engage with an email.

!TIP! Marketing Cloud will have a hard time sending an email to the Report above due to the immense number of Individual Email Result records that exist in Salesforce. If you want to send a followup message to those who didn't open a message, it's a best practice to use the Report above, then add these individuals to a Campaign (to be converted to a Report for sending). To do so, run the Report >> select the down arrow in the top right >> choose Add to Campaign in the dropdown (screenshot below).


Who didn't open any Marketing Cloud emails in 6 months?

Not currently available... 

Event Engagement

REPORT TYPE | Campaign

Who registered for an event?

A Report of individuals who registered for an event.

Who attended an events?

A Report of individuals who's event particpation was tracked (event attendees).

Who did NOT attend an event?

A Report of individuals who registerd for an event but did not attend (no-shows).

Note: The Campaign Member Status of 'No-Show' will not populate until the event ends. Before the event end date, the Campaign Member status will read 'Registered' (unless marked as 'Attended'). If the event planner doesn't track participation, all registrants will appear as 'No-Shows' after the event ends.

Who attended 2+ events?

REPORT TYPE | Custom Report
Not currently available...

Salesforce Reports Created

A Report of Reports created by a partiular person.

CAN-SPAM Violation

REPORT TYPE | Email Send
Use this Report to identify if a user violated CAN-SPAM by sending an email to a Campaign (rather than a Report or Data Extension).


  • Confirming an accurate audience Report is crucial to getting your message to the right people. There are some methods to verify your work to avoid an incorrect Report.


  • Different Report Types can give the same end result, but with a different approach. For example, if you are reporting on contacts who are in a Campaign you could:
    • Use the Campaigns with Contacts Report Type and use Campaign ID in the criteria. That way you can drag in the Campaign Name column to confirm the Report criteria is as desired. 
    • Use the Contacts & Accounts Report Type and use Campaign History as a cross-filter to add Campaign ID in the criteria. In this case you cannot pull in the Campaign Name column used in the cross-filter, making confirming accuracy more difficult.
  • Not sure what Report Type to use?
    • Start with the templates above OR
    • Select your own Report Type, remembering that the available columns will be dependent on the Report Type objects


Reports can often have the same contact listed numerous times, so identifying the unique count is important to confirm the Report criteria is accurate. Having a total 9,000 unique contacts when expecting 250 is an indicator of incorrect criteria and should be investigated.

  • To check the Unique Count:
    • Edit the Report
    • In the Contact ID column header click the down arrow >> select Unique Count in the dropdown
    • Run the Report to see the Record Count versus the Unique Count
  • Do not leave the Unique Count enabled if sending as doing so will make it fail. To remove a unique count:
    • Edit the Report
    • In the Contact ID column header click the down arrow >> select Remove Unique Count in the dropdown
    • Save the Report


  • Large Reports can take a long time to run and can even result in a failed send. To avoid this, it's best to optimize Reports. When a Report is simplified, a very large population can still be sent to suceessfully. If a send fails, there are steps to remedy it.
  • By limiting the number of records returned, adding a filter can significantly speed up reports.
    • Because they limit the amount of data returned by reports, you'd think filters would always make reports run faster. But because each record must get evaluated against each report filter, filters with complex logic can slow down reports. Apart from the performance-slowing filters described in this guide, adding a filter to return fewer records is a sure-fire way to speed up a sluggish report.
  • Filter with EQUALS instead of CONTAINS
    • When you set a filter with CONTAINS the report executes many steps to return data, which slows down the report. EQUALS executes in fewer steps, resulting in a faster report.
  • Filter with NOT EQUAL TO instead of DOES NOT CONTAIN
    • When you set a filter with DOES NOT CONTAIN the report executes many steps to return data, which slows down the report. NOT EQUAL TO executes in fewer steps, resulting in a faster report.
  • Don't filter by row-level formulas
    • Filtering by a row-level formula slows down reports. If you have a slow-running report that filters by row-level formulas, speed it up by removing the row-level formula filters.
  • Remove unnecessary columns
    • Much like returning lots of records can slow down a report, returning many columns can slow down a report. Many report types add a dozen or more columns to a report when it’s created. Removing columns you don't need speeds up the report.
  • Avoid using the filter 'Contact ID' to include a few people in a larger Report
    • For example, if you have a Report of students it seems convenient to include a few people from your office in the Report based on their Contact ID. These Reports should be separate, one for students and a second for those in your office you need to be aware of delivery. 


  • Start with a Report Type that uses the fewest objects, while allowing you to apply a critera without using a cross filter.
    • For example, instead of using the Contacts & Accounts Report Type, use the Contacts Report Type. This is render the same information while evaluating half as many records.
  • When you need to Report across multiple objects, it's better to have those objects in the Report Type, rather than applying a cross-filter.
    • For example, instead of using a Contacts Report and using a Interests Cross-Filter, use the Contacts with Interest Report.

If you experience a failed send* to a Report, follow these steps:

  1. Try the send again. Sometimes it is a fluke and sending at a different time is enough to get it out the door successfully.
  2. If you haven't already made your Report as simple as possible (above), do so and try the send again.
  3. If it still fails, convert the Report to a Data Extension and use the Data Extension instead.
  4. If your send still fails, contact the System eComm team with relevant details (MID, Email ID) to troubleshoot.
    • If sends continue to fail, a notification can be enabled in the Business Unit. Failed send notifications are only triggered due to "a system error or subscriber limit," so if the error is outside of these reasons, the notification will not be activated. eComm has yet to experience a failed send for a systemic reason, but there is no harm in enabling the notification.

* A failed send is not the same as a successful send to 0 individuals. We have other documentation to troubleshoot other sending issues

Field Editing Enabled

'Field Editing' within a Salesforce Report became available in early 2023 but has little use for eComm specialists. While technically you can click Field Editing Enabled then edit cells in the Report by selecting the pencil icon, it will likely be overwritten (since 99% of our data is coming from a source system). The ONLY relevant use-case for eComm specialists might be updating data for Standard Contacts that they uploaded.