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!]
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.
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 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)
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.
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?
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!
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
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.