sfmc Engagement queries

Jake Borromeo
1 min readJan 22, 2024

--

SELECT
j.ContactKey,
j.JourneyName,
j.JourneyID,
COUNT(DISTINCT s.EventDate) AS NumSends,
COUNT(DISTINCT o.EventDate) AS NumOpens,
COUNT(DISTINCT c.EventDate) AS NumClicks,
sl.CardMemberField1,
sl.CardMemberField2
-- Add more fields from SendLog as needed
FROM
_JourneyActivity j
LEFT JOIN
_Sent s ON j.TriggererSendDefinitionObjectID = s.SendDefinitionObjectID
AND j.ContactKey = s.SubscriberKey
LEFT JOIN
_Click c ON j.TriggererSendDefinitionObjectID = c.SendDefinitionObjectID
AND j.ContactKey = c.SubscriberKey
LEFT JOIN
_Open o ON j.TriggererSendDefinitionObjectID = o.SendDefinitionObjectID
AND j.ContactKey = o.SubscriberKey
LEFT JOIN
SendLog sl ON s.JobID = sl.JobID
AND s.ListID = sl.ListID
AND s.BatchID = sl.BatchID
AND s.SubscriberID = sl.SubscriberID
WHERE
j.JourneyID = 8282
AND j.JourneyName = 'HelloWorld'
GROUP BY
j.ContactKey, j.JourneyName, j.JourneyID, sl.CardMemberField1, sl.CardMemberField2

get all users: https://gist.github.com/camrobert/bef7ab83a6245c7db40dd30c3f25f755
camrobert
/SSJS Get all Users


<script runat="server">
/*Code provided as is without warranty - make sure you understand what this code does before using it - use at your own risk*/
Platform.Load("Core","1");
try {
var prox = new Script.Util.WSProxy();
//================== https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/accountuser.html
var cols = ["Name","CustomerKey","NotificationEmailAddress", "UserID", "ActiveFlag", "Email", "IsAPIUser", "AccountUserID", "LastSuccessfulLogin", "CreatedDate", "Roles"];
//================= https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/ssjs_WSProxy_basic_retrieve.html
var filter = {
LeftOperand: {Property: "Email",SimpleOperator: "like",Value: "@"},
LogicalOperator: "AND",
RightOperand: {Property: "ActiveFlag",SimpleOperator: "equals",Value: "true"}
};
var res = prox.retrieve("AccountUser", cols, filter);
Write(Stringify(res.Results)+"<br><br><br>");

Write("<table border=1><tr><th>Name</th><th>Email</th><th>CreatedDate</th><th>LastSuccessfulLogin</th><th>Roles</th></tr>");
for (i = 0; i < res.Results.length; i++) {
Write("<tr><td>" + res.Results[i].Name + "</td><td>" + res.Results[i].Email + "</td><td>" + res.Results[i].CreatedDate + "</td><td>" + res.Results[i].LastSuccessfulLogin + "</td><td>");
for (r = 0; r < res.Results[i].Roles.length; r++) {
Write(res.Results[i].Roles[r].Name + "<br>");
}
Write("</td></tr>");
}
Write("</table>");
}
catch(error) {
Write('Message: ' + error);
}
</script>

--

--

No responses yet