Hoping to pick some brains on a potential solution I'm working with. I'm aware that the Tickets API is still a part of the developer preview program.
Unlike Deal stage, there isn't a "time spent" property equivalent for ticket status (aka ticket pipeline stage). Because of this there's no way to report on that data. Being able to track how long a ticket spends during each status is an incredibly valuable metric for us.
As far as I can tell there's no way to do this within HubSpot itself.
My idea is to create an application that sends a request through API, records the ticket status and its timestamp, and then records new timestamps when the ticket status has been changed. The problem with this is that the API doesn't seem to store any data on previous statuses/stages, so if this application only checks every 30 minutes, and there's multiple status changes within that timeframe, that data will be lost. Neither is the entire application an ideal way to track this sort of metric, but that's what comes to mind immediately.
Any thoughts or suggestions would be greatly appreciated. Thank you!
You're correct; there isn't an ideal solution for your use case in-app or via the Tickets API at this time. I played around a bit with custom ticket properties and a ticket-based workflow in my own account, but was unable to get anywhere close to what you're looking for.
While I expect our product teams plan to expand in-app ticket reporting and feature parity between the Tickets API and other APIs (like Deals) over time, I haven't heard of any concrete plans recently. I'll share your feedback internally, though!
At some point, we also plan to add a webhook subscription type for ticket property updates. This would be significant in your use case, since it would remove the need to poll this endpoint. If and when any of these changes come down the pipeline, we'll update the API changelog. I'll try to post here as well.
That said, your proposal is the most viable solution I can currently conceive. As you realize, though, there would be some limitations. Since the Tickets API currently doesn't return property version histories, and this endpoint doesn't say exactly how the property was changed, you're correct that your polling would miss some changes made in quick succession.
Just in case this post is still being found, it might be helpful to review this related post. Alternatively, for those who have access to custom objects, I created an app called StopWatch for HubSpotthat fits this use case (specifically the feature "Start & Stop Timers Using HubSpot Workflows").
Please shout with any follow-up questions.
All the best,
Zach
--
All the best,
Zach
--
Zach Klein HubSpot Integrations & App Developer Meanjin / Brisbane, Australia
It sounds like you're looking for a way to track and report the time a ticket spends in each status within HubSpot's Tickets API. While this functionality might not be directly provided by HubSpot, your idea of using an external application to track and record status changes is a good approach. However, you're right that there are some challenges with this approach, particularly in capturing all status changes accurately, especially if changes occur rapidly.
Here are some thoughts and suggestions to consider:
Frequent API Polling: If your application only checks the API every 30 minutes, as you mentioned, it might indeed miss rapid status changes. To mitigate this, you could increase the frequency of API polling to capture more granular status changes. However, frequent polling can put additional load on the API and might not be an efficient solution.
Real-time Webhooks: Instead of polling the API at intervals, consider utilizing webhooks. HubSpot might offer webhooks that can notify your application in real time when there's a status change. This way, you can capture changes more accurately without frequent polling.
External Timestamp Storage: Since the API might not provide historical status data, you could maintain an external data store (such as a database) to store each status change along with a timestamp. This way, even if you miss rapid changes due to polling intervals, you still have a record of changes that occurred.
Integration Platform: You might explore integration platforms like Zapier or Integromat. These platforms offer automation and integration capabilities that can help you capture status changes in real time and store them in an external data store.
Data Analysis Tools: If you're interested in analyzing this historical data, you could extract the recorded timestamps and perform analysis using tools like Excel, Google Sheets, or more advanced data analytics platforms.
Feedback to HubSpot: If this metric is crucial for your business, you could provide feedback to HubSpot about the missing feature. HubSpot may consider adding such functionality based on user feedback and needs.
Remember that building and maintaining an external application to capture these metrics requires ongoing effort, so make sure the benefits outweigh the resources needed. Also, consider the potential impact on API usage limits and the overall efficiency of your solution.
Ultimately, the right solution will depend on the specific needs of your organization and the resources available for implementation.
We have an app called Timerman that would solve your problem! It tracks how long tickets and deals spend in each stage and adds those times as properties. You can then use these properties in your reports. Check it out here.
Let me know if you have any questions or need help setting up. I'd be happy to hop on a call with you!
I just stumbled upon this thread as i was searching for a solution to measure our time spend & amount of tickets in different pipeline stati und realised right now you can't really measure it.. so yes +1 from my side! (this topic is from 2018 :O)
Tracking time spent for each ticket status is an invaluable metric for us - it does not seem to be too difficult to implement seeing that time stamps are already in use for other parts of Hubspot. Is there any update on this?
I trully think that we should be able to track the time a ticket is in each stage of the ticket's process. This is very important for our clients to measure the internal quality of their processes and teams.
María Lucila Abal COO Andimol | Platinum Accredited Partner
HubSpot Expert, Top Community Champion | Hall of Fame IN23&IN24 Certified Trainer (12+ years) | SuperAdmins Bootcamp Instructor
We definitely need this ability! I've created deal reports like this in the past and just figured it would be there for tickets as well. Not having the ability to report on this simple data is a significant fail on the part of this tool. Please add this soon. 🙂 Thank you!
This is really needed on the tool. More than "time on each stage" I´ve realized sometimes friction is created with clients or even coworkers because we don´t have the exact time and date when the ticket was moved from one stage to another. Something like that would be really useful in the tickets tool.