HubSpot calls in a live spreadsheet
Add the Calls table to a sheet as a data source named calls and its 41 columns become names your formulas, pivot tables and charts use. Sheets reads it from your HubSpot account each time the sheet opens or refreshes.
Each account's columns are its own HubSpot properties, custom ones included. The columns listed here are HubSpot's standard properties; custom objects are tables too (Enterprise).
Formulas on this table
=data.calls.sum(call_duration) Total call duration. Adds up the Call duration column over every row of Calls.
=data.calls.sum(call_duration, call_status, A2) Call duration per call status. With a call status in A2, the total for that one. Fill it down next to a list of them.
=list.calls(call_status) Every call status, once. Spills the distinct call status values down the column: the row labels for the formula above.
=data.calls.count(record_id, call_status, "<>") Rows with a call status. Counts the rows whose Call status is not empty.
=data.calls.avg(company_number_of_employees) Average company: number of employees. avg, min, max, count, countd (distinct) and first work the same way as sum.
Reports that use it
=data.calls.count(record_id, activity_assigned_to, A2, activity_date, ">=2026-10-01") Calls per rep this month. Logged calls per person they are assigned to since the first of the month.
Columns
| Column | In formulas | Type |
|---|---|---|
| Record ID | record_id | Text |
| Activity assigned to | activity_assigned_to | Text |
| Activity date | activity_date | Date and time |
| Call direction | call_direction | Text |
| Call duration | call_duration | Number |
| Call notes | call_notes | Text |
| Call outcome | call_outcome | Text |
| Call status | call_status | Text |
| Call title | call_title | Text |
| Create date | create_date | Date and time |
| From number | from_number | Text |
| Last modified date | last_modified_date | Date and time |
| To number | to_number | Text |
| Associated contacts | associated_contacts | Text |
| Associated contact IDs | associated_contact_ids | Text |
| Contact ID | contact_id | Text |
| Contact: Email | contact_email | Text |
| Contact: Job title | contact_job_title | Text |
| Contact: Lifecycle stage | contact_lifecycle_stage | Text |
| Contact: Contact owner | contact_contact_owner | Text |
| Associated companies | associated_companies | Text |
| Associated company IDs | associated_company_ids | Text |
| Company ID | company_id | Text |
| Company: Company name | company_company_name | Text |
| Company: Company domain name | company_company_domain_name | Text |
| Company: Industry | company_industry | Text |
| Company: Country/Region | company_country_region | Text |
| Company: City | company_city | Text |
| Company: Number of employees | company_number_of_employees | Number |
| Company: Annual revenue | company_annual_revenue | Number |
| Company: Lifecycle stage | company_lifecycle_stage | Text |
| Company: Company owner | company_company_owner | Text |
| Associated deals | associated_deals | Text |
| Associated deal IDs | associated_deal_ids | Text |
| Deal ID | deal_id | Text |
| Deal: Deal name | deal_deal_name | Text |
| Deal: Deal stage | deal_deal_stage | Text |
| Deal: Pipeline | deal_pipeline | Text |
| Deal: Amount | deal_amount | Number |
| Deal: Close date | deal_close_date | Date and time |
| Deal: Deal owner | deal_deal_owner | Text |
Other activities tables
Your calls, live
Contacts, companies, deals, tickets and activities become tables that formulas, pivot tables and charts read directly, opened inside HubSpot. Your numbers stay current without exporting.