Modules are editable areas of HubSpot pages or emails. While you can add modules to a template layout using the drag and drop Template Builder, you can also create modules using HubL. HubL modules can be defined in a coded template file, a HubL template module, or a blog content module. Below is a comprehensive list of modules and their parameters.
{% %}
, and must specify module
, a unique name, and the module’s design manager path. A module can also include parameters for additional settings.
/
means the root of the current drive;./
means the current directory;../
means the parent of the current directory.@hubspot/
followed by the type of module.True
or False
values. Learn more about the parameters that are available for all modules.1
, and you pass into the parameter a 0
, you will not see a warning that the value is invalid.dnd_area
, come with a set of default parameters, such as width
. While the design manager will prevent you from creating new fields that use one of these reserved parameters, modules created before drag and drop tags were introduced may already use a reserved parameter.
To fix this, you can use the fields
parameter. Just like you would pass field data to a group, you can pass the field name as a key on the fields
object. Its value must be consistent with the format the field type expects.
dnd_module
tags. Below, learn how to set default field values in nested field groups, repeating fields, repeating field groups, and style fields.
style
field group containing other nested field groups. Compare its template-level configuration with how this same grouping would appear in the design manager.
styles
parameter.
This works just like other groups do, where the parameter is the name of the group. You pass an object to that parameter with all of the fields you wish to set.
module_block
syntax, widget_block
was used. It follows the same pattern but the opening tags were widget_block
, and widget_attribute
. Closing tags were end_widget_attribute
, end_widget_block
.The widget_block
syntax is deprecated but you don’t need to update old code.module_block
or widget_block
(deprecated) is the type_of_module
parameter.
In nearly all of our documentation you will find we use module
. V2 HubSpot Modules are normal modules, like what you can create. Therefore there’s no longer a need to use a different type_of_module
.
While widget_block
is deprecated, and you should use module_block
. If inheriting a website from another developer it may contain old code using widget_block
and type_of_module
.
The type_of_module
supports V1 HubSpot module names for example: rich_text
or raw_html
. Additional parameters can be added to the first line of HubL. The second line defines which parameter the contents of the block will be applied to. For example, for a rich_text
module this should be the html parameter. For a raw_html
module, this would be the value parameter (see both examples below).
Parameter | Type | Description | Default |
---|---|---|---|
label | String | The name of the module displayed in the content editor. This parameter can also be used to give users additional instructions. | |
overrideable | Boolean | Controls whether or not the module can be edited in the content editor, equivalent to the Prevent editing in content editors setting in the design manager. | True |
no_wrapper | Boolean | When set to True , removes the wrapping markup from around the content of a module.On pages, modules are always wrapped in a <div> with special classes. This wrapping markup makes it so when you click the module in the preview pane, the editor scrolls to that module. There may be instances where you want to remove the wrapper, such as if you want to use a text module to populate the destination of an anchor tag href attribute. | False |
extra_classes | String | Adds classes to the module wrapper. You can add multiple classes by separating the classes with spaces. For example:extra_classes='full-width panel' | |
export_to_template_context | Boolean | When set to True , instead of rendering the HTML, the parameters from this widget will be available in the template context. Learn how to use this parameter and the widget_data tag. | False |
unique_in_loop | Boolean | When the module is defined within a loop, appends the module name with the loop.index. When set to True , a different version of the module will print within each iteration of the loop. Appends the module name with the loop.index. | False |
Field | Type | Example | Keys |
---|---|---|---|
Blog | Integer (blog ID) | 1234567890 | |
Boolean | True/false | false | |
Choice | String | "option_1" | |
Color | Object | { "color" : "#ffffff", "opacity" : 100} | color 6 character hexidecimal format opacity integer 0 - 100 |
CTA | String (CTA ID) | "fb9c0055-6beb-489d-8dda-3e1222458750" | |
Date | Timestamp | 1566360000000 | |
Datetime | Timestamp | 1566360000000 | |
Email address | Array (email address strings) | ["develop@hubspot.com", "design@hubspot.com"] | |
File | String (URL of file) | "https://cdn2.hubspot.net/hubfs/file.pdf" | |
Follow Up Email | Integer (follow up email ID) | 1234567890 | |
Font | Object | { "size" : 12, "size_unit" : "px", "color" : "#000", "styles" :{ "text-decoration" : "underline" }, "font" : "Alegreya", "fallback" : "serif", "variant" : "regular", "font_set" : "GOOGLE"} | size font size without unit type size_unit font size unit string
color hex color code string styles supported properties”font-weight” “normal” / “bold” “font-style” “normal” / “italic” “font-style” “none” / “underline” |
Form | Object | { "form_id" : "9aa2e5f3-a46d-4774-897e-0bc37478521c", "response_type" : "redirect", "redirect_url" : "http://www.hubspot.com", "redirect_id" : null, "form_type" : "HUBSPOT"} | form_id The form’s ID. How to get a form’s id. response_type “redirect” / “inline” message Message displayed if using response_type “inline”. String supporting html. redirect_url String, absolute URL to a webpage redirect_id Page/Post id to redirect to form_type “HUBSPOT” / “TICKET_FORM” |
HubDB Table | Integer (HubDB table ID) | 123456789 | |
Icon | Object | { "name" : "align-center", "unicode" : "f037", "type" : "SOLID"} | name The icon’s name unicode The unicode symbol for the font the icon is from type Symbol style. “SOLID” / “REGULAR” It is recommended you set an icon field and view the values that way, to set the parameters properly. |
Image | Object | { "src" : "https://cdn2.hubspot.net/hubfs/image.jpeg", "alt" : "an_image", "width" : 100, "height" : 100} | src Image URL alt Image alt text, used by screen readers and search engines width The width at which the image is to be displayed height The height at which the image is to be displayed |
Link | Object | { "url" : { "type" : "EXTERNAL", "href" : "www.hubspot.com", "content_id" : null }, "open_in_new_tab" : false, "no_follow" : false } | url object storing URL data.type
href The URL you are linking to. open_in_new_tab “true”/“false”, determines if target="_blank" should be added no_follow “true”/“false”, determines if rel="nofollow" should be used |
Logo | Object | { "override_inherited_src" : true, "src" : "https://cdn2.hubspot.net/hubfs/logo.png", "alt" : "best_logo_ever", "width" : 100, "height" : 100} | override_inherited_src true/false overide the portal defaults src Image URL alt Alt text, used for screen readers and search engines. width width the image is to be displayed at height height the image is to be displayed at |
Meeting | String (meeting link) | "https://app.hubspot.com/meetings/developers-r-kewl" | |
Menu | Integer (menu ID) | 123456789 | |
Number | Integer | 1 | |
Page | Integer (page ID) | 1234567890 | |
richtext | String (can contain HTML) | "# Hello, world!" | |
Salesforce Campaign | String (Salesforce campaign ID) | "7016A0000005S0tQAE" | |
Simple Menu | Array of menu item objects | [ { "isPublished" : true, "pageLinkId" : 123456789, "pageLinkName" : "My page", "isDeleted" : false, "categoryId" : 1, "subCategory" : "site_page", "contentType" : "site_page", "state" : "PUBLISHED_OR_SCHEDULED", "linkLabel" : "This is a page", "linkUrl" : null, "linkParams" : null, "linkTarget" : null, "type" : "PAGE_LINK", "children" : [ ] } ] | isPublished true/false is the menu item’s page published? pageLinkId Page id in the CMS pageLinkName The page’s actual name in the CMS isDeleted true/false categoryId
subCategory
contentType
state
linkLabel text the user reads and clicks linkUrl actual URL the user is sent to upon clicking linkParams \# links or ? query parameters linkTarget if open in new tab is enabled “_blank” otherwise “null” type
children array of menu item objects, identical to individual menu items. |
Tag | Integer (tag ID or slug, ID is recommended) | 1234567890 | |
Text | String | "it's like any other string" | |
URL | Object | { "type" : "CONTENT", "href" : null, "content_id" : 123456789} | type
href String, the URL you are linking to. |