The Repeatable Block is a dynamic product block that enables you to add multiple items dynamically to your email campaign from different product sources (e.g. Personalization rules or Interactions events). Depending on its layout, the Repeatable Block can display a single or multiple products within a block by using a multiple row or column layout. Campaigns including Personalization rules or Product sets (i.e. Price drop, Back in stock, Low in stock and Abandoned cart) use the Repeatable Block.
Prerequisites
- If you would like to use a Repeatable Block with a single product per block layout, then your template should contain a block that includes an image and at least 3 editable fields.
- If your template was created by Emarsys, then you do not need to update your template.
Please do not edit the original template created by Emarsys. If you modify that template, then Emarsys will not support it anymore. You can make small adjustments such as changing the background color or font type to the copied template on a campaign level.
- Please contact your Client Success Manager if you would like to use the Repeatable Block with a multiple-product per block layout. Please note that developing such a Repeatable Block may incur additional costs.
- If you use your own template, then you need to update it as described in Creating a Repeatable Block.
Creating a Repeatable Block
Here is what you need to do to build a Repeatable Block on your own:
1. Navigate to the Content > Block-Based Templates page and open your template by clicking the Edit icon.
2. Select the block you would like to convert into a Repeatable Block and click the Edit icon.
The Repeatable Block comes with two layout options, you can choose from the following options:
- Create a Repeatable Block with a single product per block layout. This is how it looks like:

- Create a Repeatable Block with a multiple-product per block layout. This is how it looks like:

Creating a Repeatable Block with a single product per block layout
1. Select the Blocks tab on the left, choose a block that contains an image and at least 3 editable fields and add the e-repeatable-item
attribute to the opening <tr>
tag.
For example:

2. When you are ready, click Save.
3. Now you can edit your campaign:
- If you would like to use Personalization rules in your campaign, then follow the instructions in Using Personalization rules in email campaigns.
- If you would like to send Price drop, Back in stock, Abandoned cart, Low in stock campaigns, then follow the instructions in Adding the Repeatable Block to campaigns using Product sets.
Creating a Repeatable Block with a multiple-product per block layout
Please note that if you have less items to show than the number of products (i.e. columns or rows) specified in the Repeatable Block, then your campaign will not be sent. For example, if you would like to display 4 products in the Repeatable Block but you have 3 or less items to show, then the campaign will not be sent.
1. Add the e-repeatable
attribute to the opening <tr>
tag.

2. Depending on your block structure, you can add the e-repeatable-item="<product_number>"
attribute to the opening <th>
, <td>
or <table>
tag within the <tr>
tag where you would like to display the product. For more information, please consult your Implementation Consultant.
You need to repeat this step depending on the number of products you would like to display in a single block.
For the first product, you need to use the e-repeatable-item="1"
attribute. For the second product, you need to use the e-repeatable-item="2"
attribute, etc. For more information, see the following examples:
3. When you are ready, click Save.
4. Now you can edit your campaign:
- If you would like to use Personalization rules in your campaign, then follow the instructions in Using Personalization rules in email campaigns.
- If you would like to send Price drop, Back in stock, Abandoned cart, Low in stock campaigns, then follow the instructions in Adding the Repeatable Block to campaigns using Product sets.
Notes:
- Please keep in mind that the Repeatable Block displaying multiple products within a block is responsive, so you can display content on desktop or mobile devices flexibly.
- You can also display static content in the Repeatable Block. In this case, you need to insert the product attributes (image, title, description, URL, etc.) of the specific product instead of adding personalized placeholders to this block.
<!-- This is the root element -->
<tr e-repeatable>
<td>
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="10"></td>
<td>
<!-- This is your products table -->
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<!-- Container Product #1 -->
<th e-repeatable-item="1" align="left" class="vat fl">
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
[...]
</td>
</tr>
</table>
</th>
<!-- End of Container Product #1 -->
<th width="20" class="fl rh10"></th>
<!-- Container Product #2 -->
<th e-repeatable-item="2" align="left" class="vat fl">
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
[...]
</td>
</tr>
</table>
</th>
<!-- End of Container Product #2 -->
<th width="20" class="fl rh10"></th>
<!-- Container Product #3 -->
<th e-repeatable-item="3" align="left" class="vat fl">
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
[...]
</td>
</tr>
</table>
</th>
<!-- End of Container Product #3 -->
</tr>
</table>
</td>
<td width="10"></td>
</tr>
</table>
</td>
</tr>
<!-- This is the root element -->
<tr e-repeatable>
<td>
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="10"></td>
<td>
<!-- This is your products table -->
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<!-- Container Product #1 -->
<td e-repeatable-item="1" align="left" class="vat rw50p pr5">
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
[...]
</td>
</tr>
</table>
</td>
<!-- End of Container Product #1 -->
<td width="20" class="mh"></td>
<!-- Container Product #2 -->
<td e-repeatable-item="2" align="left" class="vat rw50p pl5">
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
[...]
</td>
</tr>
</table>
</td>
<!-- End of Container Product #2 -->
</tr>
</table>
</td>
<td width="10"></td>
</tr>
</table>
</td>
</tr>
<!-- This is the root element -->
<tr e-repeatable>
<td>
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="10"></td>
<td>
<!-- This is your products table -->
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td algn="center">
<!-- Container Product #1 -->
<table e-repeatable-item="1" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
[...]
</td>
</tr>
</table>
<!-- End of Container Product #1 -->
<!-- Container Product #2 -->
<table e-repeatable-item="2" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
[...]
</td>
</tr>
</table>
<!-- End of Container Product #2 -->
</td>
</tr>
</table>
</td>
<td width="10"></td>
</tr>
</table>
</td>
</tr>
The Repeatable Block code examples we provide above are good starting points, but please do bear in mind that they are simply syntactically correct bare-bone blocks. Tailoring them to your specific scenario and making them will require a considerable effort on your part.
Known issues and limitations
- Before sending campaigns where you use the Repeatable Block displaying multiple products within a block together with Personalization rules, please keep in mind that you cannot send such campaigns to contacts who have not received any communication yet. Personalization rules will only work if contacts have already received a campaign without Personalization rules or Repeatable Blocks with such a layout.
- Repeatable Blocks can display a maximum of 15 products.
- The VCE Product Search add-on does not work if the block is optimized to be repeatable.
- When using Repeatable Block in a campaign, using the Email Campaign Check is not supported. Email Campaign Check uses a test campaign to a random contact to show potential issues. If the repeatable block has the required filter and the Repeatable Block cannot be fed with all the required data, a preview cannot be generated for the campaign, preventing the correct functioning of the Email Campaign Check.