HubSpot Ignite: API Best Practices 2.0 and Go-To-Market Strategies

Jesse Cunningham, Hannah Seligson, David Adams, and Dennis Edson from HubSpot walk through API best practices including OAuth token inspection, scope management, and async vs sync processing. The panel covers how app partners market and keep customers in the HubSpot ecosystem, with demos and partner success stories.
All right, folks, I had a little trouble stopping that music because I enjoy it so much, but welcome to Series of Ignite, this amazing series we're doing right now. This is API Best Practices 2.0 and go to Market Strategies. Part 3 of the Ignite series has been such a great thing we're doing lately. I want to do a few housekeeping items here. Just get us going. And I promise will not take much of your time because you have some amazing speakers coming up. I myself am Dennis Edson, developer advocate at the HubSpot. And let's go through what we need to do. First of all, resources. I got a QR code right here. If you want to see past videos that we've done for this series, go there. All kinds of developer documentation there. The things you need to know is all in this resource. So go there, use it, actively ask us questions, get on the developer slack. We're here for you. At the end of this, or close to the end of this, our crack staff is going to be putting out a poll for you all to fill out. Please do take the time to fill this out because we do actually use it. This influences how we go about things. So, yeah, fill it out. And with that, I'm done talking. I want to introduce our two stars here. Right now, you see Hannah Seligson on screen as well as Jesse Cunningham. I'm going to stop talking because they got some magic coming on. I want to find the stop share of my screen and I'll allow those two to introduce themselves.
Bye.
Bye.
All right, thanks, Dennis. So, as Dennis mentioned, my name is Hannah Seligson. I'm a senior developer advocate here at HubSpot. And Jesse, if you want, introduce yourself, say hello.
Yeah. As many of you are partners that I've likely worked with in the very recent past. I'm Jesse Cunningham. I'm an app partner manager at HubSpot. I work with many of the apps in the HubSpot App Marketplace.
Awesome. All right, so for this presentation, I'm going to start and then Jesse is going to take over after I've done my portion. And so to just fill you in on what we're going to be talking about, this is going to essentially be an extension of our first Ignite session. So if you got to join and you got to hear my teammate David Adams talk about API best practices, this is essentially going to be an extension of that. Um, we're going to be introducing some more resources and some additional new tips that you probably maybe haven't heard and we also are going to reiterate some tips that David already covered, but hopefully there's something new that you can take away from this. So, first and foremost, I'm going to introduce to you our HubSpot Postman workspace. For those of you who haven't seen it yet, I hope, hopefully you'll find this valuable. I'm just going to give you a quick tour of what is included in this workspace and then we'll do a quick demo of how to use it. Then we'll talk about inspecting OAuth tokens. Before someone had, there was a lot of feedback about wanting to gather user data as far as the users that are leveraging your app and how you can utilize either a refresh Token or an OAuth token to pull that user data. So I'll talk about that more from a technical perspective. And then also we're going to be talking about scope management and just talk about some best practices. And then we'll talk about asynchronous versus synchronous processing. What are the differences and then what are the benefits of either or. And then I just want to mention some important updates that I think a lot of our partners are going to find useful. Some information might be informational, otherwise there'll be some information I think you'll find very valuable. And then after that, we'll hand it off to Jesse and then we'll do a little Q and A. All right, so first and foremost, we're going to dive into Postman. If all of you haven't seen this yet, this is the HubSpot Public API workspace. So this is a centralized location where we keep most of our API schemas and collections that you can leverage for your own testing purposes. So when you access the workspace, you just have an introduction as far as giving you guidance on how to use it, some tips when it comes to authentication and scopes, and then just some direction if you ever get stuck and you need a little bit of help within the workspace. There's two primary aspects of it that I think you're going to find the most valuable. This is our collections and our API tab. So within the collections, we grouped these based on essentially HubSpot's different products or features. So, for example, this is a CRM API collection. It actually contains collections for any API associated to the CRM. And you actually, you have the ability by clicking on this Run and Postman button, to fork all of these collections, API collections. Otherwise you can fork them individually as well. And what's nice about this is that it contains most of the documentation that we already have within our HubSpot API documentation site. However, the documentation site will be a little bit more robust. And then on the API tab, this is where you can actually take a look at an API schema. So I don't know about you, but before I became an Advocate, I was a. NET developer. I used to build and design APIs and I used Postman more from an engineering perspective. But this is meant to essentially just enable our end users with our APIs. So I like having, for me, I like to be able to look in timescope. I think it's just easier for me to understand what its capabilities are as opposed to just looking at individual endpoints. But essentially what you can do is you can fork these collections and these schemas into your own Postman workspace and you can create a Postman account for free. So it doesn't cost you anything. There's nothing that should get in your way with this. And as far as what you can do is you can. Let's see, I'm going to use the contact definition, API definition, and then I'm going to look at the recent versions of this API stack and I'm going to click on this version and then I want to be able to fork this, and then I'm going to fork this into my own personal workspace. And something also important to note is that I would click on this little checkbox saying, watch original collection. What this does is it actually will let you know and provide you notifications via email, which when a collection has been updated and then you're actually able to pull those updates applicable to the collection right within your workspace. So if there's been an endpoint change, if there's been some sort of response change, you're able to pull that in directly in your workspace. So I'm going to work this collection and now we're going to be in my personal workspace. And then awesome. This. Now I had access to balls. So let's say that I want to make, I want to make a call to one of these endpoints first. What I need to do is I need to set up my authentication. And for this demonstration I'm just going to utilize OAuth. And first and foremost I need to create a public app. So I've got a developer's account that I've already created. I'm going to go to Apps, I'm going to create an app, I'm going to go. That's not how you would normally name that, but just for this purpose. And then I'm going to go into the AUTH settings and then something important is that you're going to be leveraging your client id, your client secret, your redirect URL and your scopes within Postman. So just for this, I'll do local host, and then for the scope, since we're going to be utilizing contacts, grab those contact scopes, I'm going to create app awesome. Okay, so now I'm going to set up my authentication, find the collection level of the collection that I just forked and select OAuth 2.0 for request headers. I'm going to keep that as is. And then we're going to make sure the prefix is bearer token. And then we're going to name this so you can give it a unique name so you know exactly when like X reference exactly when you created this token. So we'll do that. And then interesting enough, with Postman, for their callback URL, which is similar to our redirect URL, they when I'm utilizing the web version as opposed to their desktop version of their application, I have to leverage this callback. So that's easy to fix. I can just go back here, update this. I'm going to save those changes. And then for the AUTH and access token URL, you can actually reference our API documentation and it contains those URLs. I'm just copying them on a notepad that I prepped before this demo. And so we're going to copy the access token URL. Now I need to grab my foreign id. We're going to get the secret. Okay. All right, now I need to copy my scopes back down here. Allow me to pull this datum. Oh, and then important, when you are adding these scopes in Postman, all you need to do is just add a space. This. All right. And then when it comes to the client authentication, I wanted to send the credentials in the body. And then you also have the option to set up your refresh token as well. All right, so get new access token. Then you're going to utilize a test account.
Great.
So now it's been complete. I'm going to press Proceed. And then it's nice, it creates this access token. It also provides you a fresh token. And then I've named this ignite token. So I'm going to say, okay, you use token. Awesome. I'm going to save this information. Now let's go back to my endpoint. Okay, we're Going to get a list of contacts, move these params because I don't need them right now. Then I'm going to go to Authorization available tokens, ignite token, see how that's available, let you know that It'll expire at 11:45 Eastern today. And then rights, try sending this. There we go. Sorry about that. And so you're able to utilize that now within the different endpoints of this collection that I just forked. So that makes things a lot easier. Another really helpful tool is that it also provides documentation. So remember those params or any sort of information that you want to look in reference this endpoint. You can actually click on this documentation tab and it'll explain what those are and how they're used. So that's really helpful. There's also this code generation type feature that I really like. So what you want to, if you want, you could have the option to look at different languages and frameworks and say, oh, okay, I have a Node JS app and I want to be able to make this request within my app. You can actually copy and paste the source code directly into your source code of your app. So I think that's also really helpful. There's also environments that you can set up, and these environments are. They're customized based on whether you're working in QA or Prod or what have you. Maybe it's based on regions, US or Europe. So I think that's also a really nice feature that you can utilize. And that environment essentially provides authentication and just a set of rules and permissions for that type of specific environment you want to test for. For. Okay, so that is that just as far as the demo for postmorn and then next what I wanted to talk about was inspecting OAuth tokens. So in one of our previous sessions it was mentioned that folks wanted to be able to query information about their users who are accessing a token that was being leveraged for their app. We actually have two endpoints where you can retrieve user data and this can be for an OAuth token or it could be for a refresh token. So when you're creating your app, we definitely recommend that you include your user scopes so that you can identify better the users who are leveraging those app tokens and this way you can gather their information. Now, I do want to point out it can be a little confusing and I actually have ran into this confusion myself where with our users API we have two of them and we have user provisioning and then we have user Details. So user details is more of a CRM object, whereas the user Provisioning API is actually going to provide you the information that you need for the user information. So it's going to include their first name, their last name, their email, any sort of applicable information about that user. And as I mentioned, they have these two endpoints where you can, let's see, you want to. If you want to retrieve a user, you can leverage a user id. You can also leverage the user email, I believe. So let me show you what that looks like. For example, this is when I was leveraging the OAuth API for the refresh token endpoint and I was using the refresh token and it returned user information and it gave me this user id. But also like I mentioned, that user email and then what I was able to do was I was able to then take that user ID using the user Provisioning Provisions API and then it would return a response with that user information that you can see down here. Jesse is actually going to talk about this a little bit more, but I wanted to be able to show you exactly like what those endpoints look like and what the response looks like so you have a good idea of what to expect and where you can gather that user information. Okay, and then next I did want to touch on scopes and scope management and we probably sound like a broken record by now, but I do think it's really important. When you're setting up your scopes for your app, there's the risk of over scoping and underscoping and I think with overscoping there can be security concerns. It can also decrease user trust and it can lead to unnecessary data access and processing. It can also increase API consumption and the likelihood of you hitting your rate limits. Then there's the risk of underscoping. And this can limit your app functionality. It can cause app failures, incomplete operations, and ultimately just not the best end user experience for your users of your app. So one way that you can ensure that you have the right apps is leveraging this minimum privileges principle concept. And what that is essentially is a way for you. It's essentially asking you or holding you accountable to start with the fewest scopes and then only add more as necessary. So something to help you with this is also just executing iterative testing. You can test your app with minimal scopes and then just gradually request additional scopes as you encounter those limitations. And then just another benefit of ensuring that you have accurate scopes is during your app listing process. And this is specifically the app listing process. In the marketplace. So proper scope management is important when you're listing the app because it lets users know how data is going to flow between hubstart and your app. And this data is actually represented in a table called a shared data table. And this table offers a view of that data across the different objects. So like your contact, your company, your deal object, your HubSpot objects, and proper scope management is going to just help ensure that your app is interacting effectively with that data. So like I mentioned, when you're doing this, identify which scopes are going to be required and then also ensure that your scopes that the requests are be. Let me start. So the requests for your apps, making sure that they align with the data entities that you need to access and modify for end users, and then wherever possible, definitely use our batch APIs. This is just going to reduce the frequency and volume of your API calls, and then you're going to be able to stay within those rate limits. And then lastly, just make sure that you are enabling your advanced scopes for your apps. This is something that is available to you now, and it is something that is going to be required of you by October of this year, I believe October 21st. And right now we have three different scope types. So you've got your required scopes, and these scopes are necessary for all installations, and they must be included in the scope parameter. Then there's conditionally required scopes, and these are optionally requested for certain installs, but this also uses that scope parameter. And then with the conditionally required scopes, these can be optionally requested for certain installs, but also use it also. Sorry, I'm looking at my notes, so I don't overlook anything about these. But with the optional scopes, there's the optional scope parameter, and these can be requested for some installs. And it's important to note that if the user or the account does not have access or proper permissions for those optional scopes, those scopes will be excluded from the authorization and not included in the resulting tokens. So that's just a little tidbit about those different scope types and how you can leverage. Also, I think conditionally required scope, something to note is that they can also be leveraged if you have a feature or something that is optional within your app. I think those scopes as well can support that type of feature, and it'll be best for that use case. Okay. And so next is just distinguishing the difference between asynchronous processing and synchronous processing, because I think this is really important for a user experience perspective. When you're utilizing synchronous processing, users might experience delays. And this is because as the system is waiting for an operation to complete, your users are going to be waiting. And so a scenario is, let's say you're making a sequential data retrieval. Each piece of data depends on the previous one and this is what ultimately creates a bottleneck. And then that wait for the end user. And then if you're utilizing asynchronous processing, I think this just creates a smoother experience overall for your end users with your app. And this is because it can perform tasks while waiting for a background process to finish. And this is really helpful, particularly when it comes to processing bulk data. And this is where data can be handled in trunks independently, allowing just multiple operations to occur concurrently. And as we all know, HubSpot imposes rate limits just to ensure fair usage and just prevent any sort of resource abuse. So I think just understanding synchronous versus asynchronous processing is really going to help you optimize your API usage within those rate limits. And so just to note, with synchronous requests, optimizing that request payload to reduce processing time depending on and you can use caching to avoid repetitive requests for the same data. But for asynchronous requests you can implement a queuing system to handle tasks in the background. You could also use webhooks for real time data updates without blocking any of those other processes. And then you can also apply retry logic to manage temporary failures smoothly. However, when it comes to the retry logic, I think also the number of retries is important. I've seen folks with 10 retries and that's okay, but it's definitely not ideal. So again we just suggest that maybe setting up webhooks to receive data changes and processing them asynchronously and then also utilizing the batch APIs that we offer for bulk operations. And then we also if you want to be able to handle like long running tasks or handle larger volumes of data, another option is utilizing like our imports and our exports API. These are particularly helpful when you're handling just large data sets. So I would definitely suggest checking out those APIs as well. And then lastly, some of these important updates, things like I mentioned, you might already know. For example, there is a new install requirement and this is for installs of your apps users that are actively using your app. Previously this number install number was six and it's being increased to 60 active installs. So this means that any apps that were previously eligible will need to grow within the marketplace before applying for certification. However, apps that are already certified and have fewer 60 installs you'll be able to meet you have until May of next year. So you have to like May 15, 2025 to increase those numbers. So we want to make sure we give people plenty of time for that. And then additionally, like I mentioned before, we have the advanced Scope settings. So right now you have access to them. They're not mandatory right now, but they will be mandatory in October of this year. And then something else that's new and exciting is we have new developer documentation. So previously the way you used to reference our APIs or any sort of developer documentation, you should definitely check that out and explore it. Right now it's pretty exciting. It's got getting started guides. We have our API endpoint, CMS reference and then the UI components that we have for React. So I would suggest getting more familiar with the documentation. And then last and then also I wanted to note that if you haven't subscribed to our developer changelog, please do. This is really important because for example, we've got two big APIs that were previously very heavily used being sunset, for example, our V2 owners API, this is going to be sunset August 30th of this year. Then there is the timeline API and this is going to be sunset on May 1st of next year. So I think really something important to note is that with your apps, just ensure that you're using the most up to date service so that it can reduce any sort of triage on your end and also just improve the user experience. And then lastly something that will be announced this week is that our Academy folks, our friends in the Academy are actually launching a new course that's going to walk app developers through the process of getting certified getting their app certified. In this course, the Academy team worked very closely with the folks who are actually certifying your apps. So please, I would suggest checking that out when it's announced. We'll also make a note when it's announced and check that out. And that's all for now, so I'll pass on things to Jesse.
Thank you Hannah.
So much. Great information in there. It's definitely going to be a hard one to follow up, but I'm going to do my best. Cool. So I'm just going to be walking through some of the best practices that we've seen used by our top performing partners. Again, context myself, I've worked with hundreds of apps in the HubSpot app marketplace we've seen a lot of what does work and a lot of what doesn't work. So I just want to call out some of the things that I think all app partners absolutely should be doing if you want to be climbing up the ranks to becoming a top performing partner. So first I like to have partners ask themselves like why do I want to go to market with HubSpot through my integration? And then you have to pose the question what do I actually get out of the partnership with HubSpot partners often come, build and see big benefits for two kind of core reasons. There's tons of other secondary but I like to look at these two. So one is driving better usage, stickiness, retention, upsell opportunities and ultimately value for our shared customers. Second is partners can acquire new customers through the HubSpot ecosystem. Looking at a few partners who've done a remarkable job of this CallRail tons of data so I'm just going to walk through it pretty quickly. CallRail increasing deal size by 23% retention 99% conversion rate 42% these are all meaningful results for a business and these are all on HubSpot customers in particular compared to other customers in their database QuotaPath tripling the win rate 120% retention and a 23% shorter onboarding. What this data is really telling us is that these companies are able to acquire HubSpot customers that are bigger, retain longer and buy faster than compared to other CRMs or other solutions. A couple more examples arrows coming as a startup when they first joined the marketplace 4Xing their revenue that's extremely significant. Growing their install 75% they actually became the number one onboarding app at our marketplace. Oftentimes there's that misconception. The bigger companies are going to be the ones that drive the most success in the HubSpot ecosystem and that's just not true. Going to market is a very big piece of it. Customer demand and customer value and how you communicate that is really the biggest piece in my eyes and role works here. 200% increased deal size in their co marking results. Just want to call that out. That's not HubSpot sending emails on behalf like hey download roleworks which most partners think how we do co marketing but that's sponsoring inbound. That's through their HubSpot partner content they're able to drive better results with their HubSpot content than they are with again other CRM or other integration content and they're able to grow their install significantly. So this is really Telling that story of you can drive better results for your business through better HubSpot customers compared to other CRMs and softwares. But the big piece of this is all these partners are actively tracking this data. That's how we actually have all these results about the speed of the deal size, how much it increased, win rates, et cetera. If you're not tracking this type of data in your systems, it's very difficult to measure success. I often talk to partners who say I want to do more in the HubSpot ecosystem. And why? Because I want to drive more leads. How many have we driven this year? It's again, it's really hard to see how much are we actually getting out of the partnership if we're not measuring any of these metrics. So I encourage every partner, if you're not doing that already, you absolutely should be. So next is the the funnel and the flywheel. The funnel in the traditional sense is how I'm going to be walking through the quota market here, but then you're going to see how that leads into the flywheel. So the funnel to the flywheel, the first and foremost, and I think this is just foundationally important, is the better together story. How do we actually communicate 1/1 equals 3 or 5 with the two tools working together? Your solution in HubSpot, this is our app partner prep pack. It walks through a lot of one pager, one sheets on the different hubs so you can look at what features and functionality does my integration touch into and how can I align that to different hubs so I can speak to customers around that story better. So starting off with the top funnel, how do we drive awareness of the integration? You built an awesome integration. How do we make people aware of it? I always like to say it doesn't matter if you build the best integration to ever exist, if no one knows about it, no one's going to use it. So first and foremost, a partner page is always branded. You need to have something that talks about you have an integration with HubSpot. Customers should be able to come to your website immediately, be able to find that and understand that you have an integration and what does it actually do at a high level. Next is the educational content. This one I like to put an extra emphasis on because it's just so valuable. And I want to clarify that it's not. Hey, here's my awesome solution. But here are the awesome things my Solution does with HubSpot and what is unlockable through the two tools working together. So YouTube videos, blogs, case studies, and again, RoleWorks. I like this example because it's an ABM tool and you can talk about a million different things about abm, but they talk about how specifically what it can do in HubSpot and the KPIs. It's to time touching on for a HubSpot customer, like shortening your sales cycle. So many partners have so many different examples of again, what are the KPIs that a HubSpot customer specifically could expect, reasonably expect through using a tool like yours.
Next.
And this is my absolute favorite because customers rave about it. Customer success managers, account executives, sales reps. I've never seen a specific tactic get so highlighted by customers and HubSpotters compared to use case content. So Arrows does a remarkable job of this. Here they have what I like to call the obvious, which is we touched on before in integration. Here's what it does at a high level, but then the not so obvious. This is where it becomes so much more valuable to the customer and agency partners who are looking to utilize this solution. Here's how you actually implement this within HubSpot. So Aero is an onboarding tool. Pretty straightforward. You close a deal, you create an onboarding plan. That's the obvious. But the not so obvious is how are you going to use lead scoring to create an onboarding plan after someone hit a certain threshold? Or how can you kick off a project when it's X percentage done or after a sales call? There got probably a hundred different examples now and from an SEO standpoint, a hundred different pieces of content on the HubSpot integration. Talk about domain authority and starting to build on those keywords. But this use case content is very prescriptive in showing the customer here's exactly how you can implement and all these different things. You can get value out of our integration by doing so. I highly encourage partners look at the prep pack. What tools and functionalities does your integration tie into and how can we enable customers to do more with the tool beyond the basic syncing of data and then the middle of the funnel. So this is a piece that Hannah touched on, but there's a couple different ways you can go about this. So how do you actually find the leads, who you want to be talking to? Who are the HubSpot customers in your database? The first is inspecting the OAuth tokens so you can see who's installed your integration as who's actually gone through OAuth. That's a pretty warm lead because they've identified clearly that you have a solution that they are interested in enough where they've installed and gone through OAuth into your portal. At that point it's a great opportunity to nurture them. Or on the other side, which many other partners are doing as well, is using technographic tools like Clearbit, ZoomInfo, Apollo or HubSpot. If you're a HubSpot user to identify tech stack so you can see who uses HubSpot they should have segmented messaging specific around the HubSpot integration and the value your tool provides there. So those are a couple different ways we can identify who should I be reaching out to next is actually nurturing them. How do you do that? So one way, and this is my favorite way, is again just highlighting the value of the integration. What does it actually do and how are they going to benefit off of it? So here's a couple examples. Supercharging your quotes with HubSpot workflows, that's pretty exciting. That's something that catches my attention and there's a clear example of how you set that up just to show how simple it really is or arrows how much more powerful you can do with this new feature, et cetera. Again, educating the customer or lead or prospect through that journey of continuing to show them why it's valuable and why you should be integrating Your solution with HubSpot the use case content. Again, coming back to that showing customers so many different ways they can get value out of your solution is another way to really lean into. We don't just do the basic that they may have come for, but we can do all these different things and this is all the different power you can harness of our solution. Again, this is really going to lean into the stickiness part. How can you tie it into the existing workflows? Maybe it's a sales solution, but a lot of that data can be leveraged by marketing customer success. Think about how others teams can use the data within HubSpot. Again, there's the obvious and I like to call this the not so obvious because a lot of us just may not be aware of it and customers may not be aware of it. So how do we make it more clear to them the value? So then now the bottom of the funnel. How do we actually convert these leads that we've got them or once they've installed, et cetera. So educating your customer facing teams is so important. If your customer facing teams can get on a call with a customer or have an email exchange and they're able to clearly articulate the value of the integration and all the awesome things you can do inside HubSpot with it. That's a great way to close the deal faster. When they're not so familiar with the integration and can't really speak to the value, it's a little bit harder. So I highly recommend including the sales process to include the HubSpot integration demos about it and walking through best practices and educating customer facing teams or customer success teams is a crucial part of that. And this is an offer and incentive that I think just works remarkably well for this partner aircall, but is applicable for many other partners. So if you're not able to move the deal over the line and you want to offer a discount, which is what many businesses and E commerce do, it is very applicable here. So this is a very lightweight offer that you could lean into and air call tailor it to your business. But Aircall, if you're a HubSpot user and not a customer of Aircall, 100% lead generation from the HubSpot ecosystem, you're able to get this incentive. I believe it's a couple free months and an hour of consultation. If you sign a year long contract, that's a pretty big commitment from a customer, but you're able to give them some type of incentive to get them to convert again, a great tactic leveraged by air call, which I would recommend considering for your business further down the funnel. And this is the part where I think it's the most important, which so many partners are overlooking, which I really want to call out. This is the big gap. So you want to avoid the drops after someone's installed the integration. What does months one through three look like? This is a chart I see more often than I'd like to for our app partners is the paid in stock activation rate. So we see month one, 100% API activity, month zero and then month one we see that drop to 50%. Month two 25%. By month 10 you're maybe keeping 10, 15% of the leads you've driven. I call this a very big leaky bucket and a big problem for app partners. What does that look like in terms of new installs and active installs? So active installs we're defining as making at least one API call every rolling 30 days. So we here see on this left hand chart looking over the last three months, this partner who is not doing most of the things that we talked about and we're working on a remediation plan and showing them they should be doing these things. So in this case for the last three months, they've driven 11 new installs but we look on the right hand side over the last three months we've actually netted negative two active installs. Clearly there's a retention issue here. If you're needing to drive so many customers and only retaining 10% of them or negative it's going to be very hard to drive success as an app partner. So again the retention and post install experience is so important. Here's a partner who's doing a lot of the best practices we talked about and they're a remarkable example on the go to market side and on the retention side. So here you could see all the way up to month eight after you'll see this area there's some remediation that did happen. But eight months down retaining 77% of the installs that is extremely significant for that partner. And what does this look like in terms of new installs and active installs? Well they'll a year ago we're driving 64 70amonth. Now they're driving well over 100, close to 150. And the Active installs is just continuing to increase. We're see they're retaining about 70% of them. That in the charts. Looking at this chart of partner who's doing all of these best practices remarkably well compared to one who's not taking advantage of these best practices. It's night and day the post install experience. How do we do a great job of this? Again, this use case content, it's remarkable collateral that can be touched on several different parts of the customer journey. So including it as soon as they've installed the integration. If you're more of a scaled approach and it's fully automated it could be like arrows where you've got a monthly newsletter and every single month showing you how to use it within HubSpot. Again, so many different examples. This newsletter is always going to have fresh content but then they also have that sequence. As soon as you've installed the first one to three months you're getting those emails of best practices. Maybe you're that hybrid approach where you're half automated and also doing scalable webinars and events where you invite a lot of attendees to events. Happily does a great job of this. As soon as you install the integration you get an email. Here's how to create your first workflow and there's about three different emails showing you the first step to create and then you can track API activity to see how you've actually done that. So here really focusing on here's the first step get this quick Time to value here's how you get set up the first thing you should be doing Many partner many customers may not know exactly how to set it up. The first thing they could be doing if you don't have the sequence again, you're leaving them in the dark to figure that out on their own, which I don't recommend. So again here they've got like a webinar. So if you've installed the integration, you likely want to know how to use it better. So here's an here's a webinar showing you how to do that. Sign up, ask your questions and see how other people are using it and driving great results. Or if you're more sales led motion like PandaDoc sending emails to your customers that are more personalized directly from a rep asking them to get on a call showing them case studies of hearers. The remarkable results are customers able to drive and you can even tailor it if you're getting more sophisticated by software category, industry or vertical, but at the high level, just reaching out, educating them. Again, here's case studies, here's best practices. Here's how you use it. That's how you get great retention of your integration. I've talked a lot. There are so many other best practices and so many more examples in our HubSpot app marketplace go to market Best practices Deck A lot of what we talked about is what I like to highlight as some of the most impactful what moves the needle the most. But again, there's tons of great examples in here for you to consider. I do want to call out that there's been some awesome sessions like Nikita mentioned. This is our last session for the Ignite program, so we would love to have you submit the form that they're going to be dropping in the chat to help us understand what are the improvements you're going to make out of everything you've learned from these sessions? What are you going to do to improve your apps? We'd love to know because we're excited to see our app partners continue to progress in the ecosystem. A couple of benefits of after you submit this form, you get one to one time with a member of our Developer Advocacy team and Platform Partnerships team. That would be myself and then someone else from Developer Advocacy who's got tons of knowledge on the HubSpot ecosystem. And you also get entered into a giveaway for a free inbound ticket. Going to inbound for free. Sign me up just for submitting a form and making improvements that ultimately benefit my business. It Makes sense to me. And that is it for my talk today. I'll pass it back to Dennis and I look forward to seeing your form submissions come in.
Jesse. Amazing. Let's just get everyone back up here right now. Hannah, get back up here, please, if you don't mind, show that face. And just a little surprise guest, David Adams is somewhere out there. So if you don't mind, come on back up. While David is getting up here, we're going to throw that poll up into the webinar. Please do submit your results or what you think of this whole thing so we can learn. Okay, let's get into some Q and A items. I want to answer the last question first because that is the limit of my knowledge. Now, Fred asked, is this going to be recorded? It was recorded. And if you go to developer HubSpot.com Ignite Resources, it is my responsibility to add this recording there once this is done. Expect that to be up there in the next couple of days. I think AJ will be putting that into the chat as well, just in case you missed it. Answer that one. Cool. Moving on. I know Hannah was proactive and answered one of the questions just for everyone's clarity. Hannah, would you just go over what James asked? Will there be an equivalent replacement for the Timeline API?
And when I was talk, when I mentioned Sunsets, I didn't mean to include Timeline API. I actually meant to mention the Contact List API. And so I've actually can provide links to that sunset as well as the v2 owner Sunset, the timelines API, what. Essentially that change is moving the ability to update existing events. So we are encouraging folks to migrate from version one to version three. So I apologize about that, Mike, that mix up. But yeah, it's just essential to change logs, you know what's going on with our APIs.
Thanks Anna. And hopefully James, your heartbeat has slowed down.
Yeah, sorry about that.
Dil has a couple questions. I'll ask them and I also just while I'm we're answering these, I encourage you all to add more questions to the queue so we can answer them. How do you recommend getting contacts of HubSpot users or ABM to HubSpot users? Did I say that right? How do you recommend getting contacts of HubSpot users for ABM to. To HubSpot users? I can start this and I feel like it might, and correct me if I'm wrong, but I think what we're looking for is owners. There's some terminology that might need to be spelled out a little bit better. HS underscore owners is the property, I believe it is for each of the contacts which will return an ID and then you can do a search on that. But David, while you're up here, correct me if I'm wrong or explain better than I did.
Yeah, I'm not sure what what exactly you're looking for here. If you're looking for specifically contacting whoever's using the integration, this was the refresh token details that Hannah just demonstrated. You can get their email addresses and some other details for them and then go from there. If you've already got users in whatever CRM you're using, hopefully HubSpot, you can compare that email address to your existing contacts list or add them to your contacts if they're not already in there, look at their company based on the domain name of the email address, that sort of thing. If you're looking for something else, please clarify.
Yeah, and rereading that question, I feel like it could be interpreted as a go to market question as well. Okay, I see you submitted another one. No, I want to get new users. I need to find them. Definitely look like we mentioned it in the deck. There's a couple different ways to go about it. Technographic tools like Clearbit, ZoomInfo, Apollo or HubSpot if you're a HubSpot customer do help you identify tech stack at a contact and company level. So I would highly recommend going into that approach is the best way to. If you're searching the Internet for these users for an account based marketing approach, that's what I would recommend. Perfect.
Thank you for clarifying. And I went the wrong direction with that one, didn't I? All right, dilpahad another one question. This one actually is for me. Is there a good resource like video for asynchronous web hooks? We do have a high level webhooks video on our YouTube channel and this is my responsibility. I will start looking into possibly recording something that would be helpful to you on this. That's all I have right now, but I'll work on it. There are probably other resources out there on the web that are not HubSpot specific. I'm not sure if anyone here actually has that off the top of their head, but I'm sure they exist. And I will work on possibly putting something up on our YouTube channel in the coming months to answer that as well. Sign says why in list API v3 for putting context into lists we need contact, write, scope. It was not a thing in V1 which we are currently using. And Hannah is. I see typing an answer as I read the question. So if you prefer to talk it.
Sure. I was trying to look up. I was trying to compare the two. I. I actually don't know the answer, but I think it's an awesome question. I assume that you. I don't know. Does anyone within this panel have any insight?
No, I don't have.
Yeah, I'm not specifically sure. Adding context to a list does a lot of updates on the contact itself. So it may be something where. That's why I was sure that. Because it. Because of the things that can happen to a contact when you add it to a list. I think we just want to make sure that you have the permission to change contact records. I don't know the specific technical reason behind it, but I imagine that's part of what that's from.
Yeah. Because their. Their list ID shows up as a property on the contact at that point. Right. That would be actually altering the contact itself.
Yeah, that's a very valid.
Yeah, it does update data contact even if the list isn't tied to anything like it still updates added to updated.
Yeah. Dill has another question. Who is the HubSpot resource for Go to market? If we need any other answers. Jesse.
Yeah, I can take that one on. So I would definitely look at your developer portal for your app listing. In there you're going to see your app partner main point of contact, Dilip. I do know yours. It's app-partnersubspot.com, which gets routed to me. But checking your developer portal is a great place to find that contract as well.
Perfect. And that is all the questions I'm seeing right now. I'm going to allow the folks here maybe a minute or two more to type in some questions. If anyone wants to sing some Jeopardy music or whatnot. I'll take it. I want to do, say, Jesse Hannah, some great work on this and this is a really good, good presentation from both of you. So thank you for doing this. And I really want to point out Hannah's work on the Postman collections. I know we've had Postman for years, but Hannah has really put a lot of effort and improvements into it. Kudos to you for that.
Thanks. Yeah. And hopefully it's going to grow even more and hopefully we'll able to get all of you engaged more the community to be able to contribute to it. So, yeah, I'm excited to see how it evolves.
All right, so as. Yeah, there we go. Thanks. Sj. We have a. Oh, Mike. Hello, friend. Is there a development Support example when APIs don't work as expected. That is a great question and just for fun, David, I want to give it to you.
Yeah. If you've got questions on how to use the APIs are commute devices, Developer Community should be your first stop. If you think you've encountered a bug, then you should contact our support team. They'll probably get in touch with us internally, but we want to make sure that we've got like a case number and things like that and a bug report if we need to go to the engineering team and look at something like that. So if you have general questions on how to use stuff. Developer Community, if you think you find a bug, then we'll Support team.
Yep, perfect answer with that. I see nothing else here. So again, I'll be putting this video onto the resources page of Ignite in the coming days. If you have more questions, there is the Ignite Slack channel in the Developer Slack. So please be active in there, ask questions and talk amongst yourselves. Again, thank you everyone for doing an amazing job. I'm proud of every one of you. You continue to just impress me. All right, y' all have yourselves a great day. Bye bye.










