Reporting on Sales First Response Time in Hubspot

Hi!
How do you pull reports on first response times to new leads assigned to Sales reps?

Ideally, I would want to be able to record the time difference between the lead getting assigned to a rep and the first sales activity (call, email, meeting booked, etc.).

I know that Hubspot does not record this time currently, but I am wondering if I can:

1. Create a custom property to record the timestamp of the first sales activity

2. Create another calculated custom property to check the time between Owner assigned date and first sales recorded activity (from 1 above)

Does this make sense? Or is there an easier way to approach this?

Looking forward to hearing from you guys.

- Drishtii
[Moderator Note: this post was reviewed for relevancy and optimized for clarity on [10/21/25]. Thank you for your contributions to the HubSpot Community!]

Hi @Drishtii_

HubSpot actually has an out of the box report for this in the Sales Analytics tool (available in Sales Hub Professional and Enterprise). Navigate to Reports > Analytics Tools > Sales Analytics > Coach Reps & Teams > Lead response time. This is the definition of response time:

Average time to engage contact: The average amount of time it takes a rep to start an activity with a contact. Time begins from when the contact is assigned. All time is included in this calculation for example weekends and non-working hours. Qualifying activities include calls, emails, chats, tasks or meetings.

Without Sales Hub Professional you could indeed work with calculated properties. Your first date of reference could be the create date or the date when a contact is assigned to a sales rep (custom date property 1). The date first outreach would have to be date stamped in another workflow, enrolling contacts when Last contacted is known (custom date property 2). You could then calculate the the time between these dates but it wouldn’t be more detailed than days.

Hope this helps!

Thank you! This is extremely helpful.

Hi! Is there a way to exclude weekends and non-working hours from this report?

I need this too

i also need this

I also also need this!

Hi, this is awesome!
The existing report in the sales analytics isn’t much use for me since we don’t use the contact assigned date. In other words, I was more interested in seeing the average response time for demo inbounds.
I used your second option (creating a workflow) and it worked :slightly_smiling_face: More specifically, I had to first create a workflow to timestamp a ā€œFirst Contactā€ and then I created a calculated property which would find the timebetween the a) Timestamp for Demo Submission b) Timestamp for First Contact (which is the one I just created)

Many many thanks :slightly_smiling_face:

BennyP, for the workflow, what did you designate as the trigger? Call outcome? I am trying to determine how to pull the FIRST call on the contact.

Hi @TJohnson22 , sorry I’m replying just now. In order to calculate b) Timestamp for First Contact I used a workflow which is based on the ā€œlast contactedā€. This property only captures outbound activity (and thus should exclude any marketing emails). Since I wanted to see when it was first contacted after a demo subsmission, I created some logic based on another timestamp I have for demo inbound submissions.

Hey BennyP, Great Workflow!

Hi Karsten,

I am working on a report to calculate the time it takes to the sales rep to call a new lead (deal). I did create a calculated property following your comment. It did work at the begining, but when a second call is made, the last contacted value makes the calculated property to run again and the first calculation result is erased.

It is there a way that I can have the first result as a fix value?

Thank you!

Hello @Karsten,

Does this also apply to tickets? We are trying to get the average response time for technicians on service tickets.

Response = call, email, chat, logged text, etc.

Is there a way to make this work with custom users? I’d like to track lead response time for my SDR’s (when leads are brand new) and then with my AE’s (when they are handed off).

The functionality of this report is now in the reporting library, and a new ā€˜Sales email average first response time by rep’ report is now included to show this data broken down by users!

Is there a way to see response time by rep over time? I would like to see if reps are improving their response time at a glance.

I was using this first response time to calculate time between a contact asked for a demo and when the sales exec first reached out to them.
It was working perfectly until some contacts started asking for demo twice and thus, the demo request time stamp gets overriden. On the other hand, the second timestamp I had created (Timestamp: first contacted after demo request) doesn’t. This leads that to the response time (which calculates difference between these two timestamps to be incorrect).
Does any one have a solution for this? @karstenkoehler

Hi there! Unsure if you’re still looking for this but we just posted a blog for a workaround that we use with some of our clients (below).
There’s a few steps, and you need Zapier or something similar (as the calculation on response time, and the categorisation of business vs non-business hours are calculted in Google Sheets)—let me know if you have any questions!
How to make an accurate ā€˜speed to lead’ report in Hubspot

Hey @Drishtii_,

The idea is that you could create a custom property to record the timestamp of the first sales activity, then another calculated property to figure out the time between the owner assigned date and that first activity. That would give you the exact first response time. The tricky part is making sure it only captures the first activity and not any follow-ups. Another way is to use HubSpot’s custom reports and filter for the first engagement activity, but it can get a bit messy if activities aren’t logged consistently. Honestly, if you want something more precise with alerts and ready-made reports, tools like LeanData or LeadAngel track speed-to-lead metrics out of the box. But if you want to keep it in HubSpot, your custom property approach should work fine with a well-set workflow.

@taylorsusanne76 @BennyP I’d be careful with using a single ā€œlast contactedā€ style property as the source of truth here.

The cleanest version is usually to separate the moments you care about:

  • lead/demo request timestamp
  • owner assigned timestamp
  • first real buyer-facing sales touch timestamp
  • first touch type
  • SLA status

Then only write the ā€œfirst real sales touchā€ value once. If a second call, second demo request, or later follow-up overwrites the timestamp, the report stops answering the original question.

I would also avoid counting owner assignment, task creation, lifecycle changes, internal notes, or workflow actions as the first response. For sales response time, I’d only stop the clock on buyer-facing activity: sales email, call, meeting, or manually confirmed first touch.

For demo inbounds specifically, I’d report buckets like:

  • contacted inside SLA
  • contacted late
  • not contacted
  • only internal activity
  • late/missed leads that later created pipeline

That gives managers a more useful view than one average response-time number.