You can add a Repeatable Block to your marketing materials when sending campaigns using Product sets (i.e. Abandoned cart or Wishlist campaigns in Interactions or Price drop, Back in stock, Low in stock, Wishlist price drop or Wishlist back in stock campaigns in Product Catalog Updates). This block will be repeated based on the number of items contacts interacted with (e.g. added to their cart, wishlist, etc.).
Prerequisites
You need to have a Repeatable Block.
- If your template was created by Emarsys, then you don’t have to update it. 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.
- If you use your own template, then you need to update it as described in Creating a Repeatable Block.
- Images and the number of fields used in this block depend on your requirement.
This is how the Repeatable Block looks:

Adding the Repeatable Block to your campaign
Here is what you need to do to add a Repeatable Block to your campaign:
1. Navigate to Channels > Email Campaigns, select your campaign and click Edit.
2. Select Content Creation in the bottom menu and add the Repeatable Block to your campaign by clicking Insert Into Campaign.

3. Hover your mouse over the Repeatable Block and click the Product Source icon.

4. Select the Product set you need. You can choose from the following options:
The personalization service retrieves the item ID from the Web Extend event that triggers the Interactions program but it matches the item ID with the product attributes from your product catalog.
If you would like to delete the previously selected Product Source, click Remove Product Source. In this case, you can select another Product Source without deleting and adding the Repeatable Block to your campaign again, so you will not lose the variables you have already set in this block. You can also use this block without selecting Personalization rules or Product sets, in this case, this block will not be repeated.

Notes:
- When setting the Maximum number of products in the Display Settings, please keep in mind that we do not recommend displaying more than 10 products in Product Catalog Updates campaigns.
- To delete the previously selected Product Source, click Remove Product Source.
5. Specify the Display Settings. It determines the minimum and maximum number of products displayed in the Repeatable Block.
When setting the Maximum number of products in the Display Settings, please keep in mind that we do not recommend displaying more than 10 products in Product Catalog Updates campaigns (Price drop, Back in stock and Low in stock).

6. You can personalize the Repeatable Block with any fields within your product catalog as described in Adding personalization fields to the product block.
You can select any field from your product catalog. As a best practice, we recommend using the Title, Price and Image fields and links for the CTA button and the image.
Additional fields:
- The Old price field is only available in Price drop campaigns.
- When sending Low in stock campaigns, you can also display the stock amount in the campaign by inserting the custom field you have selected in the Product Catalog Updates trigger.
To format the placeholders, click the Personalization icon. Here you can:
- Select the Field content is a requirement for sending checkbox if you want to make sure that the message is not sent if the Title or Price placeholder cannot be populated.
- Add a Fallback text that is displayed if the value of the field cannot be obtained for some reason. Using a fallback text and marking the field as a requirement for sending are mutually exclusive.
- Set the Formatting type and select the required Formatting option. (E.g. You can set the Formatting type of the Price placeholder to number and the Formatting to round.)
- To add alternative text to images, select the image, click the Image properties icon and insert
{{ item['title'] }}
into the Image alternative text field.

7. Make all the required changes to your campaign, then click Save.
8. Once your campaign is ready, add it to your program.
9. Before sending your campaign, we recommend that you test it.
10. When you are ready, activate your campaign.
You can track the results on the Strategic Dashboard.
Adding product personalization fields in HTML editor
You are also able to use the capabilities of Product Catalog Updates by using Emarsys Scripting Language. This enables you, for example, to add products from an abandoned cart into a email campaign even when you want to use the HTML editor.
You can create similar emails with the HTML editor too:
Be aware that HTML editor based, triggered marketing email campaigns are limited to using Product Sets as a product source as opposed to the Personalization Rules available for VCE editor.
- Go to Channels > Email Campaigns, select your campaign, then click Edit.
- Go to Content Creation.
- Once you finished creating the source code of your email and decided where you want to insert your Product Catalog Update based personalizations, build your ESL code.
You have the following options:
- Adding multiple personalizations where each personalization is using data from the first product from the product catalog
- Adding a single personalization where the personalization is using data from a specified from the catalog
Using multiple personalizations
To use multiple product set based personalization, create an ESL loop.
The following example will show the link, image and title for the first product catalog item in the email.
The general structure is the following:
{% foreach item in product_catalog.<Product_set_name>() %}
"{{ item['any_available_field_in_the_Product_catalog'] }}"
{% endforeach %}
The possible product set names are the following:
- Fast Cart:
abandoned_cart
- Price Drop:
price_drop
- Back in stock:
back_in_stock
An example with some HTML formatting:
{% foreach item in product_catalog.abandoned_cart() %}
<tr>
<td align="center"><a href="{{ item['link'] }}" target="_blank"><img src="{{ item['image'] }}" width="320"
height="320"></a></td>
</tr>
<tr>
<td align="center"><span style="font-size: 18px; line-height:1.6em; color: #444444;">{{ item['title'] }}<br>{{
item['price'] }}</span></td>
</tr>
</table>
</td>
</tr>
{% endforeach %}
Using a single personalization
When using single personalizations, you can define which product's data you want to display in the email.
The following example will show the title of the first product from the Abandoned Cart product set of the contact receiving the email.
The general structure is the following:
{{product_catalog.<Product_set_name>()[0].any_available_field_in_the_Product_catalog}}
Example:
{{product_catalog.abandoned_cart()[0].title}}
This type of personalization can be used in Push messages and SMS as well.
Special field names
The Price Drop product set has the {{ item['old_price'] }} unique field name. This personalization will display the last higher price for the product.
The Abandoned Cart product set has the {{ item['quantity'] }} unique field name. This personalization will display how many of the first type of product were left in the cart of the contact.
The data for these fields is generated and not stored in the product catalog itself.
For more tips with ESL regarding product personalization, check Questions about the Emarsys Scripting Language.
FAQ
How can I make small adjustments to my campaign?
You can make small adjustments (such as changing the background color of your campaign, an image in the header, the color of a button or the font size) to a distributed Tactics campaign without breaking it.
Do not make changes to the structure of a template created by Emarsys.
To make a small adjustment to your campaign, proceed as follows:
1. Navigate to Channels > Triggered Email, select the Mail Streams tab and open the distributed Triggered Email campaign by clicking the Edit icon.
If the Edit icon is disabled and the This campaign cannot be edited. message is displayed in the tooltip, then you cannot edit the specific campaign. In this case, you have to copy it and you can only edit the copied version.
2. Select the Content Creation step in the bottom and make the changes you need (e.g. to quickly change an image, click the image, then select Image properties).
3. Once you are ready, click Save in the top right corner.
The changes that you have made only apply to this specific campaign. So, if you would like to make the same changes to another price drop or back in stock campaign, then you have to apply the same changes to that campaign.
4. Click the Email Settings step in the bottom and make sure that you have selected the Interactions event trigger source.
5. Activate the mail stream to make it available for selection within the distributed Interactions program.
In the following example, we would like to show you how to change the background color of the CTA button.
1. After opening the campaign, we selected the price drop block and clicked the Open Block Style Settings button.

2. We clicked the color code under CALL TO ACTION - Backgroundcolor, selected another color, clicked Apply, then saved the changes.

3. After applying the changes, the template looks like as follows:

How can I display particular items (e.g. first or second item from my product list) in my campaigns?
You can display specific items in the subject line of your campaigns, including Push or SMS campaigns, by using the following tags:
- The ESL snippet has to be identical with your campaign's Product Source (i.e. Price Drop or Back In Stock and you should use it accordingly:
- In the case of a Back in stock campaign, the ESL snippet will look like as follows:
{{ product_catalog.back_in_stock()[0].variable_name }}
- In the case of a Price drop campaign, the ESL snippet will look like as follows:
{{ product_catalog.price_drop()[0].variable_name }}
- In the case of a Back in stock campaign, the ESL snippet will look like as follows:
- In the list below, 0 refers to the first product from your product list. If you would like to display details of the second product, then change 0 to 1.
-
Item title:
{{ product_catalog.price_drop()[0].title }}
-
Item original price:
{{ product_catalog.back_in_stock()[0].old_price }}
-
Item new price:
{{ product_catalog.back_in_stock()[0].new_price }}
-
Item image URL:
{{ product_catalog.price_drop()[0].image_url }}
-
Item URL for CTA:
{{ product_catalog.price_drop()[0].link }}