I am trying to create a report where I can show the total calls made by the team (aggregate), the calls answered by team based on our answered dispositions (aggregate), meetings booked based on call disposition “Answered - Meeting Booked”, and meetings attended best on deal create date
It would look like
Calls Made - 2,000
Calls Answered - 200
Demos Booked - 20
Demos Attended - 16
Hey @djoldzic, I can help you on this with navigation.
This is one of those reports that looks like it should be one simple funnel, but the reason it trips people up is that you’re actually pulling from two different objects: your first three metrics live on the Calls (activity) object, and “Demos Attended” lives on Deals (since you’re keying it off deal create date). HubSpot won’t let you force metrics from two objects into a single-value tile with one filter, so the trick is to build four separate single-value reports and drop them side-by-side on one dashboard. It’ll read exactly like the KPI row you mocked up.
Here’s how I’d build each one:
1. Calls Made (2,000)
Custom Report Builder > data source Calls. Visualization = Single value, measure = Count of Calls. Add your date filter (Call activity date) and, if you want team-only, filter Activity assigned to = your team/owners. That’s your denominator.
2. Calls Answered (200)
Clone report #1, then add a filter: Call outcomeis any of > and select every disposition you count as “answered” (Connected, Meeting booked, etc.). This is the key step, don’t rely on call duration, use your actual answered dispositions so it matches how your team logs.
3. Demos Booked (20)
Clone #2 again, but narrow the Call outcome filter to is equal to > “Answered - Meeting Booked” only. Same object, tighter filter.
4. Demos Attended (16)
This one’s the different animal, new report, data source Deals, Single value = Count of Deals, filtered on Create date in your range (plus deal type/pipeline if you want to isolate demos). Because it’s a separate object, keep it as its own tile.
Then: put all four single-value reports on the same dashboard, drag them into a row, and you’ve got your funnel view.
Two things I’d flag from experience:
If you want these to auto-align to the same date range, add each report to the dashboard and use the dashboard-level date filter rather than hard-coding dates inside each report, saves you re-editing four reports every month.
The Calls-vs-Deals object mismatch means the numbers won’t be “linked” (i.e. HubSpot isn’t confirming those 20 booked calls became those 16 deals). If you need true call-to-deal attribution, that’s a different build using the Calls+Deals association in the custom report builder.
Hope that helps, this exact setup has been rock-solid for my team’s daily activity dashboard.
Nice! the formula field build is actually cleaner than my three-tile version.
On multi-object, Yes! you can add Deals as a second source in the Custom Report Builder, but I’d hold off for your use case. The join only pulls deals associated to the calls/contacts and since your Demos Attended is based on deal create date (not call association), you’ll silently undercount. Plus the join duplicates rows, which can quietly break the formula math you just got working.
My advice is, keep your calls report as-is, build Demos Attended as its own single-value Deals report, and put both on one dashboard with a dashboard-level date filter. Reads like one funnel, but every number stays trustworthy.
Only go multi-object if your reps reliably associate every deal to its booking call, then it becomes a true attributed funnel, which is a better story.
@Alex_Boissonneault Double-clicking on the rabbit hole here. Activity reports trip people up because calls are going to first default to the contact.
@djoldzic You probably want to have [Company[] included in the multi-object report, because it’s sitting between the Deal and Contact, where the call is going to associate as a default.
I have some tips on how to bring the call data to the deal that might help
I recently had to build similar reports to get all associated activity from a contact to a ticket.It takes a bit of planning and opening associations to not drop the activity data off or silo it to just the contact.
0.0.) Plan out when you want to start attributing calls made to a demo.
If there is a time span that you want to factor out of the deal attribution, plan accordingly. You’ll have to have the Calls [Activity Date] planned in
1.) Check and fix associations (more below)
2.) Build sync or calculation properties to get [Call Outcome] to the contact and deal.
Rollup count property on the contact - # of associated calls placed.
Factor in the Activity Date and only count if it’s during the attribution period
Ex.
Calls Made = Contact Property - Count of associated calls where [Call Outcome] = Outbound
For the Deal - total all Calls Made with Activity Date during your reporting period
Quick visual of how I had to build those properties from connected activities