HubSpot Asset Marketplace Module Requirements
As of December 8th, 2021, we are no longer accepting submissions and updates of modules to the Asset Marketplace. Please read our changelog announcement for more information.
The following requirements need to be met when submitting modules to the Asset Marketplace.
At this time, modules submitted to the Asset Marketplace may not contain HubDB, calls to Serverless Functions, or the CRM Object Field.
Modules must contain, at minimum, the following screenshots:
- How the module will appear on the page to front end users.
- The page-level editor settings of the module.
- If repeater content is used in the module, you must provide a screenshot of one instance of the repeating item settings.
An example of this can be found in our Accordion Toggle module on the marketplace.
Modules must include descriptive text to accommodate the module in the following:
- Module Name: Your module name must be descriptive. For example, names such as “Content Card with Link” are descriptive whereas “Card 01” and “CCard” is not.
- Field Name: Your module fields should include descriptive names to show the intent of the fields. For example, if a text field is meant to include a person’s job title, “Job Title” would be a proper description whereas “Title” is not.
- Field Default Content: Default content in fields should be present and represent the usage of the module field. We do not recommend simply adding “Lorem Ipsum” content as this doesn’t portray real life use of your module.
- Menu fields must use "Choose a menu" as the default content option.
- Form fields must use "Choose a form" as the default content option.
The following are optional recommended options for your module.
- Module Label: When empty, this is replaced with the Module Name. However, there are times where modules may have a different name internally vs how the item is labeled in the page editor.
- Module Inline Help Text: Depending on how complex your module is, it may be beneficial to add supplementary inline help text to your modules to help direct users as the usage intent of your module.
- Field Level Tooltip and Inline Help Text: Depending on how your modules fields are meant to be used, it may be beneficial to add either tooltip or inline help text to the module. These should not be used interchangeably, please see our note about proper usage for each in our developer documentation.
Modules must include a custom icon assigned to the module (replacing the default icon). Learn more about module icons in our developer documentation.
The following requirements must also be met in conjunction with our initial requirements about code quality in our HubSpot Asset Marketplace Compliance, Design, Code Quality, and Disclaimers section. These requirements are specific to modules.
All module code must be self-contained and not rely on code located elsewhere. External files utilized inside of modules must use the Linked Files feature.
Hardcoded inline styles are not allowed inside of modules. We recommend using dynamic inline styles (having fields be able to control the styling) where inline styling is necessary.
JavaScript should reference DOM elements by module specific classnames to ensure elements outside of the module are not unintentionally affected. Also, all JavaScript must be able to represent multiple instances of a module. JavaScript in the JS Pane will only load once per page, regardless of the number of module occurrences.
When creating modules, you can use a built-in variable called {{name}}
. This variable pulls in the module's instance ID (which can be used in the HTML+HubL panel only) to help in CSS and JS markup for complex modules. Learn more about this in our developer documentation.
Thank you for your feedback, it means a lot to us.