Use this article to create, view, and manage custom reports on the Advanced or Expert plan — from adding and configuring charts, to setting filters, choosing metrics, and sharing with teammates. You'll also learn how to explore the data behind any chart using the drill-in feature. Custom reports let you choose from over 100 chart templates and combine them into a single view tailored to your team's needs.
Note: You'll need the “Can create, edit and internally share reports” permission to create a report.
Create a custom report
To create a new custom report from scratch, go to Reports and click the + icon at the top of the menu, or go to Your reports and click on New report.
This will open the template library. You can select and customize a template, or click Create your own to start from scratch.
Add a report name and description
Give your report a clear title and description so you and your teammates can see at a glance what it’s for.
Add charts to your report
To add charts to your report, open the Add a chart menu on the right-hand panel. Search for popular chart templates and drag and drop them onto your report.
Chart templates are still completely customizable if custom reports are included on your plan. To edit an existing chart, select the Actions menu above the chart and then click Edit chart.
To build a chart from scratch, select Create your own from the Add a chart menu.
Choose a chart type
There are nine chart types to provide you with flexible ways of visualizing your data, including: KPI (key performance indicator), column, bar, donut, line, combo, area, heatmap, and table.
Learn more about using chart types and options to help visualize your data.
Set a date range
Select the date range for this chart using the date picker in the chart builder sidebar.
If you choose a relative date range like ‘Past 4 weeks’ the chart will always show you the past 4 weeks. If you choose specific dates like ‘1st - 31st of Jan’, it will always show data from those specific dates.
Choose a metric
Choose which metric you want to look at per timestamp (the date range you’ve selected).
See all definitions for conversation and ticket metrics, date filter timestamps, and attributes in Intercom reports.
Some metrics can be aggregated by average, median, percentile, minimum, maximum, or sum. For example if we want to see the average ticket time to resolve.
Use custom time intervals
When selecting a time-based metric (for example, first response time or time to close), you can group results into custom buckets using the "time interval" view-by attribute — a dimension that lets you segment chart data by a custom range. This gives you more flexibility than fixed intervals — you define your own ranges to better understand how metrics are distributed.
Choose how you want to group your data — for example, response times can be bucketed into 0–5 minutes, 5–15 minutes, 15–30 minutes, and 30+ minutes.
Create a chart using one of three chart types: bar chart, column chart, or table.
Two prebuilt chart templates are available in the Chart Library: First response time breakdown (table chart) and Time to close breakdown (table chart).
These templates are also included in the Responsiveness report template, so you can start using them without building from scratch.
Note: Custom buckets show a distribution — each bucket independently counts the conversations that fall within that range. This means buckets don't accumulate: a conversation counted in the 0–5 minute bucket is not automatically included in a 0–30 minute total. If your ranges overlap (for example, 0–10 minutes and 5–15 minutes), any conversation in the overlapping window is counted in both buckets, which inflates the denominator and skews percentages. To get a cumulative view (for example, the percentage of conversations resolved within 30 minutes), use non-overlapping buckets and add the counts manually.
Use conversation state metrics
Conversation state metrics give you a clear view of how conversations are progressing by showing how many were open or snoozed at the end of any given time period. This helps you track unresolved conversations, monitor workload, and identify potential bottlenecks for your team. You can also see how many conversations were reopened, providing insight into recurring issues or follow-ups that may need further attention.
In the metrics dropdown, you'll find three conversation state options to add to a chart. Each metric belongs to a reporting dataset — the data source it draws from:
Open conversations – The number of conversations with a status of “Open” at the end of the queried time period. (Conversations State dataset)
Snoozed conversations – The number of conversations with a status of “Snoozed” at the end of the queried time period. (Conversations State dataset)
Reopened conversations – The number of conversations that were reopened during the selected time period. (Conversations Actions dataset)
Five prebuilt chart templates are available in the Chart Library:
Open conversations (KPI chart)
Snoozed conversations (KPI chart)
Reopened conversations (KPI chart)
Closed vs. reopened conversations (column chart)
Open and snoozed conversations (column chart)
These templates are also included in the Conversations report template, so you can start using them without building from scratch.
Two additional metrics measure how long conversations have spent snoozed, making previously invisible time visible in your reports:
Average time spent snoozed – Measures the duration of individual snooze events. When a conversation is snoozed and later moves out of the snoozed state, that counts as one snooze with a duration. This metric averages those individual durations across all snooze events. (Conversations dataset)
Average total time snoozed per conversation – Sums every snooze a conversation had, then averages that total across conversations. (Conversations dataset)
Both metrics support the full range of aggregations (average, median, percentile, minimum, maximum, and sum) and break down by team, teammate, and time period.
Tip: Lead with the median when analyzing snooze time. A small number of conversations parked for days can pull the average up significantly, so the median gives a more representative picture of typical snooze durations.
Use multi-metric charts
Multi-metric charts enable you to view multiple metrics within a single visualization. This simplifies data analysis, making it easier to compare, contrast, and derive insights from various metrics simultaneously.
This is available on the following chart types:
Column
Line
Area
Table
Common use cases include:
Comparing the volume of new inbound conversations to closed conversations in one view to assess whether your team can keep up with demand.
Comparing teammates across various performance metrics in one view to identify top performers.
Click the Add metric button on the side panel of the chart builder to add multiple metrics to the same chart.
Note:
Filters can be added to each metric in a chart.
Metrics can be moved up and down to change the order in which metrics are rendered in a chart by dragging and dropping the metric block.
Multi-metric charts don't support segmentation.
Multi-metric charts don't support stacking, relative values or targets.
There is a maximum limit of 20 metrics on multi-metric charts.
Column, Line and Area charts only support metrics that have the same Y axis.
Table charts support any combination of metrics regardless of their Y axis, however, exporting chart data is not available for multi-metric Table charts.
If you select the chart drill-in for a multi-metric chart, you must choose which specific metric you want to examine in detail.
Create charts that compare two metrics with different Y axis
You can create charts that compare two metrics with different Y axis by using the Combo chart type.
The first metric selected will use a Column chart and use the left Y axis, and the second metric selected will use a Line chart and the right Y axis.
Combo chart types can only have two metrics selected.
Customize the chart legend label for a metric
Custom metric names can be added to the chart legend through the “legend label” input field in order to visually differentiate between metrics.
Metrics with custom filters and legend labels can't be saved as a custom metric for you to reuse in another report.
Apply office hours to a metric
You can set your custom report metric to be "Within office hours" for the following datasets:
Conversations dataset
First response time
Response time
Time from first assignment to close
Time to close
Conversation actions dataset
Teammate first response time
Teammate subsequent response time
Teammate time to close
Teammate handling time
Team first response time
Team subsequent response time
Team time to close
When using one of the supported metrics in your custom report, you'll see a Within office hours checkbox appear under the Metric dropdown.
Note: For teammate metrics on the Conversation actions dataset, the schedule used to calculate "within office hours" is determined in this order: the teammate's own schedule (if assigned in Settings > Office hours > Teammate schedules), the team's custom office hours (if set), or your workspace default. See How to use office hours in reporting for details.
Add filters to chart metrics
Add any filters you’d like for a more zoomed-in view of your data. For example, you might build a custom report for a certain region, in which case you’d filter for the relevant continent or country:
This supports both AND and OR conditions when selecting multiple filters, which is available at both a chart and custom report level. For example, this chart is filtered by conversations which have:
Combining two conditions with OR. Joining two filter conditions with OR returns conversations that match either condition — this widens your results, it doesn't narrow them. If you want two conditions to both be true (for example, 'assigned to Team X' and 'channel is Email'), use AND instead. Because a chart's drill-in uses the same filter logic as the chart, an OR filter that seems to do nothing in the chart will show the same widened results in the drill-in too.
Topic = “pricing” OR
Tag = “pricing”
Intercom takes a snapshot of the customer when the conversation starts which means that any changes to user and company attributes and tags after the conversation is created are not reflected in the reports.
A couple exceptions where the information is loaded in real-time: User name, User pseudonym, and User email attributes.
Additionally, some metrics (those that are calculated at the time vs. a static value, like Customer satisfaction) will display an error when the selected break down has more than 10,000 unique values for the range/filters. To resolve this, narrow your date range or apply additional filters to reduce the number of unique values in your breakdown.
Company attributes in custom reports
There are two distinct Company attributes available in custom reports on the Conversations and Tickets datasets:
Company – Reflects the contact's company at the time the conversation started. Because a contact can belong to more than one company, a single conversation may be associated with several companies under this attribute. It supports both filtering and grouping (segmentation). You can apply it at the report level or at an individual chart level; if you set a filter at both, the report-level filter takes precedence.
Company (conversation) – Reflects the single company set directly on the conversation via the inbox side panel or API (the company currently associated with the conversation). It supports both filtering and grouping (segmentation). You can apply it at the report level or at an individual chart level; if you set a filter at both, the report-level filter takes precedence.
Filter reports by Customer segments
Although Customer segments cannot be used directly as filter conditions in reports, you can tag members of a segment and use user tag as a filter instead.
This workaround works at both the report level (using report filters at the top of the page) and at individual chart level filters:
Navigate to your Customer segment and tag all members with a specific tag (e.g., "Enterprise Customers" or "Trial Users").
In your custom report, add a filter for User tag.
Select the tag you created to filter the report data to only include users from that segment.
Tip: Keep your segment tags up to date by regularly re-tagging segment members, or use automation to apply tags when users enter a segment.
Give the chart a name and description
Give the chart a name and description which helps you clearly identify what this chart shows (the description is a good place to call out any filters you've applied to this chart).
Click Add chart to save this chart to your report. You'll be taken back to the report canvas, where you can continue adding more charts.
There is no limit to the number of charts in a report.
Edit charts
To edit, duplicate, or delete an existing chart from your custom report, hover over it and select an option from the Actions dropdown.
Note: You'll need to edit the report to see all of these options under chart Actions.
Charts can be moved or resized on your report by pulling from the bottom right corner.
Set report timezone
Charts are based on the workspace timezone by default, and reflect your office hours settings if the Within office hours option is enabled for any metric in the report.
To change the timezone for a custom report, select a different timezone from the dropdown at the top of the report page.
Setting a timezone is only available on custom reports.
How does the timezone selector interact with my date range? If you're using a preset date range (for example, 'Past week' or 'Month to date'), changing the timezone recalculates the range automatically so it still covers the correct calendar days in the new timezone. If you're using a custom date range (specific start and end dates), changing the timezone does not move those dates — it re-reads the same underlying moment in time under the new timezone, which can shift which calendar day it falls on. If you change timezones on a custom date range, re-check (and re-select if needed) the dates to make sure they still cover the days you intend.
Add filters to your report
You can apply filters to both reports and individual charts. Here’s how these filters interact:
Report filters apply to charts within the report
When you add a filter to a report, it automatically applies to all charts within that report.For example, if you apply a date filter to the report, this will override the date filter of any chart within the report.
If a chart is set to display data for "today," but the report’s date filter is set to "yesterday," the chart will display data for "yesterday" when viewed within the report.
Chart builder filters are not overridden
Report filters do not affect what you see when building or editing a chart in the chart builder. They only take effect when viewing the chart within the report.Filters combine in an "AND" relationship
If both the report and a chart have filters, they combine as if they’re joined by an “AND” condition.
For example, the chart in this report filters for data from Germany, and we’ve applied a filter at the report level for ‘Channel is Email’. This means the chart is now showing data from conversations started in Berlin via Email.
Note:
The ‘Channel’ filter will only contain those channels where you have installed Intercom.
Custom events are currently not supported for filtering custom reports.
Custom Reports detects two types of filter conflicts and shows a warning banner on the affected chart. A tautological filter forces a metric to a fixed value — for example, filtering a CSAT (customer satisfaction) % Happy chart to show only 'Happy' ratings means the metric will always show 100%. A redundant filter occurs when the same filter is applied at both the chart level and the report level. Filter conflict warnings are currently only shown on some chart types.
Add a banner component
When building a custom report, you can add a banner component — a text block for adding titles, context, or notes directly on the report canvas:
Edit the report.
Click Add chart and search for "banner".
The banner component supports the following formatting and layout options:
Font size
Font weight
Font position
Adding a link
Changing the color
Resizing the component
Save and share your custom report
When you've finished customizing your report, click Save.
Clicking Save opens the report sharing options, where you can control who can view or edit the report. You can also click the Share button any time from the top of your report to update these settings.
View custom reports
Any custom reports that you create personally, are listed in Reports > Your reports.
Any custom reports created by other teammates and shared with you, are accessible from Reports > All reports > Shared with you.
Learn more about report sharing and accessibility.
When viewing a report you can easily add more filters which will apply in addition to existing filters that are set within the charts.
For filters to persist after closing the report (and be visible to other teammates with access to the report), you'll need to edit the report, apply the filters, and then save the report.
**Note:** The "Updated X min ago" pill in the report header reflects the slowest-syncing dataset in the report, not the fastest. If your report combines datasets that sync at different rates, the freshness timestamp shows the oldest sync time. This doesn't mean your data is delayed or broken — it's expected behavior when a report mixes datasets with different sync rates.
Explore the data behind your charts
Every chart has a drill-in feature, which lets you click any data point to see the individual conversations behind it. This helps you understand the factors driving your results and make data-informed decisions faster.
Manage custom reports
You can edit, duplicate, or delete any custom report that you have full access to. Go to Reports and open the report you want to manage, then use the options in the top right to:
Share
Edit
Duplicate
Add to favorites
Delete
Seeing unexpected results?
If you’re unsure of the data in your reports, check out this article for a close look at some of the details.
Need more help? Get support from our Community Forum
Find answers and get help from Intercom Support and Community Experts
































