I want to retrieve the email name associated with a triggered send definition via WSProxy on a Cloud Page. To be clear, I'm not trying to retrieve the name of the Triggered Send Definition, rather the name of the Email used in the Triggered Send Definition. Using sample code found elsewhere on StackExchange for displaying an automation's status, I created the following:
<script runat="server">
Platform.Load("core","1");
var debug = false;
try {
var prox = new Script.Util.WSProxy();
var mids = [MID_GOES_HERE];
if (debug) {
Write("<br>mids: " + Stringify(mids));
}
Write("<table border='1'>");
Write("<tr>");
Write("<th>Business Unit</th>");
Write("<th>Trigger Status</th>");
Write("<th>Trigger Name</th>");
Write("<th>Email Name</th>");
Write("</tr>");
for (i = 0; i < mids.length; i++) {
var mid = mids[i];
prox.setClientId({"ID": mid});
var obj = "TriggeredSendDefinition";
var cols = ["ObjectID","CustomerKey","TriggeredSendStatus","Name","Email"];
var filter = {
Property: "CustomerKey"
, SimpleOperator: "IN"
, Value: ["CUSTOMER_KEYS_TO_FILTER"]
};
var opts = null;
var props = null;
var moreObjs = true;
var reqID = null;
while (moreObjs) {
moreObjs = false;
var objs = reqID == null ? prox.retrieve(obj, cols, filter, opts, props) : prox.getNextBatch(obj, reqID);
if (objs != null) {
moreObjs = objs.HasMoreRows;
reqID = objs.RequestID;
for (var j = 0; j < objs.Results.length; j++) {
var triggerObj = objs.Results[j];
var status = "";
switch (triggerObj.TriggeredSendStatus) {
case "New": status = "New"; break;
case "Inactive": status = "Paused"; break;
case "Active": status = "Running"; break;
case "Canceled": status = "Archived"; break;
case "Deleted": status = "Deleted"; break;
}
Write("<tr>");
Write("<td>" + mid + "</td>");
Write("<td>" + status + "</td>");
Write("<td>" + triggerObj.Name + "</td>");
Write("<td>" + triggerObj.Email + "</td>");
Write("</tr>");
}
}
}
prox.resetClientIds();
}
Write("</table>");
} catch (e) {
if (debug) {
Platform.Response.Write("<br><br>e: " + Stringify(e));
}
}
</script>
This script shows the table but no data is returned. If I adjust the script to remove "Email" from the 'var cols' a NULL is displayed for email name.
The TriggeredSendDefinition Object lists "Email" as a property here.
I'm not too experienced with this sort of script, so am unsure of what to adjust or if it's even possible to accomplish what I'm trying to.