Writing conditions based on personalization blocks

Avatar

Avatar

selvandhanm3541

Avatar

selvandhanm3541

selvandhanm3541

18-11-2019

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

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar

wodnicki

MVP

Avatar

wodnicki

MVP

wodnicki
MVP

18-11-2019

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

Answers (2)

Answers (2)

Avatar

Avatar

DimaKudriavcev

Avatar

DimaKudriavcev

DimaKudriavcev

04-08-2020

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

 

 

 

Avatar

Avatar

selvandhanm3541

Avatar

selvandhanm3541

selvandhanm3541

18-11-2019

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

Cheers,

Selva