featured image showing article title and abstract computer illustration
featured image showing article title and abstract computer illustration

How to Use Dynamic Content in Infusionsoft/KEAP Emails

September 27, 2019 Email Marketing, infusionsoft by Keap, Uncategorized 0 Comments

It’s exciting to finally see Dynamic Content available in emails for Infusionsoft. I raised this point back in Nov 2017, in the Certified Partners Facebook page and it finally got noticed. This is a big step forward for Email personalisation and segmentation. With Liquid, you can have filters, conditions, and determine different text/images for different segments/personas. No more ugly webs of decision diamonds to do the same.

blocks being stacked

This opens up a whole lot of possibilities in email segmentation and bringing Infusionsoft email functionality  back on par with others like Klayvio and Campaign Monitor. Bearing in mind the complexities of the Campaign Builder, and other moving parts, I’m glad they sorted out this technical challenge. 

So, how does this work, and what can this achieve? 

Well we used to have big decision diamonds to create different personalised email messages based on: 

(1) personas (e.g. SME owner, Marketing Manager, Sales Manager) 

(2) data in fields (example, emails with gmail.com, interests, industry type), 

(3) buying history (example Total Order more than $X) 

(4) data in tags (example, existing customer tag). If there are many conditions it could end up like this:

Using Dynamic Content in the emails, you end up crafting conditions into the emails themselves ending up with this: 

after dynamic image


How awesome is that!

The only challenge is you have to be some sort of programmer to understand the way to code them. It’s not difficult for some people with an engineering/computing background, but might be challenging for those that will just get a headache looking at formulas. 

Liquid code can basically be categorised into Objects, Tags and Filters

Objects are the Fields, Tags, or even Orders objects in Infusionsoft/KEAP. It tells Liquid where to show content, and is denoted by {{ }} or [[ ]], double curly or square braces.

Tags (not referring to Infusionsoft tags) create the logic and control flow for the templates. It is denoted by curly braces and the percent sign: {%  and %}

Filters change the output. It;s used within an output and separated by the pipe character “|”

A FEW EXAMPLES NEXT (warning … you may get progressively concerned about the complexity of writing this code yourself. Fear not, you can always get help www.martechva.com, starting from $15/hour. Get a quote to code your emails)


What you write: {{ contact.firstname }} 

What is displayed: George

Contact is an object in Infusionsoft, with a table of fields. You can see what fields are available for each object in the Table Schema. Custom Fields are denoted with a “_” before the field name, example:

{{ contact._WhereWeMet }}

Question to be answered: Can we insert other objects like an Order or even Note? Either the Last Order or last Note… or we can determine which Order or which Note… 


What you write: Hi {{ contact.firstname | default: ‘there’ }}

If firstname is George, then

What is displayed: Hi George

If firstname is empty, then

What is displayed: Hi there

This is absolutely amazing. In the past, we had to make sure all firstname fields were properly populated…

EXAMPLE 3  >> Control Flow Tags … <Warning … your headache may start>

Say you would like to have a different statement based on a field value like number of employees … this could be persona based or field data.

{% if contact.numberofemployees > 50 %}

Displays: With a large organisation like yours, communication is key.

{% elsif contact.numberofemployees > 5 %}

Displays: In SMBs, the key is balance

{% else %}

Displays: In a micro-org like yours, you need to save every dollar

EXAMPLE 3  >> More Control Flow Tags … 

{% if contact.email1.address contains ‘@gmail.com’ %}

<a href=”https://help.keap.com/help/gmail-sync”>Gmail sync for Keap </a> captures the email communications in Gmail into your contact record.

{% else %}

<a href=”https://help.keap.com/help/gmail-sync”>Gmail sync for Keap </a> and <a href=”https://help.keap.com/help/microsoft-sync”>Microsoft email sync </a> for Keap captures the email communications into your contact record.

{% endif %}

Since we are able to add HTML in Liquid, other than inserting links, we can also insert images as well. Picture this … Conditional Images …  

This level of usage will require basic understanding of HTMLs that you can use. Or simply learn to read and replace codes written for you once. You can just duplicate and replace.

 EXAMPLE 4  >> Grab System Fields like today’s date and display different formats of date

{{ today.date }} 2019-08-13

{{ today.date | short }} 8/13/19

{{ today.date | medium }} Aug 13, 2019

{{ today.date | long }} August 13, 2019

{{ today.date | full }} Tuesday, August 13, 2019

This will work for custom dates in contacts as well example

{{ contact._preview date | full }} Tuesday, August 13, 2019

This solves the issue of dates fields appearing as 08/13/19, as well

And wait that’s not all … you can also add formulas to dates !!!

{{ today.date | plus_days:14 | full }} Tuesday, August 27, 2019

This adds 14 days to today’s date … 

Use cases:

“ Your offer will expire on xxxxx “

“ Early Bird price ends XXX”

There are tons of possibilities if you know the entire Liquid library of codes available for you to make your email sing and dance. You can read all about liquid codes here.

OR you can get us to code for you !!! (Get a quote to code your emails starting from $15/hour)


Hello ~Contact.Firstname~,


{% capture day %}{{‘now’|date: ‘%A’}}{% endcapture %}

{% case day %}

{% when ‘Sunday’ %} Check out our Sunday specials!

{% when ‘Monday’ %} Check out our Monday specials!

{% when ‘Tuesday’ %} Check out our Tuesday specials!

{% when ‘Wednesday’ %} Check out our Wednesday specials!

{% when ‘Thursday’ %} Check out our Thursday specials!

{% when ‘Friday ‘%} Check out our Friday specials!

{% when ‘Saturday’%} Check out our Saturday specials!

{% endcase %}

Instead of a if elsif statement, we can use the capture function and Case Statements to display different outputs. You can use “when” in place of “if” then “elsif”.


Dynamic Content in emails can be used to send highly relevant messages to segments of contacts, and therefore get more conversions. This is a well known technique called “rapport building”, by relating to their situation, fears, desires, and sense of community. A simple difference of inserting the industry instead of small business:

Hey Joe,

In spa businesses, there is this success story about XXX, a spa owner like yourself I’d like to share

instead of

In SMBs, there are success stories like XXX

This makes a whole lot difference to how you can start using personalisation to a greater effect in emails.



Do you want to take your email
personalisation to the next level?


We run a quarterly Email Marketing MasterClass
that covers Email Personalisation and using Liquid Code.


If you’d like to be informed of the next class date, please submit
your information here and we will get back to you.



Have something to say about this article? Share it with us on:

Want to leave a comment for this blog?

Click here to leave your comment!
an image of a scaleup marketing book on flip pages

Subscribe To Our Newsletter

Join our mailing list to receive TOP SEMINAR MARKETING SWIPE FILES  and the latest news and updates from our site.

Don't forget to check your email after clicking "DOWNLOAD SWIPE FILES". 

We will also send you A FREE CONSULTATION OFFER so don't forget to check you email in a few days

Thanks for subscribing! Don't forget to check your email for the swipe file download.