Expand my Community achievements bar.

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