Home Resources Blog

Our new dynamic content tags will help you to send highly targeted content to your subscribers, increase engagement and cut turnaround times by effectively rolling many versions of a campaign into one.

Dynamic content preview in Campaign Monitor

Regardless of whether you’ve used dynamic content previously, or have never heard of it before, we’ve got you covered in this post. In addition to an introduction to the new dynamic content tags, we’ll show you practical examples, a swag of new documentation to help you get started, plus what you’ll see in your account when you import a campaign.

How it works

The concept is simple – with dynamic content, you can conditionally display text, images or other elements in email campaigns, based on custom field values. It’s similar to personalizing your campaign with custom fields, but with much greater flexibility. For example, let’s say you run an online store and would like to offer a coupon code to your VIP customers only, however you want to send a single email campaign to both VIPs and non-VIPs respectively. No problem. With dynamic content, you can add copy for all customers…

“Check out our new products.”

… then for your VIPs, use dynamic content to mention the coupon:

“Check out our new products – as a VIP, you can receive 25% off…”

Then say, you have both VIPs and vendors tagged in a custom field called “CustomerType”. You could even tailor the content for the latter, too:

“We’d love for you to check out our new products – as a friend of our store, you’ll get 30% off…”

Or for people that are neither tagged as VIPs or vendors:

“Check out our new products and make sure you become a VIP for future discounts…”

That’s only the tip of the iceberg – as far as personalizing both HTML and text-only content goes, the possibilities are endless. As an added benefit, dynamic content may also save you from having to create completely separate campaigns, when all you want to do is alter a call-to-action, or provide relevant information, for a specific group of subscribers.

Introducing the new dynamic content tags

If you’re comfortable with creating campaigns, importing them, and using custom fields, you’ll find using our new dynamic content tags to be a straightforward task. We’ve kept both the tags and logic simple, so you can focus on creative and effective ways to use dynamic content, not debugging code.

There are four scenarios that can be used and respective sets of tags to achieve them. They are:

IF provided
If a specified custom field contains any value, display some content.
IF equals
If a specified custom field equals a specific value, display some content.
If a specified custom field equals a specific value, display some content, otherwise display alternative content.
If a specified custom field equals a specific value, display some content, or else if a specified custom field has a specific value, display some other content. If there is no match in either scenario, display alternative content.

A complete guide to our dynamic content tag language

A practical example

Sample list

This may seem like a lot of new stuff, so let’s look how we’d implement our earlier example to help make sense of it all.

Let’s assume we’ve imported a subscriber list featuring a ‘CustomerType’ custom field, including custom field values (pictured). We’ve also got an HTML email file that we’ll prepare for import. The messages for each ‘CustomerType’ can be added using the following tags and HTML code:

<!-- Using IF/ELSEIF/ELSE to personalize a campaign -->

<p>Check out our new products
[if:CustomerType=VIP]- as a VIP, you can receive 25% off…
[elseif:CustomerType=Vendor]- as a friend, you'll get 30% off...
[else]and make sure you become a VIP for future discounts...

In short, it’s a bit like creating 3 versions of a campaign, but bundling them together into one.

What you’ll see in your account

Dynamic content toggle

We’ve focused on making it as simple as possible to test your campaigns. As you may have noticed in the earlier example, when you preview a campaign with dynamic content (either upon campaign import or via the Campaign Snapshot), you can toggle between versions. In the same vein, once you’ve added recipients with matching custom fields and values, it’s also possible to test your personalization by sending a campaign preview.

A guide to get you started

If you’d like to read up on more practical uses for dynamic content, we’ve got an excellent guide to help you master both the theory and the code.


You can use dynamic content tags in both regular newsletters and auto-responders. An important note is that dynamic content is currently only available when you import a campaign.

We’re very interested to hear how you’ll make the most of dynamic content in your campaigns, so be sure to leave any examples or feedback in the comments below.

  • Ben Carver

    Yay! This makes CM even more powerful. Thanks Ros! Any chance for a transactional system? :D

  • Sam Malone

    Typo “Then say, you’re have both VIPs and vendors”
    You mean “you’ll have”

  • Will

    YES, YES, YES!!!! A long time coming and very welcome update. Thanks!

  • Tony Pye

    Great job guys and girls. Some of the competition have had this sort of capability for a long time, so its awesome news that CM now does this.

    I’m sure it is, but will this capability be available via the API, so the content can be pushed through to campaigns from other systems?

  • JEBL

    This is a feature that really improves the customization and the interest of the target for the message. But nothing really innovative, some emailing service already offers, HAPPY mails is one of the most innovative company is currently developing a similar tool with additional contextual scripting functions.

  • James

    Brilliant first step guys – hope you’ve got it coming for the template editor soon too ;) Or do the tags work if we just put them in the content? Ideally we would be able to select whole blocks based on if statements

  • Dan Cooperstock

    Yay, finally! I think I asked for this a couple of years ago or so. This will really help me.

  • bc

    This is fantastic- and just in time for holiday emails. Thanks for the update CM!

    @JEBL Bad form to advertise your company on a competitor’s blog.

  • Phil Le Cheminant

    Just in time… need this facility for a job in the next couple of days. Perfect!

  • JohnP

    Well done CM. That must have been a tough one to keep under wraps Ros…

  • David Greiner

    Thanks for the great comments everyone.

    Sam Malone: Great catch, we’ve just fixed that up.

    Tony Pye: Yep, this will work out of the box for any regular campaign you import via the API. Just include the tags in your HTML and we’ll take care of the rest.

    James: Our editor doesn’t support these in templates just yet, but it’s something we plan on adding in a future release.

  • Andrew

    About time – sweet! Now we can recommend a great Australian company instead of having to go to MailChimp for this :D

  • Dave Lakins

    Fantastic news – can think of lots of ways to customise our emails. Am assuming it can also be used to show different images as well as text – just as long as they are within the tags ?

  • Rhys

    At last! Been desperate for this for a long time. Had to reluctantly use MailChimp for a new client recently as they do this.

    Great stuff, keep up the good work.

  • Ros Hodgekiss

    Andrew, Dave and Rhys, we’re really glad to get this to you, you’ve all been patient with us :)

    Dave – yes, any HTML/css code can be added between the tags, or even more dynamic content tags if you wish! So images are more than fine. Keen to see what you come up with :)

  • Andrew


    Such a great update :)

  • Andrew

    Great work. Your hard work on new additions like these mean we keep building on our expertise, allowing good email designers to really add value when we get involved with campaigns. Keep on thinking of ways to make us invaluable.

  • Christian Rebelsky

    This is absolutely amazing! Needed it a couple of months earlier, but never mind…it’s finally there.

    Thanks a lot and keep on the good work.

  • Davey

    Great add. Will this work in subject lines? It’d be really useful to develop this feature of not.

    One practical example I thought of was when subscribers arrive from different places, we could create sign up forms that add custom info. it’d help them recognise who’s contacting them.

    Widget exhibition: . . .
    John’s widget shop . . .
    The widget competition . . .

  • Casper

    This is just awesome, but I did like to take it a step future, like using the custom fields to get relevant data via RSS or other similar. Would be perfect to get relevant products or articles depending on readers purchase or preference without need to import the data in custom fields every time, by simply collecting the data remotely

  • Phil James

    Great stuff. Will be really useful. Looking forward to this functionality being available in the template editor (which as a non-techy I absolutely love!).

  • Brendan Patterson

    This looks fantastic, are there any limitations to where this can be used? Inside <layout> for example?

  • Brendan Patterson

    This looks fantastic, are there any limitations to where this can be used? Inside “layout” (element tags were removed) for example?

  • Kate

    is it possible to generate dynamic content based on which list the email is on as supposed to a custom field? I have 2 list hat I cannot merge into one, and I would like to send a single email to both lists and change one section depending on the list on which a given subscriber is. Is this possible?

  • Andreas Ringdal

    Great feature, looking forward to using this with our customers
    Some questions
    1) Can less than and greater than be used in the If conditions? Would be great for customizing newsletter based on the customers location.
    2) Will testing for segments be available?

  • Brian

    This is a great addition! Really opens up a lot of doors. I send out multi-lingual campaigns around Europe and I have been waiting for a feature like this for quite some time.This would allow me to put all language content in one mailing and select content based on the clients language setting. Another annoying thing before was the fact that I had to have a template for each language, each one contained unsubscribe info, contact details etc.. in the relevant language. Now I can just output each footer based on the customer’s language field.

    Bravo CM!!

  • Brian

    Actually… after testing this, It can’t do what I mentioned above.

    It will allow me to use one template for all languages from now on but it stops there.

    When I create a new campaign, I want the ability to “Add a box for German”, “Add a box for French” etc…

    I tried to do this in my template by creating a layout for each language. It works if I have one layout asking “[if:Language=English]” but when I put more than one IF asking about the same custom field at different positions it breaks. Example Below…


    <layout label=”English – Text only”>
    **Box Layout Here**

    <layout label=”German – Text only”>
    **Box Layout Here**


    The ability to “Add” dynamic content via the template editor is a must. Please let me know this will be available soon?

    or maybe there is a totally other way to do it I am not thinking of?

  • Brian

    oops… example here… http://i.imgur.com/HfgwtLG.jpg

  • Jenn

    Will this be available in the “dear” personalization field? I have tried the below with no luck:

    Dear [fullname,fallback=[if:CustomerType=DNA]Sir/Madame

  • Jenn

    Great edition! Thanks :)

  • Jenn

    Actually I got it working with dates. It needed:

    [if:CustomerType=DNA]Dear [fullname,fallback=Sir/Madame],
    [else]Dear [fullname,fallback=Advisor],

  • Bart

    +1 for Capser’s comment:

    “[…] I did like to take it a step future, like using the custom fields to get relevant data via RSS […]”

    +1 for Brian’s comment:

    “[…] when I put more than one IF asking about the same custom field at different positions it breaks […]”

  • Ros Hodgekiss

    Davey – At present, you can’t use dynamic content with subject lines, but it’s a great suggestion for the future. Thank you so much – we’ll keep you posted if this is something we add :)

    Casper and Bart – For this kind of behavioral content, we’d likely look towards developing a deeper integration with your e-commerce software of choice. It’s the kind of solution that’s really difficult to do well, so not likely something we’ll deliver on in the short term, I’m sorry to say. In the interim, I’d recommend checking out https://www.campaignmonitor.com/integrations/retention-science%5Dget in touch with our team[/url] and we’ll happily discuss this with you.

    Jenn – Perfect, glad you got that working :)

    Thank you so much for the feedback, everyone – we’re certainly very keen to find out how we can improve dynamic content and the app in general, so please keep it coming.

  • Jason

    I am not sure I see the benefit of using this approach, as opposed to sending separate emails to separate or segmented lists.

  • Ros Hodgekiss

    Ben and JohnP – Sorry, missed you earlier. Yep, I could barely hold back my excitement for dynamic content and glad you’re finding it to be pretty useful, too. :D As for transactional, there are some pretty good services out there, like our friends at Postmark ;) We’ll keep you posted if it’s something we look into, though!

    Jason – I recommend giving our new Guide to Dynamic Content a read, there’s plenty on the benefits and some practical examples in there. But for starters, this update means that instead of sending separate content versions/HTML emails to separate lists/segments, you can save yourself time and money by bundling all those versions into the one send :)

  • Jay

    This is great! Thanks so much for adding this feature, I’ve been waiting for it!

    Looking forward to dynamic content being added to the template editor – it will be even more useful.

  • Chris Bowler

    Thanks Jay, we appreciate that! And see one of Dave’s comments above — this will definitely be added to our template editor at some point down the road!

  • Brian Laughlan

    Hi Chris,

    Do we have any idea how long down the road is?

  • Jason De Santis

    Hey Brian! There is not a definite time-frame for dynamic-content in the template editor, I’m afraid. However, do keep an eye on our blog for updates to this and other features. Thanks for your patience!

  • Wim

    Great update, guys! I’m really excited but also eager to see the dynamic content in the template editor and subject line.

    But for now, it works like a charm!

  • paul

    These are really useful and mean we can offer more targeted email content for our customers now, keep up the good work!

  • David

    If the dynamic content is used for multilingual campaigns, is there is a way to also change the subjects also dynamically depending on the language? Can we insert tags in the subject … ?

    “At present, you can’t use dynamic content with subject lines, but it’s a great suggestion for the future. Thank you so much – we’ll keep you posted if this is something we add” -> Ok. I did not read all..

    Please do not lose it, This is an important point of personalized emails with your new great system. Thank you for your work.

  • Liam O’Leary

    I love you Campaign Monitor!

  • Ros Hodgekiss

    David, dynamic content in subject lines is a good suggestion, thanks for mentioning it! In the interim, you may be able to work around this using our custom fields and tags, but we’ll be sure to let you know if we add a more elegant way to localize your content.

  • BraceRosso

    Wondering about the process for previews. I just tested it and like how simple it was to use by adding code directly while editing a template. It will be nice when we can make this easier for clients to use through some kind of UI.
    My only comment was that the preview step after editing doesn’t show the dynamic content because we haven’t selected recipients yet. I’ve always thought selecting recipients AFTER editing copy was strange. You usually know who you’re sending to before you start writing, so why not specify that first with the option to adjust later? Then the first opportunity we have to preview would include the dynamic content?
    Is it finally time to adjust when we Define Recipients?

  • Jonny

    Is the ‘if’ comparison case sensitive? I’m guessing it is but haven’t had a chance to test it yet. E.g will [if:Answer=YES] match ‘yes’ as well?

  • Ros Hodgekiss

    Hi BraceRosso, adding dynamic content to templates may work, but as has been mentioned earlier, remains a bit unofficial right now. We’re aiming to create a much better experience down the line, so hang tight!

    This is excellent usability feedback – thank you! We’re certainly open to adjusting the workflow in the app, so really glad you let us know about this. Will keep you posted ;)

    Jonny – no, the condition isn’t case-sensitive. So you can have [if:Answer=yes] or [if:Answer=YES]. All the best!

  • Martyn

    Brilliant feature

  • Ambra Lazzari

    Wow, I’m gonna try it immediately!

  • Carl Michael

    Missed this earlier.

    The addition of dynamic content, something loyal users have been crying out for, help to bring CM more in line worth more serious commercial email platforms. Can’t wait to see how this develops going forward.

  • AW

    Excellent addition to the platform. We have been doing this with other providers since 2007 but your approach and implementation seems to be a lot easier and more user friendly.

  • Anton

    That’s a great feature – it is so important to personalize communications with clients. My current platform does not allow this feature. Looks like I’ll be exploring this functionality further.

  • Ros Hodgekiss

    Hey guys, thank you so much for the positive feedback here. By all means, if there’s anything we can do to help you get started with dynamic content, please get in touch with us – we’d love to lend a hand :)

  • Lex

    Is the use of dynamic content also available for canvas? If this is possible how do i activate/implement this?

    great cool feature by the way!

  • Greg Strutton

    Hey Lex! Controlling Dynamic content isn’t something you can via Canvas just yet, but it is something we’ve got on the cards for a future update :)

  • Leo Antony

    “>Dear [firstname,fallback=Hello] [lastname,fallback=]

  • Ros Hodgekiss

    Hi Leo, this is a great question! In your custom template, you might want to look into using the [IF Provided] condition, eg.

    [if:firstname]Dear [firstname,fallback=][else]Hello[endif],

    If you have any other questions about our template tags, let us know :)

  • Bart

    We really need dynamic subjects. It doesn’t make any sense the body can be dynamic, but the subject can’t.

    How I see this working:

    Simply allow IF ELSE statements in the <title></title> tag of an HTML email that either gets imported manually or through the API. The subject will then be pulled from the HTML page’s <title></title> tag. This could be step 1, and doesn’t require any additional UI.

  • Ros Hodgekiss

    Hi Bart, thank you so much for this suggestion. Mind me asking, would there be that many scenarios where personalization, eg. “Great deals in [city,fallback=your city]” would not suffice? Happy to add your vote for this, as well as any scenarios in which this could be really useful :)

This blog provides general information and discussion about email marketing and related subjects. The content provided in this blog ("Content”), should not be construed as and is not intended to constitute financial, legal or tax advice. You should seek the advice of professionals prior to acting upon any information contained in the Content. All Content is provided strictly “as is” and we make no warranty or representation of any kind regarding the Content.
Straight to your inbox

Get the best email and digital marketing content delivered.

Join 250,000 in-the-know marketers and get the latest marketing tips, tactics, and news right in your inbox.


See why 200,000 companies worldwide love Campaign Monitor.

From Australia to Zimbabwe, and everywhere in between, companies count on Campaign Monitor for email campaigns that boost the bottom line.

Get started for free