Enable Smart Content on Rich Text in Custom Modules

Since the addition of custom modules into the Design Manager Tool, templates are being built using these custom modules.
But these modules does not support smart content what makes its use limited of specific.
ie: Best custom module idea is a Banner module, but a banner is the first place where smart content needs or can be applied.
I understand the coding complexity for making the custom module entirely smart but It will be more than enough if we can add Smart Content tool into rich text modules in custom modules.

HubSpot updates
35 Replies
Occasional Contributor

@Captshawn That's great news! Thanks for the update and I look forward to reading about a release date.

Regular Contributor

@Captshawn we would also be interested in the Beta.

Regular Contributor

Hi All, 

Would like to ask if there is an update to this new enhancement?

Thank you

Jon_McLaren Esteemed Contributor | Platinum Partner
Esteemed Contributor | Platinum Partner

Updating based on what I know.

This is a highly demanded feature. HubSpot's been planning out how to pull it off, because with custom modules there's an infinite level of complexity that could come with how smart content could be done. They want to find the right balance between making it simple while still providing you power.

This functionality is super complex and HubSpot knows smart content is one of the main draws to HubSpot in the first place. They haven't forgotten about this.

Every time I've asked during AMA's and whatnot the answer is consistently  - we're working on it, we have no expected timeline.

Regular Contributor

It's possible to code your own smart content for all fields in custom modules, but it's not THAT easy and definitely needs a developer.


You will need proxy server connected to Hubspot API.


Here's a very rough overview on how to do it:


# Add separate smart content fields

Let's say you have [title] text field. Now in the same custom module create new group [smart title] consisting of:

 - smart content type (choice field)

 - smart content rule (text field)

 - value (same as field we want to change, which is text in [title])


# Display this as something to be easy used by Javascript

<span data-smart-id="title">This is my default title</span>



smart = { title = { type: '{{ smart_title.smart_content_type }}', rule: '{{ smart_title.smart_content_rule }}', value: '{{ smart_title.value }}',



# Now you need to create client-side javascript which will parse all `smart` objects and send smart content rules to proxy server along with "hubspotutk" cookie value. For example, client sends:

  hubspotutk = "dsfdsgdf",
  { title = {
     ["Country", "United States"],
["Country", "United Kingdom"]

# Server receives this and does a GET request to API: 

Server checks if rules are met. If contact property "Country" equals "United States", server can respond to client with something along the lines of { "country", "United States", true }


# Now client script knows which rule has passed and can replace default title with "This is title for US visitors"



New Contributor

Would absolutely love this feature as soon as possible. We are very limited with what we can do with coded templates currently. Making custom modules smart would open many, many doors & make Hubspot a viable solution 

Regular Contributor

We've also done some coding to enable smart content into customer modules, but have found that it doens't always work especially in nested modules. For example, smart content by country works, but not by list memebrship. It would be great if we could have a full-proof solution from the HS team for this. 

Regular Contributor

We've done some smart module development as well and it's a tricky business for a number of reasons. We've developed feature parity with the referrer module and the list membership module, but we can't duplicate the nice UI that the hubspot smart modules have. Hubspot also cheats the "smart" functionality within the preview mode so in order to actually enable previewing, every sublayer of smart module functionality is actually twice as complex as it sounds. This smart-like functionaity also requires an inert smart module to be added to the page in order to work correctly and to be previewed, so that's another problem area. Having gone through the development of just these two features, I can definitely say that smart features must be limited to the top level of the custom module only (and not allow every field in a module to be smart). But I can confirm it is theoretically possible to build custom smart-like custom modules from scratch via Hubl without addtional complexity (like using the API or external hosting).

Regular Contributor

A massive +1  from me as well. We NEED this!

Regular Contributor

A big +1 as well!


I can get around this by using global modules, but I need to then use the global module as a template itself and duplicate it for each instance that I need it for to have unique content. 


Would love if smart content could apply to more than just the rich text field, like it does in global modules.