Use external dynamic content


External dynamic content is different to dynamic content. If you wish to tailor content based on contact data, dynamic content is generally easier to use. You can find out more at our Using dynamic content in campaigns article.


External dynamic content enables you to provide campaign content through a URL endpoint. You can pass data to your URL by attaching contact data fields to the query string.

This article assumes you have your URL endpoint set up and ready to go.

Adding an external dynamic content block to your campaign 

Edit a campaign, and ensure the Build tab in the side panel is selected. Under the Building blocks section, there is a block called External dynamic content under 'Tools'. This can be dragged and dropped into your campaign.

Setting up your external dynamic content block

When an external building block is dragged onto a campaign, it will show Set up external dynamic content link. Click this to supply a name for the block, and also your URL endpoint.

The name is for your reference only, but we'll show it in the block's heading.

The address is the URL of your endpoint. The format of this URL matters; it must start with either 'http' or 'https', and the location of contact data fields (if used) is also important.

Examples of valid URL endpoints

Where @EMAIL@ contains something like ''.

Where @DATAFIELD@ contains something like 'filename.php'.

Where @DATAFIELD@ contains something like 'filename'.

Where @DATAFIELD@ is a folder name, for example.

Where no contact data fields are used.

Examples of invalid URL endpoints

Where @URISCHEME@ contains 'http://' or 'https://'.


Where @DATAFIELD@ contains a domain, for example.

Sending your campaign

A campaign containing external dynamic content may take longer to send than a regular send, as each individual send may require us to pull content from your webserver.

You should also note that whilst a triggered campaign is being sent using external dynamic content, it will not be editable until the send is complete.

How external dynamic content URLs which don't return data are handled

If a request for external dynamic content for a contact returns no content (an HTTP 204 status code), the contact is skipped but sending to the rest of the contacts continues. This is recorded and your report overview for the campaign will contain an 'Email skipped' section.

If your endpoint returns anything other than content or a 204 code, the send will be aborted.

The maximum wait time for an answer to a request is five seconds.

Link tracking

Clicks on links in external dynamic content blocks are tracked differently to links elsewhere in your campaigns. For link tracking to work, you need to ensure that:

  1. Either your account has Google Analytics configured, in which case any external links found in your external dynamic content blocks will be rewritten to have Google Analytics tracking information appended to them.
  2. Or your external dynamic content block is assigned to a link group. This way, any clicks on any links in the block will be tracked against the link group (please note though that clicks on individual links within the block will not be tracked).

Note: If you're not configured with Google Analytics and you don’t use link grouping, there will be no tracking on external dynamic content links.


You can have a maximum of 20 external dynamic content blocks in any one campaign. However, as each block will make an HTTP request, and as HTTP requests are generally slow to make, high numbers of external dynamic content blocks may significantly reduce the send speed of your campaign.


Keep in mind that external dynamic content only works with live sends and not test sends.
Did you find this article helpful?

Can we help?

Thanks for using Engagement Cloud. If you need more help or support, then contact our support team.