【第448回】 Marketing Cloud Next : CRM の変更をトリガーにフローを起動
Marketing Cloud Next Growth & Advanced Edition の Spring ’26 新機能リリースでは、取引先責任者・リード・見込み客のレコード変更、または それらに関連するオブジェクトの更新 をきっかけに、イベントトリガーフローを起動できるようになりました。
これにより、CRM 上のアクションをリアルタイムに検知し、その瞬間にマーケティング施策を実行することが可能になります。
活用イメージ
例えば、以下のようなシナリオが実現できます。
ケースがクローズ ⇒ 取引先責任者へパーソナライズメールを即時送信
商談ステージが更新 ⇒ リードオーナーへフォローアップ通知
特定条件のフィールド変更 ⇒ 自動タスク作成やメッセージ配信
このように、重要なビジネスイベント発生直後に顧客や担当者へアクションを実行 できるため、タイムリーかつ高度にパーソナライズされたコミュニケーションが可能になります。
そこで、今回の記事では、『ケースがクローズ ⇒ 取引先責任者へパーソナライズメールを即時送信する』シナリオ を試したいと思います。
設定手順
① イベントトリガーフローを作成
新規フローで Event-Triggered Flow を選択します。

② トリガータイプを選択
イベントライブラリから「Prospect, Lead, Contact or Related Record Change」 を選択します。

③ 対象オブジェクトを指定
取引先責任者・リード・見込み客、またはそれらに関連するオブジェクトを選択します。今回は「ケース」オブジェクトを選択します。また、それに関連する「Contact ID」も選択します。

④ エントリー条件を設定
今回、エントリー条件として、ケースが「クローズ」になった時にトリガーできるようにします。

Tips:トリガーされたレコードは、フローのリソースで 変数として自動生成 され、後続のアクション内でそのまま参照可能です。「{!$Input.***}」
ここで一旦、メールの設定をするので、フローを「保存」します。

⑤ Apex クラスを設定
続いて、ケースの情報を含むメールの作成を開始したいところですが、残念ながら、現時点では開始イベントのデータをメールのデータソースとして用いることはできませんので、Apex Class Data Provider を利用します。今回は、以下の Apex コードを用意しました。「箱」のようなものです。
public without sharing class CaseMailPayload {
@AuraEnabled public String CaseNumber { get; set; }
@AuraEnabled public String CaseSubject { get; set; }
@AuraEnabled public String LastName { get; set; }
@AuraEnabled public String FirstName { get; set; }
@AuraEnabled public String CompletedDateJp { get; set; }
@AuraEnabled public String CompletedDateSlash { get; set; }
}このコードを Apex クラスに登録します。

Apex クラスの登録方法については、以下の記事を参考にしてください。
⑥ データソースの設定
Apex クラスが登録できたら、新規でメールを開き、データソースの追加をクリックします。

⑦ Apex Class の選択
Apex Class Data Provider を選択して、先ほど設定した Apex クラスを選択します。

⑧ メールの作成
今回は、以下のメールテンプレートを使用します。
件名:
【完了】お問い合わせ対応が完了しました({{CaseNumber}})
本文:
{{LastName}} {{FirstName}} 様
平素よりお世話になっております。
このたびお問い合わせいただきました内容につきまして、
対応が完了いたしましたのでご連絡申し上げます。
━━━━━━━━━━━━━━━━━━━
■ ケース番号:{{CaseNumber}}
■ 件名 :{{CaseSubject}}
■ 完了日時 :{{ClosedDate}}
━━━━━━━━━━━━━━━━━━━
本件につきましてご不明点や追加のご質問等がございましたら、
本メールへご返信いただくか、サポート窓口までお気軽にご連絡ください。
今後ともより良いサポートをご提供できるよう努めて参りますので、
引き続きよろしくお願いいたします。

⑨ プレースホルダ―を Apex Class Data Provider で入れ替え
上記メールテンプレートのプレースホルダ―を Apex Class Data Provider で取得される予定の項目に入れ替えたら、「トランザクションメール」に変更して、「保存」して「公開」します。

⑩ フローで「変数」リソースの作成
メールの公開が完了したら、再度フローを開き直して「Apex-Defined」変数を作成します。
API 名は「varPayload」(任意)とします
データ種別は「Apex-Defined」を選択します
Apex クラスは上で作成したものを選択します
「入力で利用可能」にチェックを入れます

⑪ 数式の作成
次に、以下を「数式」リソースとして作成します。これは、ケースの最終更新日時(=ケースのクローズ日時)を「スラッシュ」で表示するための処理と「日本語」で表示するための処理です。
a. スラッシュ表示(yyyy/MM/dd HH:mm)
API 名:fxCompletedDateTimeSlash(任意)
データタイプ:テキスト
TEXT(YEAR(DATEVALUE({!$Input.LastModifiedDate}))) & "/" &
RIGHT("0" & TEXT(MONTH(DATEVALUE({!$Input.LastModifiedDate}))), 2) & "/" &
RIGHT("0" & TEXT(DAY(DATEVALUE({!$Input.LastModifiedDate}))), 2) & " " &
RIGHT("0" & TEXT(HOUR(TIMEVALUE({!$Input.LastModifiedDate}))), 2) & ":" &
RIGHT("0" & TEXT(MINUTE(TIMEVALUE({!$Input.LastModifiedDate}))), 2)b. 日本語表示(yyyy年MM月dd日 HH:mm)
API 名:fxCompletedDateTimeJp(任意)
データタイプ:テキスト
TEXT(YEAR(DATEVALUE({!$Input.LastModifiedDate} + (9/24)))) & "年" &
RIGHT("0" & TEXT(MONTH(DATEVALUE({!$Input.LastModifiedDate} + (9/24)))), 2) & "月" &
RIGHT("0" & TEXT(DAY(DATEVALUE({!$Input.LastModifiedDate} + (9/24)))), 2) & "日 " &
RIGHT("0" & TEXT(HOUR(TIMEVALUE({!$Input.LastModifiedDate} + (9/24)))), 2) & ":" &
RIGHT("0" & TEXT(MINUTE(TIMEVALUE({!$Input.LastModifiedDate} + (9/24)))), 2)※ 日本語表示の方のみ、UTC ⇒ JST の変換を入れた例になっています。
⑫ 割り当て要素でフローから取得できるデータを格納
続いて、「割り当て」要素を配置して、Apex クラスで設定した各変数に対して、「フローから取得できる情報」+「上の数式」を割り当てます。

※ 前述の通り、「レコードの取得」を設定しなくても、トリガーされたケースレコードの情報を利用できます。
⑬ Marketing Cloud メールを配置
割り当てができたら、後続のパスで「Marketing Cloud メール」を配置して、「保存」して「有効化」します。

⑭ ケースを更新してフローをトリガーする
フローを有効化できたら、ケースのステータスを「Closed」に変更します。すると下記の通り、フローがトリガーされます。

⑮ 受信したメールを確認
同時にメールも受信するので、確認します。パーソナライズも問題なくされていました。成功です。

いかがでしたでしょうか。
これまでのレコードトリガーといえば、
メール エンゲージメント
エンゲージメントシグナル
リアルタイムデータグラフイベント
Journey Builder イベント
などが中心でした。
今回のアップデートにより、「CRM の変更そのもの」を直接トリガーにできるようになった のは非常に大きな進化です。
イメージとしては、Marketing Cloud Engagement の Journey Builder における Salesforce エントリーに近い感覚です。
Marketing Cloud Next は CRM との親和性を前提としたマーケティング基盤なので、この機能との相性は抜群です。ぜひ日々の業務自動化やリアルタイム施策に活用してみてください。
この仕組みを利用した「同意の自動化」については、以下の記事で解説しています。
なお、Summer ’26 の新機能リリースでは、同様のケースにおいて、Apex を利用せず実装可能な「コンテンツ変数」の機能が追加されました。これにより、マーケターの方にとっては、よりシンプルな構成で実装できるようになっています。
詳細については、以下をご参照ください。
今回は以上です。
