【第406回】 Marketing Cloud Next : Email Engagement カスタムレポート
Marketing Cloud Next Growth & Advanced Editions を Spring ’26 より前から利用していた組織では、Data Cloud - Flow Reports として 2 種類のレポートが提供されていました。
このレポートは、現在 Flow Performance へ移行されています。
それが、以下のレポートです。
① Flow Element Analytics
カスタムレポートタイプ:Flow Run Details by Individual
格納フォルダ:Flow Element
ー要素ごとの実行状況を確認できるレポートで、どの要素で待機しているか、どの要素を完了したかなどを確認できます。
また、決定要素でエラーが発生した場合の原因なども特定できます。

② Email Engagement Outcomes
カスタムレポートタイプ:Flow Element Run to Email Outcomes
格納フォルダ:Flow Email Engagement
各「メール送信」要素単位でのエンゲージメント履歴(開封、クリックなど)を確認できるレポートです。
各メール要素 ID で検索することで、該当の要素のエンゲージメントデータを抽出して、エクスポートすることも可能です。

新規のインストールが突然の終了
これらは、実はマーケターにとって非常に重要な標準レポートでした。
しかし、Salesforce は Tableau Next を活用した Flow Performance へ移行したことで、これらの標準 CRM レポートは Spring ’26 以降、特に告知もなく、突然、設定から新規インストールができなくなりました。
Flow Performance はフロー全体や各 Flow Element の成果を分析するのには便利ですが、
この Individual に実際にどのメールが送信されたのか
どのメールアドレスに送信され、OPEN や CLICK がいつ発生したのか
どの Flow Version、Flow Element、Segment、メール件名に紐づく履歴なのか
といった、個々の Email Engagement レコードを詳細に調査する用途では、通常の Salesforce レポートの方が扱いやすい場合があります。
そこで今回の記事では、特に重要だった Email Engagement Outcomes に変わる Salesforce レポートを実装してみたいと思います。
今回作成するレポート
今回のレポートでは、例えば以下の情報を確認できるようにします。
Individual ID
First Name
Last Name
Sendtime Email Address
Engagement Date Time
Engagement Channel Action
Email Recipient Send Status
Flow Name
Flow Version
Flow Element Name
Segment Name
Engagement Action Reason
Email Bounce Type
Bounce Reason
Unsubscribe Source
Resolved URL
Email Subject
From Address
Message Purpose
レポートの中心は Email Engagement
今回は Email Engagement をカスタムレポートタイプの主オブジェクトにします。
Email Engagement は実際に発生したメールの送信や開封、クリックなどのエンゲージメント履歴です。
そのため、「Email Engagement の履歴を起点に、その履歴に関連する情報を確認する」という今回の用途では、Email Engagement を主オブジェクトにするのがイメージ通りかと思います。
設計としては、以下のような形になる予定です。
Email Engagement
│
├─ Individual
│ ├─ First Name
│ └─ Last Name
│
├─ Flow Element Run
│ └─ Flow Element
│ └─ Flow Version
│ └─ Flow
│
└─ Bulk Email Message
└─ Market Segment
ただし、これらすべてをカスタムレポートタイプのオブジェクトとして直接追加するわけではありません。
今回は Email Engagement を主オブジェクトとして、Lookup Relationship から関連項目を追加したいと思います。
それでは設定を開始します。
1. カスタムレポートタイプを作成
1. まず 設定 を開き、クイック検索で 「レポートタイプ」 を検索して、「新規カスタムレポートタイプ」 をクリックします。

2. 今回は、以下のように設定して、次に進みます。
主オブジェクト:Email Engagement (Data Cloud)
レポートタイプの表示ラベル:Email Engagement Details
レポートタイプ名:Email_Engagement_Details
説明(任意):Detailed email engagement report with flow, individual, message, and segment information.
カテゴリ:Data Cloud

Set Availability については、作成中は 「開発中」 に設定します。この状態では、Manage Custom Report Types 権限を持つユーザーのみが利用できます。設定や動作確認が完了したら 「リリース済み」 に変更し、他のユーザーも利用できる状態にします。ただし、最初から利用可能な状態で作成したい場合は、作成時点で 「リリース済み」 を選択しても問題ありません。
3. 次のページでは、関連オブジェクトを接続せずに、そのまま保存します。

2. Email Engagement の項目を確認
4. カスタムレポートタイプを保存したら「レイアウトを編集」 を開きます。

5. すると Email Engagement を主オブジェクトとしてカスタムレポートタイプを作成すると、Email Engagement の項目はあらかじめレイアウトに追加されています。そのため、Email Engagement 自体の項目を追加する必要はありません。

3. Individual の情報を追加
6. 次に、「ルックアップ項目」を追加します。

Email Engagement
→ Individual (Data Cloud)
を選択します。

7. ここでは、以下を追加します。
First Name
Last Name

8. 続いて、新規セクションを作成して、名前を「Individual」とします。

これにより、Email Engagement が保持する Individual ID と合わせて、
Individual ID
First Name
Last Name
Sendtime Email Address
などを確認できるようになります。

4. Flow の情報を追加
9. 次に、どの Flow から発生した Email Engagement なのか分かるようにします。こちらも 「ルックアップ項目」を追加します。
Email Engagement
→ Flow Element Run (Flow Element の右の View Related Field を押す)
※ ここで Flow Element が 2 つありますが、上を選択します。
→ Flow Element (Flow Version の右の View Related Field を押す)
→ Flow Version (Flow の右の View Related Field を押す)
→ Flow
以下の 3 つの項目を追加(Apply)しながら、階層を下ってください。
各セクション名は、各 DMO の名前にしてください。
Flow Element Run DMO は連結専用なので、項目の追加は不要です。
① Flow Element:Name


② Flow Version:Version Number


③ Flow:Name


これで、
どの Flow の
どの Version の
どのメール送信要素から
発生したエンゲージメントなのかを確認できるようになります。
5. Bulk Email Message の情報を追加
10. 次に、送信されたメール自体の情報を追加します。こちらも「ルックアップ項目」を追加です。
Email Engagement
→ Bulk Email Message
を選択し、以下の項目を追加します。
Subject
From Address
Message Purpose


これにより、
Subject
から実際のメール件名を確認できます。
From Address
では送信元メールアドレスを確認できます。
Message Purpose
を利用すると、そのメッセージの用途に関する情報(商用 or トランザクション)もレポートに含めることができます。
6. Segment Name を追加
11. 最後にセグメント名も追加します。
Lookup Relationship から、
Email Engagement
→ Bulk Email Message (Market Segment の View Related Field を押す)
→ Market Segment
→ Name
と辿ることで、Segment Name を追加できます。


12. レポートタイプの設定はこれで終わりなので、最後に「保存」してください。
これにより、
送信当時、どのセグメントを利用したメール送信だったのか
を同じレポートから確認できます。
7. レポートを作成
13. 続いて、「分析」 タブを開き、作成ボタンから「Lightning レポート」をクリックします。

14. カテゴリーを「Data Cloud」に切り替えて、
Email Engagement Details
を検索し、レポートの作成を開始します。

15. フィールドを開きます。

15. 以下の順番になるように列を追加します。
列の追加はダブルクリックで行うことができます。積み上がる形なので下から作業すると効率が良いかもしれません。
Email Engagement: Individual
Individual: Last Name
Individual: First Name
Email Engagement: Sendtime Email Address
Email Engagement: Engagement Date Time
Email Engagement: Engagement Channel Action
Email Engagement: Email Recipient Send Status
Market Segment: Segment Name
Email Engagement: Engagement Action Reason
Email Engagement: Email Bounce Type
Email Engagement: Bounce Reason
Email Engagement: Unsubscribe Source
Email Engagement: Resolved URL
Bulk Email Message: Subject
Bulk Email Message: From Address
Bulk Email Message: Message Purpose

なお、以下は次のセクションでグループ化に使うので追加不要です。
Flow: Flow Name
Flow Element: Flow Element Name
Flow Version: Flow Version Number
8. グループ化を行う
16. レポートを見やすくするために、Flow ごとに行をグループ化します。
今回は、以下の順番でグループ化します。これは上から作業してください。選択したものが積み上がりません。
Flow: Flow Name
Flow Element: Flow Element Name
Flow Version: Flow Version Number

これにより、例えば、同じ Flow に複数の Version が存在している場合でも、それぞれの Version を分けて確認できます。
さらに Flow Element Name までグループ化することで、同じ Flow Version 内に複数のメール送信要素が存在する場合でも、どの Flow Element から発生した Email Engagement なのかを分けて確認できます。
9. レポートの検索条件を利用
17. カスタムレポートでは、以下のような項目を レポート検索条件として設定できます。

Individual ID
Sendtime Email Address
First Name
Last Name
Flow Name
Segment Name
Flow Element Name
例①:Individual ID
特定の Individual を確認する場合は、
Individual ID = XXXXX
とします。
例②:メールアドレス
特定のメールアドレスを確認する場合は、
Sendtime Email Address = example@example.com
とします。
例③:氏名
Individual DMO が存在している場合は、
First Name
Last Name
でも検索できます。
ただし、Individual DMO の現在の状態に依存せず履歴を調査したい場合は、Email Engagement 側に保存されている Individual ID や Sendtime Email Address を利用する方が確実です。
例④:Flow Name
特定の Flow を確認したい場合は、
Flow Name = XXXXX
を指定します。
例⑤:Flow Version
必要であれば、
Flow Version Number = X
も指定できます。
同じ Flow に複数の Version が存在する場合に便利です。
例⑥:Segment Name
特定のセグメントから送信された Email Engagement を確認したい場合は、
Segment Name = XXXXX
とします。
例⑦:Flow Element
特定のメール送信要素を確認したい場合は、
Flow Element Name = XXXXX
を指定します。
設定としては以上です。
レポートはエクスポートもできますので、条件を絞った上でエクスポートして分析したりしてください。

補足:OPEN や CLICK が複数行になる場合
Email Engagement は、受信者単位で常に 1 レコードだけ存在するものではありません。
例えば同じメールを複数回開封すると、
OPEN
OPEN
OPEN
CLICK
のように、同じ Individual ID やメールアドレスについて複数行表示されることがあります。
これは重複データではなく、発生した Email Engagement がそれぞれ保存されているためです。
そのため、このレポートは受信者ごとに 1 行へ集約するレポートというより、実際に発生した Email Engagement を時系列で調査するレポート として利用するのが分かりやすいと思います。
補足:レポートの制限事項
レポートにはいくつかの制限があります。今回の Email Engagement レポートを利用する場合は、特に以下の点に注意してください。
まず、レポートの実行画面に表示できるのは 最大 2,000 行 です。Email Engagement では、送信結果に加えて OPEN や CLICK などのイベントごとにレコードが作成されるため、データ量によっては比較的簡単に 2,000 行を超える可能性があります。
ただし、レポートの集計値や小計は、画面に表示されている 2,000 行だけではなく、レポート対象となる全データを基に計算されます。
より多くの詳細レコードを確認したい場合はレポートをエクスポートできますが、エクスポートにも 最大 50,000 行、ファイルサイズ 100 MB という制限があります。
また、今回利用している Lookup Fields は最大 4 階層まで辿ることができます。
今回の、
Email Engagement
→ Flow Element Run
→ Flow Element
→ Flow Version
→ Flow
はちょうど 4 階層となるため、Flow Name までは取得できますが、そこからさらに別の Lookup Relationship を辿ることはできません。
一方、
Email Engagement → Individual
Email Engagement → Bulk Email Message → Market Segment
は 4 階層以内なので問題ありません。
さらに、Data 360 レポートの実行にはクレジットが消費されます。
Data Services を利用している場合は Data Queries、Flex Credits を利用している場合は Data 360 Queries として計上されます。
このとき基準になるのは、レポート画面に表示された行数ではなく、クエリによって処理されたレコード数です。
そのため、Email Engagement のように大量のレコードが蓄積される DMO を利用する場合は、日付や Flow、Individual ID、メールアドレスなどの検索条件で対象を絞って利用することをおすすめします。
また、画面上では最大 2,000 行しか表示されないため、「2,000 行までしか処理されない」という意味ではない点にも注意してください。
いかがでしたでしょうか。
今回は Email Engagement を主オブジェクトとして、詳細なメールエンゲージメントレポートを作成しました。
これにより、
誰に
どの Flow の
どの Version の
どのメール送信要素から
どの件名のメールが送信され
どの Segment が利用され
OPEN、CLICK、BOUNCE、UNSUBSCRIBE などが発生したのか
を 1 つのレポートから確認できます。
このレポートは実は Query Editor でも実行できます。
SELECT
a.ssot__IndividualId__c AS Id,
a.ssot__SendtimeEmailAddress__c AS Email,
i.ssot__FirstName__c AS FirstName,
i.ssot__LastName__c AS LastName,
a.ssot__EngagementDateTm__c + interval '9 hour' AS EngagementDateTime,
a.ssot__EngagementChannelActionId__c AS ActionName,
a.ssot__EmailRecipientSendStatus__c AS SendStatus,
c.ssot__Name__c AS EmailElementAPIName,
e.ssot__Name__c AS FlowName,
d.ssot__VersionNumber__c AS VersionNumber,
h.ssot__Name__c AS SegmentName,
a.ssot__EngagementActionReasonText__c AS ActionReason,
a.ssot__EmailBounceType__c AS BounceType,
a.ssot__BounceReasonText__c AS BounceReason,
a.ssot__UnsubscribeSourceText__c AS UnsubscribeSource,
a.ssot__ResolvedURL__c AS LinkURL,
g.ssot__Subject__c AS EmailSubject,
g.ssot__FromAddress__c AS FromAddress,
g.ssot__MessagePurpose__c AS MessagePurpose
FROM ssot__EmailEngagement__dlm a
JOIN ssot__FlowElementRun__dlm b ON a.ssot__FlowElementRunId__c = b.ssot__Id__c
JOIN ssot__FlowElement__dlm c ON b.ssot__FlowElementId__c = c.ssot__Id__c
JOIN ssot__FlowVersion__dlm d ON c.ssot__FlowVersionId__c = d.ssot__Id__c
JOIN ssot__Flow__dlm e ON d.ssot__FlowId__c = e.ssot__Id__c
JOIN ssot__BulkEmailMessage__dlm g ON a.ssot__BulkEmailMessageId__c = g.ssot__Id__c
LEFT OUTER JOIN ssot__MarketSegment__dlm h ON g.ssot__MarketSegmentId__c = h.ssot__Id__c
LEFT OUTER JOIN ssot__Individual__dlm i ON a.ssot__IndividualId__c = i.ssot__Id__c
-- WHERE a.ssot__EngagementChannelActionId__c != 'OPEN' /*Action Name Filter*/
-- WHERE a.ssot__IndividualId__c = '***' /*Individual Id Filter*/
-- WHERE a.ssot__SendtimeEmailAddress__c = '***' /*Email Filter*/
-- WHERE i.ssot__FirstName__c = '***' AND i.ssot__LastName__c = '***' /*Name Filter*/
-- WHERE e.ssot__Name__c = '***' /*Flow Name Filter*/
-- WHERE h.ssot__Name__c = '***' /*Segment Name Filter*/
-- WHERE c.ssot__Name__c = '***' /*Email Element API Name Filter*/
ORDER BY a.ssot__EngagementDateTm__c DESC
LIMIT 10またこのようなレポートを Google のスプレッドシートに自動的にエクスポートする方法も紹介しています。
但し、まずは慣れた CRM の標準レポートが良いよ、という方には今回の方法がオススメです。ぜひ真似して作成してみてください。
今回は以上です。
