Highlighted

Dynamically change Personalization Blocks

sreev97350841

19-07-2019

Hello,

We have several variations of an email and wanted to come up with a dynamic solution to change the email content based on each recipient data.

One simple variation is Country, Language, Salutation..etc

Instead of using a big "If..else" section we are thinkking of using a table to store the names of all the different personalization blocks.

Example:

Email1 US, English, Mr, PB_VIEW1

Email1 US, Spanish, Mr, PB_VIEW2

Email1 CA, English, Mr, PB_VIEW3

But when building the email I'm having trouble dynamically changing the PB name.

"<%@ include view=" + w.$PB_NAME + "%" +">"

It looks like this type of functionality is not supported in Adobe. I've also tried extracting the HTML by querying the nms:IncludeView schema but this does not work if there are any javascript variables in the block's.

Are there any other alternate options? Please help.

Thanks

Sree

Replies

Highlighted

Anita_p

MVP

22-07-2019

Hi Sree,

It seems that your PB is not correct as per the syntax, it should be something like <% include view = 'abc' %>.

Please check the same .

Regards,
Anita

Highlighted

kapilKochar

MVP

22-07-2019

Hi Sree,

I am not sure i understand your problem statement correctly.

If I want to avoid multiple if else inside Email delivery what i will do is to create one personalization block  and include that block in delivery source code.

Something like below

Creating PB

1796968_pastedImage_0.png

Using above created PB in Email source code.

1797101_pastedImage_1.png

Thanks,

Kapil

Highlighted

wodnicki

MVP

23-07-2019

Hi,

One solution is to include a personalization block that includes all personalization blocks, then inside each wrap content with a conditional:

<% if (PB_NAME === 'name of this block') { %>

...

<% } %>

Thanks,

-Jon