Getting Started

Learn through 101 guides and easy solutions.

Pushing Pardot: How to use Dynamic Content With More Than 25 Options

Pushing Pardot: How to use Dynamic Content With More Than 25 Options

min. reading

Pardot Dynamic Content is great, but only if you need fewer than 25 variations for a piece of content.


…you might be thinking.

“Perhaps you need to be more specific with your audience segmentation!”

…you might say.

You might be right.

But for global marketing operations teams, 25 variations can be a vexing limitation if they want to keep things automated.

Think about the local contact information for an email footer that you’d like to use globally. You may need it in more than 25 versions to accommodate all the languages or countries you’re marketing to.

That kind of thinking can get a normal marketing person anxious. What if the data’s bad? How can we predict what will happen? WILL I GET FORWARDED ALL THE COMPLAINT EMAILS??

But not YOU. You’re a MOPS pro, and you’re going to use the power of Pardot Handlebars Merge Language (HML) to protect yourself against these possibilities!

The key here is nothing. Literally. It’s a blank.

We leave the “default” content blank on all sets of Dynamic Content, allowing the variable to cascade through the groups until it finds a match and displays what we want. If there is no match, the magic of HML provides that fallback value.

The real-world example

Let’s use our local contact information requirement, and assume we need content for 50 countries (obviously you could use this with the 50 US states).

We will build the two Dynamic Content sets, 25 countries go into the first one with a blank default and the other 25 going into the second content piece, also with a blank default.

The blank default means that if the Prospect’s Country value doesn’t match anything in that Dynamic Content block, it’s not going to actually put anything there. That allows the values from the second Dynamic Content block to go to work and serve up a value when it finds a match.

Here’s how those two pieces of Dynamic Content would look:

A list of countries for dynamic content blocks
A list of countries for dynamic content blocks

The problem: This doesn’t account for any prospects whose Country field value is missing. In that case, the recipient wouldn’t get anything there. BAD UX.

To fill in a default “fallback” value we use an if/else HML structure. We will then put the Dynamic Content after the HML. In this case, we’ll put the corporate HQ address as the fallback.

*Note: programmers will want to put the dynamic content inside the HML “IF”, but this won’t work consistently in all use cases.*

Let’s break down the HML:

{{dynamic_content_1332}} {{dynamic_content_1334}}  

This is where Pardot evaluates the Country field value, serving up the right address if the recipient’s country field matches. If it doesn’t match on Country Group A (Dynamic content 1332), it doesn’t display anything and moves on to Country Group B (Dynamic content 1334). If it still doesn’t match a country, it returns the default value, which is a blank.

{{#if Recipient.Country}}

This “#if” HML tag means “Let’s check this Prospect’s Country field for a value.”


This is the HML magic that says “If there is no value, put this stuff instead (Corporate HQ address)”


End if statement and therefore, the HML.

If you haven’t enabled HML…

You can still use this solution, but without the fallback value. This is fine if you’re absolutely confident in your data, or if you have a situation where serving up no data is better than the wrong data.

What are your ideas?

How could you use more than 25 variations of Dynamic Content? Let us know in the comments!

Subscribe to The Spot

This field is for validation purposes and should be left unchanged.

Salesforce Training Courses


Top 5 Recent Posts

  • Rob Walter is a 2021 Salesforce Marketing Cloud Champion who is 7x SFDC certified. He is currently Director of Marketing Operations at SaaSOptics + Chargify.

Leave Your Comment

Related Articles

Bot Single Post