Deals API, dashboards, and sales performance


So I’ve been rolling around in the Deals API, as well as what is available for Contacts, Companies, Owners, and the Webhook feature. I think I have a pretty decent understanding of what is available, but I want to get some clarification, and some feedback on my given task.

A little background, we’re looking at gathering some data for staff performance for our sales team. This is for a larger project as a whole for department by department activity/performance. Each dashboard is up on display for maybe half a minute or so, displaying cached data that, ideally, would always be up to date, but will probably be cached for 3-4 hour intervals.

We’d like the data to be as granular as possible when presenting it, but right now I’m focused on the bigger picture. So simple example, we have a collection of individuals who are tied to a deal in some manner. A couple of comparisons to be made are:

  • Seeing daily performance over the course of the week/two weeks. This includes things like outbound calls and emails sent, but I can readily pull that data from internal sources. From Hubspot, deals created and closed won/lost would be another to see, mostly being a presentation of activity from our sales staff for the team to see.
  • Performance over periods of time. Compiling a list of owners who and their won deals for a given period (let’s say for Q1 of 2017). While sales closed won could be compared to the previous period, that doesn’t necessarily provide any meaningful information (it could be that Q1 sales are always bad for some given external factor, but the rest of the year, they perform “normally”, so you would always see the same trend between those periods). However, Comparing our Q1 of 2017 to the Q1 of the previous year would provide more meaningful feedback. There’s a usual trend in what activity occurs in that same period year to year, so more important information, such as seeing Jane Doe performing much better in sales this year versus the previous year, or that John Doe is making more contacts than the previous year, but also closing less deals.

Now, Hubspot has similar information available on the dashboards. I can see that calls like


being called and providing a timeline of activity for example. However, all of those seem to be internal only. As I see it now, I would need to do the following:

  • Pull all deal data once from Hubspot with the paged api call.
  • Acquire deal status (closed won/lost, etc) from getting each individual id in a bulk call.
  • Have webhooks for deal creation and property changes to maintain/update stored data from Hubspot from this point forward.
  • Acquire deal status (closed won/lost, etc) again for updated deals with a series of calls made after the webhook delivers a payload.
  • With the newly collected data, I could now query our own db to access this information and display it.

The alternative to this would be making all of the Hubspot api calls on a front end service, but trying to page through all said api calls to provide a set of information specific to certain date ranges becomes cumbersome and time consuming on the front end, not mentioning any concern of being extremely close to hitting the daily limit just from one set of bulk calls. We’re looking at 140000000+ deals, and while this doesn’t account for us tracking some sort of offset param week to week as a starting point to minimize calls, the gap that needs o be closed between the starting point and a current timeframe will only grow as our sales team grows. Even initially pulling all the data into our own system would be tedious, in that for just getting all of the deal data for that 140000000 deals at 250 deals per call, 40000 times a day would take roughly 14 days alone, baring us paying for a larger rate limit for a limited timeframe (Which, may be trivial if this is the route we need to go).

This being said, am I missing something about Hubspot API that could be clarified here? I know that Hubspot has a dashboard already, but I don’t think trying to iframe that onto an dashboard is a good idea, even if this is internal use only (that can’t even be interacted with, it’s only to be seen on screen in each department).

Does Hubspot provide a way to deliver some of those metrics that are seen on the sales/marketing dashboard?


Hi Spencer,
did you solve your problem?
I'm interested in how you did it.