見出し画像

【第191回】 dataviews.io に 送信ログテンプレートが追加

私の記事でも何度か紹介した Salesforce MVP ズザンナ・ヤルチンスカさんが制作・運営している Marketing Cloud アプリ「dataviews.io」に、送信ログテンプレートが追加されました。

これまではデータビューのみの表示でしたが、この新機能によりさらに強力なツールへと進化しています。

■ 送信ログ テンプレート

送信ログテンプレートが、データビューと同様に表示できるようになりました。画面上部の「Display SendLog Templates」スイッチをオンにするだけで、簡単に送信ログテンプレートが表示されます。

■ 送信ログ が クエリジェネレーター で利用可能に

送信ログもクエリジェネレーターで利用可能になりました。これにより、送信ログを購読者データビューやジャーニーデータビューと結合して、SQL クエリを自動生成することができます。

※クエリを使用する際は、送信ログDE名(SendLog_Name)を、ご自身の送信ログDE名に置き換えてください。

クエリジェネレーターの使い方

クエリジェネレーターは、大多数のデータビューの右上にあるチェックボックスを選択し、右上の「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

・「SendLog_Name」の部分は、皆さんの環境に合わせて 送信ログの名前 に変更してください。
・6 ヶ月分のデータが重たくタイムアウトする場合は、期間を 1 ヶ月などに短縮することを検討してください。

すると、以下のように 送信ログ の JobID から購読者情報や、メール情報、ジャーニー情報を引っ張ってこれるわけですね。

・ データビューの保存期間は最大でも 6 ヶ月のため、上のサンプルクエリのように 6 ヶ月以内に絞ってクエリを実行することをお勧めします。
・ 上のクエリで表示されるメールアドレスは、現在、すべての購読者に登録されているメールアドレスが表示されます。配信当時のメールアドレスを表示するには 送信ログ で配信当時のメールアドレスを保持している必要があります。

こちらは重要なクエリなので、日本語表記対応システム時間に対して 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

・「SendLog_Name」の部分は、皆さんの環境に合わせて 送信ログの名前 に変更してください。
・6 ヶ月分のデータが重たくタイムアウトする場合は、期間を 1 ヶ月などに短縮することを検討してください。

おまけ ①:メールアクティビティの ActivityID を指定する場合(※ WHERE に追加してください。)

AND _JourneyActivity.ActivityID = '****************'

おまけ ②:メールアクティビティの TriggeredSendCustomerKey を指定する場合(※ WHERE に追加してください。)

AND _Job.TriggeredSendCustomerKey = '******'

いかがでしたでしょうか。

さすが Salesforce MVP の仕事!って感じですよね。無料でこの機能を提供し続けているのは本当に素晴らしいことだと思います。今後もアップデートがかかるとのことですので、期待して待ちましょう。

今回は以上です。


前回の記事はこちら

私の note のトップページはこちら

いいなと思ったら応援しよう!