Skip to content
Reports

Understand the custom report builder

Last updated: January 20, 2022

Applies to:

Marketing Hub Professional, Enterprise
Sales Hub Professional, Enterprise
Service Hub Professional, Enterprise
CMS Hub Professional, Enterprise

When creating a report in the custom report builder, you’ll need to decide which data sources to select, how to configure your report fields, and how to configure your chart settings.

Below, learn about the different aspects of building a report and how to set up your report. For a video walkthrough of the custom report builder, including example reports, check out the Building Custom Reports in HubSpot lesson in HubSpot Academy.

Data sources

The first step of building a report is to select which data sources you want to include in the report. Data sources are the objects, assets, and events that you want to report on. The primary data source will determine the focus of the report, with all other data sources relating to that source. Whether a data source is primary or secondary will have a significant impact on the data returned in your report.

For example, you’re building a report that measures individual contacts by their count of deals in a table. In your table, you include two columns: Contact ID and Count of deals. If you select Contacts as the primary source and Deals as a secondary source, the report will show a list of your contacts and the number of deals associated with each. This table will not include any deals that aren’t associated with a contact.

If you were to change the primary source to Deals and the secondary source to Contacts, the report will show the number of deals associated with each contact, but will also include a row with (No value) listed in the Contact ID column that includes all of the deals not associated with contacts. The table total would then show a higher total sum of Count of deals

report-builder-no-value-table-row0

Connecting multiple data sources

Internally, HubSpot stores each data source's data in separate tables, similar to a set of spreadsheets. When you select multiple data sources, HubSpot may need to use additional sources to connect the data together. For example, contacts and deals can be joined directly without connecting additional sources, as those objects are closely associated in HubSpot. However, some data sources require connective data sources. For example, if your report's primary source is Deals and you want to include blog post data in the report, the Contacts and Web activities sources will also be selected automatically.

In the report builder, connective data sources will appear with a grey check mark to indicate automatic selection. Automatically selected sources count towards the 5 possible sources for your report.

report-builder-auto-join0

When HubSpot cannot create a path between data sources, those sources will become unavailable for selection. For example, if your primary source is Contacts and you select Blog posts as a secondary source, the Marketing email source will become greyed out and unavailable. 

custom-report-unavailable-source0

Fields

Fields in the report builder can be set as one of two types: dimensions and measures. The field's type reflects whether an aggregation is performed on the field's data. Setting an aggregation method on a field can be helpful if you want to return the field's data in a specific way, such as a sum or an average. For example, you may want to view the revenue of your deals as a sum for each type of deal to understand which types of deals result in the most revenue.

  • Dimension: a field with no aggregation, displayed as grey. Dimensions can be any data type, including dates, numbers, booleans, and strings. This type of field can only be added to the X-axis and Break down by slot. 

    custom-report-builder-dimension
  • Measure: a field with a set aggregation method, displayed as green. Measures are typically numerical or quantitative values, such as the number of associated deals. This type of field can only be added to the Y-axis. 

    report-builder-measure-example

By default, most fields are dimensions, with no aggregation method. However, you can adjust a field’s aggregation method by editing the field. The aggregation method can be set to any of the following:

  • None: no aggregation is performed on the field's data, and the field is set as a dimension.
  • Distinct count: returns the field’s count of distinct values, as opposed to including duplicate values. Available for all field types. Using Distinct count can result in the visualization displaying fewer data points than expected. For example, a deal report includes a Date contract signed field set to Distinct count. If there are two deals with the same Date contract signed date, the field will calculate them as a distinct count of 1. Drilling into the report will display both deal records. 

    distinct-count-row
  • Sum: returns the field's data as a total. Available for number field types.
  • Average: returns the average of the field's values. Available for number field types.
  • Min: returns the field's smallest value. Available for number and date field types.
  • Max: returns the field's largest value. Available for number and date field types.

Aggregation methods also determine how data appears in visualizations. For example, tables will only display totals for columns that use measure fields with the aggregation method set to Sum.

Rollup fields

When building a report with more than one data source, the report builder provides rollup fields to calculate data between associated objects.

For example, in a report where Contacts is the primary source and Companies is a secondary source, the company field Number of page views is a rollup property that calculates the number of page views for a given company based on associated contact activity. This type of field displays in yellow when hovered over in the left sidebar.

report-builder-roll-up-property-warning0

Using these fields in a report can result in unexpected data. In the above example, you may instead want to use the contact field Number of page views, because the contact field will calculate the number of page views per individual contact in the report. Using the company field Number of page views would instead result in displaying page view data for a contact based on all the page views associated with its associated company.

Chart visualizations

When building a report, you’ll need to choose a chart type and any additional settings to configure how your data is visualized. Below, learn about chart axes along with the available chart settings.

Chart axes

When adding fields to a report that uses a bar, line, area, or combination chart, you can choose which axis a field's data will be displayed on. In general, the X-axis is recommended for fields that contain category or text-based information, such as Lifecycle stage, while the Y-axis is recommended for fields that contain numeric information, such as Count of contacts.

Whether a field has aggregation will also determine where it can be placed on a given chart. Dimensions, which have no aggregation, can only be added to the Y-axis and Break down by slots. Measures, which have an aggregation method, can only be added to the X-axis slot.

Multiple Y-axes

Bar, line, area, and combination charts can be configured to display multiple Y-axes. This can be useful when you want to compare two fields that have different scales but use the same X-axis data. For example, you could use multiple Y-axes to compare the count of contacts and sum of associated deals per lifecycle stage.

report-builder-dual-y-axis0

When you add a second Y-axis to a chart, HubSpot will automatically convert it to a combination chart. You can then configure each Y-axis separately within the chart's settings

report-builder-y-axis-2-settings0

"Too many data points requested" error troubleshooting

When adding a field with a large amount of data to the Break down by channel, the report builder might return a Too many data points requested error.

too-many-data-points-requested0

To resolve this error, it's recommended to avoid breaking down a report by a field with a large amount of data, such as First name. However, you can also the following steps to reduce the amount of data returned:

  • Click the down down arrow icon next to the Break down by field, then click Set limit

    set-limit-break-down-by
  • Add a filter to the report to limit the Break down by channel to a certain number of data points. For example, if you're breaking your report down by Contact owner, you can add a filter to only include the most relevant HubSpot users. 

    report-builder-add-owner-filter
  • Similarly, add a filter to one of the other fields. For example, you could reduce the time frame of your report by adding a Create date is after 1/20/2022 filter.