Using dynamic content in campaigns


Creating dynamic content
   » Elements of a dynamic content block
   » Creating your content
Previewing dynamic content
Test sending dynamic content
Saving dynamic content to re-use it


Dynamic content enables you to tailor your campaign so different groups of your audience receive different content, different offers, images, copy or calls to action.

This means you can send one campaign with multiple targeted messages for different groups of customers. Which message each group receives is dependent on the rules you set when you create the dynamic content.

The example given below will show different messages based on gender. However, you can build much more complicated rules based on (for example) age, location and any other contact data field in your account.

Creating dynamic content

Drag a dynamic content block in from the side panel.


This will create a new block with no rules and no content.


You are now ready to start building your dynamic content.

Elements of a dynamic content block

Each dynamic content block consists of three main aspects:

Default content

This is the default content that your contacts will see if none of the rules says otherwise. Your default content can be blank if you don't want your contacts to see the content by default.


This is the content that you want contacts to see who meet specific criteria set in your rules. This content can be blank or contain any other EasyEditor blocks, including other dynamic content.


These are the criteria you set to determine whether contacts see the default content, or a variation. For example, 'Gender equals male', or 'Age is greater than 65' (rules can be much more complex than this though).

Creating your content

Just like any other EasyEditor dropzone, you can drag in content into your default content and variations from the side panel or from elsewhere in your campaign.

In the below example, we've dragged in a piece of content from the existing template to use as the default content.

Once you've created your default content, you're ready to add your variation content.

Click on Variations in the top left corner of the block, and then click the + New variation button.



This will bring up a box for you to set the rules of your new variation. First of all, give the variation a name; in the image below we have named the variation 'Business version'.

Next you need to set a rule based on one of your default or custom contact data fields - to do this click on select another contact datafield.


This will open the rule builder.

Select from one of the default or custom contact data fields to base your rule upon. Below the contact data fields you can set what rule is applied.

For text-based contact data fields you can set rules for:

  • Equal to
  • Not equal to
  • Contains
  • Does not contain
  • Starts with
  • Ends with
  • Is empty
  • Is not empty
  • Does not begin with
  • Does not end with

For date-based contact data fields you can set rules for:

  • On
  • After
  • Before
  • Is empty
  • Is not empty

And for number-based contact data fields you can set rules for:

  • Equal to
  • Not equal to
  • More than
  • Less than
  • At least (i.e., greater than or equal to)
  • At most (i.e., less than or equal to)
  • Is empty
  • Is not empty

And for Boolean fields you can set rules based on the answer being on (yes/true) or off (no/false).


Once your rule is set, click OK.

You can add multiple rules to be very specific about what content to show each contact.

Between each rule is the 'And'/'Or' toggle. 'And' indicates that all rules created must be true for a contact to see your variation. You can toggle to 'Or', which indicates only one of your rules needs to be true for a contact to see your variation.


When all your rules are ready, click the Apply button.

You now have a piece of dynamic content with two variations. You can see what variation is currently being displayed by its name in the block's header.

To switch between variations, click on Variations in the top left-hand corner of the block and select a variation from the dropdown.


In this example, 'Women's shoes clearance' has been selected, which currently has no content.


In the 'Variations' dropdown menu you can:

  • add another variation
  • select the variation you want to view and work with
  • edit the rules for the variation (by clicking on the pencil icon)
  • duplicate the variation (by clicking on the duplicate icon)
  • delete the variation (by clicking on the red cross icon)

You can also rearrange the order of the variations by dragging them up and down by their side handle; the 'Default' variation will always be the last one in the list.

On your selected variation, drag in the alternative content you want to display to contacts matching the rules applied.



You can't use Utilities > Edit source to view or edit HTML within a dynamic content block. To be able to view or edit the HTML, you need to drag and drop the content outside of the dynamic content block. You can then drag and drop it back in when happy.

Previewing dynamic content

When previewing your campaign, you can choose to:

  • Preview it on behalf of a specific recipient using their contact data fields
  • Choose which dynamic content blocks to show


Test sending dynamic content

When test sending dynamic content to yourself in order to see the different variations you've set up, you'll need to find yourself in your 'Test' address book and edit your contact data fields in order to satisfy the relevant criteria.

For example, let's say you're providing different variations based on location as set in a contact data field called 'COUNTRY'. If you have a variation for contacts with their 'COUNTRY' set as  'France', then make sure you change your 'COUNTRY' contact data field to 'France' to ensure you receive the French variation of the test send. Follow this logic across the board for other variation rules you might have.

Saving dynamic content to re-use it

To save having to create the same rules each time you want to use dynamic content, you can save dynamic content blocks by dragging them onto the left-hand 'Build' area. Read more about saving blocks.

Have more questions? Submit a request


  • Avatar

    Hi Stoo

    This is a good walk through but how do you get content to show if a subscriber equals two variants - e.g. then two pieces of content would show.

    E.g If Product A equals 'yes' and product B equals 'yes' then it should show both content - but currently I can get it only to show one piece of content.

    Cheers, Paul

  • Avatar

    Hi Paul,

    Good question. There are a couple of ways you could use dynamic content to show zero, one or two items depending on their data...

    • Separate piece of dynamic content per rule — Rather than using the above example of showing product A, or product B, or product C in the piece of content you could have a separate dynamic content element for each product. So the first dynamic content element would show 'Product A' only if they fulfilled a 'rule A'; otherwise it would show nothing (so your default variation would be empty). Then repeat this for each item. The recipient will receive only those items relevant to them.
    • Explicit versions for each combination — To have more control you could have a piece of dynamic content which combined the rules.

    • So your first variation is: IF product A equals 'yes' AND product B equals yes, then show both.

    • The next variation is: IF product A equals 'yes', then show A.

    • Then: IF product B equals 'yes', then show B.

    • Default: nothing

    The second method gives much greater control, you can tailor the content specifically to what the user is interested in; and you can give particular specific messages to someone who is not interested in any of the products.

    The first method, is more scalable though. I worked on a project which had ten sets of items which were to be shown or not shown, based on the users' preferences; this is relatively straightforward with the first option, but there were 1024 different combinations of content so it was not viable to do the content manually.

  • Avatar

    How would you apply this to various currencies dependant on the country?  Thanks.

  • Avatar


    Would I have to adopt this approach if I had a 'Tell a Friend' button from my web site and I want to pass the following information captured/residing on the web site?

    1. Senders email address
    2. Friend's email address - this is who the email is being sent to
    3. Product image and details

    Bearing in mind we have about 3000 products.

    Also how can I get dotMailer to send these emails automatically in 'background'?  We can send the relevant information to dotmailer when the user clicks 'Tell a Friend' on the web site, but we want dotMailer to antomatically send the individual emails.


  • Avatar

    Is there a way to send a test e-mail of dynamic content? When I send a test,m I just get the default, but I'd really like to see how each variation looks in my inbox. Is that possible?





  • Avatar

    Following Mike's comments, we would like the ability to preview (or send a test send) of External Dynamically Generated content.

    Thanks, Paul

  • Avatar

    I'd like to send a different image to each and every recipient. We have the images organised and available on an individual URL but I'm not sure how to vary images from the description given.

  • Avatar

    Is there anyway to test send dynamic content as requested in Mike's comment? I'm guessing not as no one has answered the comment. This would be a really useful feature - the only other option I can see is to change the relevant field in the test email record that I'm using, which isn't great.

  • Avatar

    For the sake of other people asking the same question:

    "Is there a way to send a test e-mail of dynamic content? When I send a test,m I just get the default, but I'd really like to see how each variation looks in my inbox. Is that possible?"

    We solve this by making multiple dummy accounts with different values for the fields you want to test.

    1. By using e-mail aliases or a catch-all account you could create multiple email addresses that all go to the same account (e.g., etc.)
    2. Make a spreadsheet with as many accounts as you need and with the fields/values you want to test.
    3. Upload these "contacts" to your test-address-book
    4. Test send your campaign to your selected contacts form the test-address-book and you will receive different dynamic content depending on the values you uploaded with your test accounts.


  • Avatar

    Can you explain how this would work for us. I'd like to have dynamic content which is individual to each contact. I've got 1000 contacts with 1000 individual promo codes - how can I get this into my campaigns?

  • Avatar

    Can you clarify the rules on dynamic content where more than one variant is positive? Which variant content displays please?

  • Avatar

    Are rules on text-based contact data fields case sensitive?
    e.g. Rule: Country = France

    Will "FRANCE" be equal or not?

  • Avatar

    Hi James. This isn't case sensitive and 'FRANCE' will be equal to 'France'.

  • Avatar

    Are there limitations as to how many rules within a dynamic content container? Or any limits on the number of dynamic content containers in one email campaign?

  • Avatar

    Are there any plans to implement webinsight data into rules? I.e. I would like to be able to show relevant products based on browsing history when we don't have any data about the contact in data fields. Would it be at all possible?

    Likewise, the ability to use full segmentation to serve dynamic content would be a great feature to have. 

    Edited by Jadwiga Sinoradzka