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

Personalization variable in Delivery


Level 1



I want to have a personalized salutation in my emails. So it opens with something like:

Dear John

Dear Maria 



Because of the way our setup is established i cannot use the target data extension for personalization. So i tried it with  javascript code and the delivery variables. But i'm stuck, because the salutation it picks is only the last one on the list. 

So i'm only getting:

Dear John

Dear John 

Dear John etc. 


My javascript skills are very basic so maybe i'm doing something wrong.


This is the code i use in the delivery:

var schemaName = vars.targetSchema.substr(vars.targetSchema.indexOf(":") + 1);

var query = xtk.queryDef.create(

<queryDef schema={vars.targetSchema} operation="select">


<node expr="salutation"/>




result = query.ExecuteQuery();


for each (var e in result) {

delivery.variables._var[0].stringValue = e.salutation



Thank you in advance 🙂 


Kind regards, 




5 Replies


Level 5

Hi @J2021 , I think you mix up the delivery variables and the personalization variables.

What you are doing is to use let's say a "global" variable with "delivery.variables". It means that this object will be the same for every recipient of your delivery.

I suppose you don't want this.

You'll have to load this salutation in the custom personalization datas, because depending of the size of your target, you won't be able to load all the personalizations into a unique global variable.


I'm suprised why can't you use the target data extension ?

You mean that the code


is not an option for you ?





Level 1

Hi @CedricRey ,


Ah that makes a lot of sense. I couldn't find the setting behind the delivery variables so that's why i tried it this way. 


If i try to make use of the targetData variable it gives an error. And when i'm in the email itself i don't have the option to enrich it with targetData personalization as shown below. 




So that's why i went looking for another way to do the personalization. But i'm starting to wonder if there is another way to do it without the targetData. 


Level 5


The targetData is only available when you start the delivery from a workflow.

Also you  won't see the option to use it with standard tools menu, but you will see it if you open the delivery from the workflow view (Open the targeting worflow, the "delivery" activity, the loop to open the delivery details and then you should be able to use the personalization menu to find 'Target Extension').

But as it can only be used with a workflow, it doesn't allow to preview the message (with the 'Preview' tab in the delivery form). It is a logical limitation, the only way to check your message is to send it (a proof or real message, as you want).


The simpliest way for your example to avoid the use of targetData, if the salutation is a field of your target schema (let's say nms:recipient ?), is to just write the following syntax :

<%= recipient.salutation %>

(or use the name of you schema if it's not recipient).




Level 1

Hi @CedricRey 


I am sending this delivery through a workflow. So that's why i find it strange the option for TargetData isn't there. Is this something that has to be implemented in an Adobe setup or does it always come with the setup? 


I will try it with the other option. Thank you!


Level 5

Hi @J2021 this is not an option, it come as it. But if you don't see it, it can be explained (as it must be opened from the workflow, the context is passed thru the forms and something can be lost).

Another thing : to be sure that "targetData.salutation" is available on the delivery, can you force an alias in the query/enrich activity where you got this field ? Just put "@salutation", and check it in the workflow flow by pausing the delivery (right click on the deliv activity, "Activate but don't execute"), right click on the entering transition, second tab 'display target' and check the schema if salutation has the right name)