What we evaluate
- Your app must not have more than 5% API calls generating limit errors or generate more than 100 calls per 10 seconds. Limiting apps to 10 requests per second per connected account will address this.
- The majority of API requests must not come from your own connected portal (i.e. you are your own largest consumer of API calls through the integration).
- Your app must be associated with a maximum of HubSpot 1 App ID. Using multiple App IDs to circumvent API rate limits will not progress through certification.
- Your app must not requests scope that are not used. If your requested scopes do not mirror the capabilities or API traffic for your app, it will not progress through certification. You should not request scopes (required or optional) for information you don't need or intend to use to build an app or integration.
- Webhooks we send to your app should not fail (500 or 503 errors). This might mean that your server can't handle the volume of requests we're sending, and cause your app to lose customer’s data.
- Any errors around hitting concurrency limits - meaning that your app is possibly missing webhook messages since we're unable to send all of the events based on the Event throttling limit you have set in your app settings - would result in us being unable to complete the Certification process. Increasing limits to make sure you're not missing messages, which might mean increasing the capacity of your system, should solve this.
- Your app must be built using the latest stable versions of our APIs.
- Supporting documentation for the app must exist on a live, publicly available URL (i.e. not behind a paywall or sign in screen) and adhere current accessibility, privacy, and GDPR standards.
- The “Setup documentation URL” section of the App Listing flow must be kept up to date, and direct users to the exact URL which hosts documentation for your app.
- Supporting documentation must clearly describe:
- What the app does, once installed and configured by users.
- How to install the app, step by step.
- How to configure the app, once installed, step by step.
- How to use the app, step by step - for both manual and automated interactions.
- How to uninstall the app, step by step.
- Please include information to users about the effect uninstalling the app might have on their HubSpot account and data.
- Documentation should be up to date, and consistent with the most recent release of the app.
- Images should be used throughout the documentation. Any images which contain screenshots of UX within HubSpot should be up to date, and consistent with our most recent design system (The use of videos is also recommended, but not required).
- Your integration should be well designed and should conform with common best practices of usability. It should not be confusing or especially frustrating for HubSpot customers to install and use effectively. It should not negatively affect the quality of the core HubSpot user experience.
- Your integration must not inject capabilities or components in HubSpot’s UI through the use of Chrome Extensions or similar means. Officially supported UI extensions (like CRM Extensions and Workflow Extensions) provide a more consistent user experience for customers.
- Setup of the integration should not require customers to manually create or trigger Webhooks. Please leverage Workflow extensions to provide a seamless setup experience for customers.
- Requesting users to copy and paste HubSpot OAuth authorization codes or account API keys is prohibited. Not only does add friction to the setup process, it’s insecure.
- The HubSpot App Marketplace listing for your app must contain clear, up to date pricing, and an active, up to date link to your pricing page.
- Some App Partners have created “HubSpot Plans” for customers, with transparent pricing, touchless sign up, etc, in lieu of not having existing published pricing/free trials etc.
Additional traits we look out for
These are just some examples of the types of feedback which we share back with developers throughout the process. Depending on the scale of the issue - some of these can result in us being unable to complete the Certification process on your behalf.
Please take note of these, and make adequate adjustments to your app, before applying for your app to become Certified.
- Errors around trying to update contacts using an 'undefined` email address, which won't work with the endpoint. Apps should skip these requests if the record doesn't have an email address.
- Errors for expired OAuth tokens. Check the expiration time of the token instead. If the app starts seeing 100% of the requests resulting in 401 errors, and is unable to refresh the access token, consider the app as having been uninstalled, and stop making any requests for the account until a user re-auths the integration.
403 errors from trying to use the Contact Lists API with marketing free accounts, which don't have access to contact lists. If an app gets 403 errors for not having "contacts-lists-access", they should not make repeated calls to get lists from that account.
- Hitting endpoints without numeric IDs, where one is required - calls that will always fail. Requests without numeric ID be skipped as these requests can't work.
- Pulling a lot of contacts one at a time, instead of pulling them in batches. Performance is best when contacts requests are made in batches of 100 contact or less. If possible, we suggest using our batch endpoints instead. Regardless of the method used, requests should never exceed 1,000 contacts per call.
- Using both the "create contact" and "create or update contact" endpoints, resulting in duplicate contact errors. Avoid duplicate contact errors by using the "create or update" endpoint exclusively, instead of switching back and forth.
- Lot of errors for CRM extension fetch requests, resulting in 429 or 400 errors. This can result in the HubSpot user seeing an error for their app when viewing the records in the HubSpot app.
- HubSpot customers are used to a “try before you buy” experience when buying our products and services. For this reason, apps should aim to provide a free trial or freemium sign-up experience for customers.
Review, feedback, and approval
Should your app successfully completes the evaluation and earns the “Certified” designation, it will appear as such in the App Marketplace for a 12 month duration. A “Certified” icon will be visible to customers, and your app will appear in App Marketplace results for the “HubSpot Certified” filters.
60 days before the end of the 12 month duration, we will reach out with information and next steps for how to apply to renew your listing.
We reserve the right to unpublish your app listing at any time, as stated in the App Marketplace terms.
Frequently asked questions
How long will the evaluation and review process take?
The evaluation process will take no more than 60 days. If your app successfully completes the evaluation within that time frame, we will renew your listing for a 12 month period, and a new “Certified” designation will appear on your app’s listing for that 12 month period.
What happens if my app does not complete the evaluation process within the 60 day timeframe?
Should your app not successfully complete the evaluation within that timeframe, don’t worry - you can reapply to start the process again 6 months after the previous evaluation was completed.
Rewards for Certified App Partners
In addition to “Listed” Partner Rewards, Certified App Partners Receive:
- Additional Visibility in the HubSpot App Marketplace
- Inclusion in “Certified Partner” Searches
- Eligible for inclusion in Curated App Marketplace Collections
- Certified App Partner Badge, which appears on your marketplace listing
- Priority Access to our Partner Management Team
- Priority Invitations to Partner Days, Founder Days, and more
- Eligible for Priority Access to new HubSpot Alpha/Beta APIs