【第191回】 dataviews.io に 送信ログテンプレートが追加
私の記事でも何度か紹介した Salesforce MVP ズザンナ・ヤルチンスカさんが制作・運営している Marketing Cloud アプリ「dataviews.io」に、送信ログテンプレートが追加されました。
これまではデータビューのみの表示でしたが、この新機能によりさらに強力なツールへと進化しています。
■ 送信ログ テンプレート
送信ログテンプレートが、データビューと同様に表示できるようになりました。画面上部の「Display SendLog Templates」スイッチをオンにするだけで、簡単に送信ログテンプレートが表示されます。
■ 送信ログ が クエリジェネレーター で利用可能に
送信ログもクエリジェネレーターで利用可能になりました。これにより、送信ログを購読者データビューやジャーニーデータビューと結合して、SQL クエリを自動生成することができます。
クエリジェネレーターの使い方
クエリジェネレーターは、大多数のデータビューの右上にあるチェックボックスを選択し、右上の「Generate Query」ボタンをクリックすることで、簡単にクエリを結合し、生成できる便利な機能です。
試しに SendLog、Subscribers、Sent、Job、Journey、Journey Activity の 6 つにチェックを入れて「Generate Query」ボタンをクリックしてみます。
すると「クエリがクリップボードに保存されました」と表示されますので、貼り付けてみます。すると、以下のように自動的に連結されたクエリが表示されるわけですね。これが クエリジェネレーター 機能です。
SELECT
SendLog.JobID,
SendLog.ListID,
SendLog.BatchID,
SendLog.SubID,
SendLog.TriggeredSendID,
SendLog.ErrorCode,
_Sent.AccountID,
_Sent.OYBAccountID,
_Sent.SubscriberID,
_Sent.SubscriberKey,
_Sent.EventDate AS SentEventDate,
_Sent.Domain,
_Sent.TriggererSendDefinitionObjectID,
_Sent.TriggeredSendCustomerKey,
_Subscribers.DateUndeliverable,
_Subscribers.DateJoined,
_Subscribers.DateUnsubscribed AS SubscribersDateUnsubscribed,
_Subscribers.EmailAddress,
_Subscribers.BounceCount,
_Subscribers.SubscriberType AS SubscribersSubscriberType,
_Subscribers.Status AS SubscribersStatus,
_Subscribers.Locale,
_Job.AccountUserID,
_Job.EmailID,
_Job.FromName,
_Job.FromEmail,
_Job.SchedTime,
_Job.PickupTime,
_Job.DeliveredTime,
_Job.EventID,
_Job.IsMultipart,
_Job.JobType,
_Job.JobStatus,
_Job.ModifiedBy,
_Job.ModifiedDate,
_Job.EmailName,
_Job.EmailSubject,
_Job.IsWrapped,
_Job.TestEmailAddr,
_Job.Category,
_Job.BccEmail,
_Job.OriginalSchedTime,
_Job.CreatedDate AS JobCreatedDate,
_Job.CharacterSet,
_Job.IPAddress,
_Job.SalesForceTotalSubscriberCount,
_Job.SalesForceErrorSubscriberCount,
_Job.SendType,
_Job.DynamicEmailSubject,
_Job.SuppressTracking,
_Job.SendClassificationType,
_Job.SendClassification,
_Job.ResolveLinksWithCurrentData,
_Job.EmailSendDefinition,
_Job.DeduplicateByEmail,
_JourneyActivity.VersionID,
_JourneyActivity.ActivityID,
_JourneyActivity.ActivityName,
_JourneyActivity.ActivityExternalKey,
_JourneyActivity.JourneyActivityObjectID,
_JourneyActivity.ActivityType,
_Journey.JourneyID,
_Journey.JourneyName,
_Journey.VersionNumber,
_Journey.CreatedDate AS JourneyCreatedDate,
_Journey.LastPublishedDate,
_Journey.JourneyStatus
FROM [SendLog_Name] AS SendLog
LEFT JOIN _Sent
ON SendLog.JobID = _Sent.JobID
AND SendLog.ListID = _Sent.ListID
AND SendLog.BatchID = _Sent.BatchID
AND SendLog.SubID = _Sent.SubscriberID
LEFT JOIN _Subscribers
ON SendLog.SubID = _Subscribers.SubscriberID
LEFT JOIN _Job
ON SendLog.JobID = _Job.JobID
LEFT JOIN _JourneyActivity
ON SendLog.TriggeredSendID = _JourneyActivity.JourneyActivityObjectID
LEFT JOIN _Journey
ON _JourneyActivity.VersionID = _Journey.VersionID
これらをすべて実行すると、逆に使いづらいので、ある程度必要そうなデータに絞って Query Studio で実行してみます。
SELECT
SendLog.JobID,
_Sent.SubscriberKey,
_Sent.EventDate AS SentEventDate,
_Subscribers.EmailAddress,
_Sent.Domain,
_Subscribers.Status AS SubscribersStatus,
_Job.EmailName,
_Job.EmailSubject,
_JourneyActivity.ActivityName,
_Journey.JourneyName,
_Journey.VersionNumber
FROM [SendLog_Name] AS SendLog
LEFT JOIN _Sent
ON SendLog.JobID = _Sent.JobID
AND SendLog.ListID = _Sent.ListID
AND SendLog.BatchID = _Sent.BatchID
AND SendLog.SubID = _Sent.SubscriberID
LEFT JOIN _Subscribers
ON SendLog.SubID = _Subscribers.SubscriberID
LEFT JOIN _Job
ON SendLog.JobID = _Job.JobID
LEFT JOIN _JourneyActivity
ON SendLog.TriggeredSendID = _JourneyActivity.JourneyActivityObjectID
LEFT JOIN _Journey
ON _JourneyActivity.VersionID = _Journey.VersionID
WHERE DATEDIFF(MM, _Sent.EventDate, GETDATE()) <= 6
すると、以下のように 送信ログ の JobID から購読者情報や、メール情報、ジャーニー情報を引っ張ってこれるわけですね。
こちらは重要なクエリなので、日本語表記対応やシステム時間に対して 15 時間プラスしたものも以下に記載しておきます。
SELECT
SendLog.JobID,
_Sent.SubscriberKey,
DATEADD(hh, 15, _Sent.EventDate) AS SentEventDate,
_Subscribers.EmailAddress,
_Sent.Domain,
_Subscribers.Status AS SubscribersStatus,
_Job.EmailName COLLATE Japanese_CS_AS_KS_WS AS [EmailName],
_Job.EmailSubject COLLATE Japanese_CS_AS_KS_WS AS [EmailSubject],
_JourneyActivity.ActivityName COLLATE Japanese_CS_AS_KS_WS AS [ActivityName],
_Journey.JourneyName COLLATE Japanese_CS_AS_KS_WS AS [JourneyName],
_Journey.VersionNumber
FROM [SendLog_Name] AS SendLog
LEFT JOIN _Sent
ON SendLog.JobID = _Sent.JobID
AND SendLog.ListID = _Sent.ListID
AND SendLog.BatchID = _Sent.BatchID
AND SendLog.SubID = _Sent.SubscriberID
LEFT JOIN _Subscribers
ON SendLog.SubID = _Subscribers.SubscriberID
LEFT JOIN _Job
ON SendLog.JobID = _Job.JobID
LEFT JOIN _JourneyActivity
ON SendLog.TriggeredSendID = _JourneyActivity.JourneyActivityObjectID
LEFT JOIN _Journey
ON _JourneyActivity.VersionID = _Journey.VersionID
WHERE DATEDIFF(MM, _Sent.EventDate, GETDATE()) <= 6
おまけ ①:メールアクティビティの ActivityID を指定する場合(※ WHERE に追加してください。)
AND _JourneyActivity.ActivityID = '****************'
おまけ ②:メールアクティビティの TriggeredSendCustomerKey を指定する場合(※ WHERE に追加してください。)
AND _Job.TriggeredSendCustomerKey = '******'
いかがでしたでしょうか。
さすが Salesforce MVP の仕事!って感じですよね。無料でこの機能を提供し続けているのは本当に素晴らしいことだと思います。今後もアップデートがかかるとのことですので、期待して待ちましょう。
今回は以上です。