Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

Writing conditions based on personalization blocks

Avatar

Level 2

Hello there,

We have a requirement wherein we would like to choose the delivery subject based on the availability of value calculated by a personalization block for a recipient.

if ('%><%@ include view="<a_personalization_block>" %><%' != '') {

  <%@ include view="<a_personalization_block>" %>

} else {

...

}

Have tried the above code block, but it fails. Is it possible to expand a personalization block for a recipient via js code (rather than via scriptlet expressions)?

Are there any alternatives to achieve the above?

Thank you!

Cheers,

Selva

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi,

Create 2 personalization blocks:

  1. Create a function for the conditional in one personalization block
  2. Write all your subject line personalization in the second, calling the first

Thanks,

-Jon

View solution in original post

3 Replies

Avatar

Correct answer by
Community Advisor

Hi,

Create 2 personalization blocks:

  1. Create a function for the conditional in one personalization block
  2. Write all your subject line personalization in the second, calling the first

Thanks,

-Jon

Avatar

Level 2

Thanks Jon, could you provide an example of calling personalization block 1 from block 2?

Cheers,

Selva

Avatar

Level 1

personalization blocks essentially work like an include statement and they will be imported before javascript part is executed. 

 

So define a variable inside your personalization block. something like that:

 

<% var myText = "..."; %>

 

then for your caption do a jssp check (make sure the view is included before that):

 

<%@ include view="myPersonalizationBlock"%><% if (undefined !== myText) { %>Conditional caption<% } %>

 

for your message body just print the message out

 

<%= myText %>

 

Note "undefined !== myText" can be replaced with any condition you need