Sending emails through API | Adobe Higher Education
Skip to main content
Level 4
November 12, 2020
Beantwortet

Sending emails through API

  • November 12, 2020
  • 1 Antwort
  • 2179 Ansichten

Hi Team, 

 

I am seding emails through javascript API like the below : 

 

 

in my javascript code : 

 

var emailCondition = "@email = 'abc@gmail.com'";

var deliveryId = nms.delivery.SubmitNotification ("prdDM30608",
<delivery>
<targets >
<deliveryTarget >
<targetPart type='query' exclusion='false' ignoreDeleteStatus='false'>
<where>
<condition expr={emailCondition} />
</where>
</targetPart>
</deliveryTarget>
</targets>
</delivery>);
logInfo("deliveryid : "+deliveryId)

 

Currently it is taking the email address statically. I want the email address to be taken dynamically from the query activity. How can i do that ?

 

solution which I am following ( but i don't think so this is a nice solution as when i follow this solution the exclude duplicate option in the email settings not working)

 

Solution which i am thinking is a wrong approach : 

// vars.tableName = table which is generated by query activity and it has email column

var cnx = application.getConnection();

var details = cnx.query("select * from "+vars.tableName);
for each(var row in details)
{
var emailCondition = "@email = '"+row[1]+"'";
var deliveryId = nms.delivery.SubmitNotification ("prdDM30608",
<delivery>
<targets >
<deliveryTarget >
<targetPart type='query' exclusion='false' ignoreDeleteStatus='false'>
<where>
<condition expr={emailCondition} />
</where>
</targetPart>
</deliveryTarget>
</targets>
</delivery>);
logInfo("deliveryid : "+deliveryId)
}
cnx.dispose();

 

Is there any good approach to directly pipe the email from query activity this way i can exclude duplicate addresses for emails. 

 

Question 2: 

Also if in email template if we have a variable piping like "<%=recipient.firstname>" how can i pass this varable from api call ?? any solution for this??

 

Dieses Thema wurde für Antworten geschlossen.
Beste Antwort von DavidKangni

You should use message center for this cases if you want your recipient/user to receive an email after your api call. 

from the marketing instance, i will recommend to send api call to recipient table and trigger a workflow every 10-15 min.

 

Thanks

David

1 Antwort

DavidKangni
Community Advisor
Community Advisor
November 13, 2020

You should use message center for this cases if you want your recipient/user to receive an email after your api call. 

from the marketing instance, i will recommend to send api call to recipient table and trigger a workflow every 10-15 min.

 

Thanks

David

David Kangni
Level 4
November 13, 2020

Hi @davidkangni,

 

I am new to this. Can you give me an example ?

 

Currently i am able to send the deliveries through API but there are some variables of recipient table which i need to pass to delivery template like ( recipient.firstname) how can i do so ?

 

along with email i need to pass two more variables of recipient table.

 

Currently this is my code : 

 

// vars.tableName = table which is generated by query activity and it has email column

var cnx = application.getConnection();

var details = cnx.query("select * from "+vars.tableName);
for each(var row in details)
{
var emailCondition = "@email = '"+row[1]+"'";
var deliveryId = nms.delivery.SubmitNotification ("prdDM30608",
<delivery>
<targets >
<deliveryTarget >
<targetPart type='query' exclusion='false' ignoreDeleteStatus='false'>
<where>
<condition expr={emailCondition} />
</where>
</targetPart>
</deliveryTarget>
</targets>
</delivery>);
logInfo("deliveryid : "+deliveryId)
}
cnx.dispose();