Description

This example demonstrates how to create InsertIf expressions that use Related Data information. 

A travel agency wants to send out emails with banners informing customers about their booked travel. The content of the displayed banner changes depending on parameters such as Departure Station, Arrival Station, and Time Range.

Example:


Prerequisites

The related data parameters must exist in your Engage system if you want to use the code from this page. Please note that you must replace the parameters in the code with the ones that your system is actually using.

Parameters

Here is a list of all parameters used in the example expressions. 

Time Range

These parameters are used to define when the banner will appear in the message. This can be set up in the content store block.

Start date: Today is greater than or equal to the start of the range (2023-04-13)

ecm:greaterEqual(date['Today'], ecm:toDate('2023-04-13', ecm:timeZone('Europe/Berlin')))
CODE

End date: Today is less than or equal to the end of the range (2023-11-01)

ecm:lessEqual(date['Today'], ecm:toDate('2023-11-01', ecm:timeZone('Europe/Berlin')))
CODE

Information from the Related Data Table

Outbound_DepartureStation and Outbound_ArrivalStation are columns in the related data table. The related data table is called "customermailing"

Departure Station equals ACE

'Outbound_DepartureStation', '==', 'ACE'
CODE

Arrival Station equals FRA

'Outbound_ArrivalStation', '==', 'FRA'
CODE

Departure Station equals STR or FAO

'Outbound_DepartureStation', 'regex', '(STR|FAO)'
CODE

Your content

In this case, it's a banner that will be displayed in the email message if certain conditions are met. Please note that this is an example only and that the URL and the image don't exist.

img src=https://example.com//img/123654789/banner_620x300.jpg
CODE

Expressions

AND operator

The booking for this passenger meets two conditions: 

Departure from ACE AND Arrival at FRA

<%InsertIf expression="${ ecm:lessEqual(date['Today'], ecm:toDate('2023-11-01', ecm:timeZone('Europe/Berlin'))) && ecm:greaterEqual(date['Today'], ecm:toDate('2023-04-13', ecm:timeZone('Europe/Berlin'))) }" id="Adbanner"%><%ForEach var="count" items="${ecx:filter(ecx:filter(ecx:related('customermailing', user.CustomAttribute['BookingID']), 'Outbound_DepartureStation', '==', 'ACE'), 'Outbound_ArrivalStation', '==', 'FRA')}" max="1"%><ahref="http://example/page"><img src="https://example.com//img/123654789/banner_620x300.jpg" border="0" width="625" height="300" alt="" title="Airport Image" style="display:block; margin: 0 auto" class="w100pc hauto"></a><%/ForEach%><%/InsertIf%>
CODE

OR operator

The booking for this passenger meets one of the two conditions: 

Departure from ACE OR Arrival in FRA

<%InsertIf expression="${ecm:lessEqual(date['Today'], ecm:toDate('2023-11-01', ecm:timeZone('Europe/Berlin'))) && ecm:greaterEqual(date['Today'], ecm:toDate('2023-04-13', ecm:timeZone('Europe/Berlin'))) }" id="Adbanner"%><%ForEach var="count" items="${ecx:merge(ecx:filter(ecx:related('customermailing', user.CustomAttribute['BookingID']), 'Outbound_DepartureStation', '==', 'STR'), ecx:filter(ecx:related('servicemailing', user.CustomAttribute['BookingID']), 'Outbound_ArrivalStation', '==', 'FRA'))}" max="1"%><ahref="http://example/page"><img src="https://example.com//img/123654789/banner_620x300.jpg" border="0" width="625" height="300" alt="" title="Airport Image" style="display:block; margin: 0 auto" class="w100pc hauto"></a><%/ForEach%><%/InsertIf%>
CODE

Departure station only

The booking for this passenger meets one condition:

Departure from ACE only

<%InsertIf expression="${ ecm:lessEqual(date['Today'], ecm:toDate('2023-11-01', ecm:timeZone('Europe/Berlin'))) && ecm:greaterEqual(date['Today'], ecm:toDate('2023-04-13', ecm:timeZone('Europe/Berlin'))) }" id="Adbanner"%><%ForEach var="count" items="${ecx:filter(ecx:related('customermailing', user.CustomAttribute['BookingID']), 'Outbound_DepartureStation', '==', 'ACE')}" max="1"%><ahref="http://example/page"><img src="https://example.com//img/123654789/banner_620x300.jpg" border="0" width="625" height="300" alt="" title="Airport Image" style="display:block; margin: 0 auto" class="w100pc hauto"></a><%/ForEach%><%/InsertIf%>
CODE

Only Departure Station with Multiple Cities

The booking for this passenger meets one of the three conditions:

Departure from ACE OR Departure from STR OR Departure from FAO

<%InsertIf expression="${ ecm:lessEqual(date['Today'], ecm:toDate('2023-11-01', ecm:timeZone('Europe/Berlin'))) && ecm:greaterEqual(date['Today'], ecm:toDate('2023-04-13', ecm:timeZone('Europe/Berlin'))) }" id="Adbanner"%><%ForEach var="count" items="${ecx:filter(ecx:related('customermailing', user.CustomAttribute['BookingID']), 'Outbound_DepartureStation', 'regex', '(ACE|STR|FAO)')}" max="1"%><ahref="http://example/page"><img src="https://example.com//img/123654789/banner_620x300.jpg" border="0" width="625" height="300" alt="" title="Airport Image" style="display:block; margin: 0 auto" class="w100pc hauto"></a><%/ForEach%><%/InsertIf%>
CODE

Arrival Station only

The booking for this passenger meets one condition:

Arrival at FAO only

<%InsertIf expression="${ ecm:lessEqual(date['Today'], ecm:toDate('2023-11-01', ecm:timeZone('Europe/Berlin'))) && ecm:greaterEqual(date['Today'], ecm:toDate('2023-04-13', ecm:timeZone('Europe/Berlin'))) }" id="Adbanner"%><%ForEach var="count" items="${ecx:filter(ecx:related('customermailing', user.CustomAttribute['BookingID']), 'Outbound_ArrivalStation', '==', 'FAO')}" max="1"%><ahref="http://example/page"><img src="https://example.com//img/123654789/banner_620x300.jpg" border="0" width="625" height="300" alt="" title="Airport Image" style="display:block; margin: 0 auto" class="w100pc hauto"></a><%/ForEach%><%/InsertIf%>
CODE

Only Arrival Station with Multiple Cities

The booking for this passenger meets one of the three conditions:

Arrival at ACE OR  Arrival at STR OR Arrival at FAO

<%InsertIf expression="${ ecm:lessEqual(date['Today'], ecm:toDate('2023-11-01', ecm:timeZone('Europe/Berlin'))) && ecm:greaterEqual(date['Today'], ecm:toDate('2023-04-13', ecm:timeZone('Europe/Berlin'))) }" id="Adbanner"%><%ForEach var="count" items="${ecx:filter(ecx:related('customermailing', user.CustomAttribute['BookingID']), 'Outbound_ArrivalStation', 'regex', '(FAO|STR|FRA)')}" max="1"%><ahref="http://example/page"><img src="https://example.com//img/123654789/banner_620x300.jpg" border="0" width="625" height="300" alt="" title="Airport Image" style="display:block; margin: 0 auto" class="w100pc hauto"></a><%/ForEach%><%/InsertIf%>
CODE