Use external dynamic content

Learn to use our external dynamic content block to add content to your campaigns through a URL endpoint.


External dynamic content lets you pull in and populate campaign content using an external URL endpoint. You can pass data to your URL by attaching contact data fields to the query string.

Before you start

Things you need to know:

  • This article assumes you have your URL endpoint set up and ready to use.
  • To reduce the impact on your server's performance, we recommend you throttle large bulk sends –a few hundred or more– of External dynamic content.
  • If you want to tailor content based on contact data, dynamic content is generally easier to use.
    To learn how, check out the article Using the Dynamic content block.

Step 1: Insert an external dynamic content block

To add the external dynamic content block to your campaign:

  1. To start, either create or edit a new campaign.
    To learn more, check out the article Create, test, and send an email campaign.
  2. From the Build > Building blocks menu in the left-hand column, drag the External dynamic content block into position on the canvas. 

Step 2: Set up the external dynamic content block

To set up external dynamic content:

  1. Select Set up external dynamic content link.
  2. Enter a name for the block.
    The name is for reference only, and it shows in the block header.
  3. Enter your URL endpoint.
    The URL must start with either "http" or "https", and the location of contact data fields (if used) is also essential. For formatting example, check out Examples of valid URL endpoints below.

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.

Step 3: Send your campaign

A campaign containing external dynamic content usually takes longer to send than a regular send. This is because each individual send requires us to pull content from your webserver.

You cannot edit content while sending

When sending a triggered campaign that uses external dynamic content, you can not edit the campaign 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, for example, 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 contains an Email skipped section.

If your endpoint returns anything other than content or a 204 code, the send is 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.

To use link tracking, make sure at least one of the two points below apply:

  • 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.
  • 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).

If you're not using Google Anayltics

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 makes 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 Dotdigital. If you need more help or support, then contact our support team.