
【第211回】 Data Cloud:データアクションを使ってジャーニーを起動する方法
Data Cloud のデータアクションを活用すると、Data Cloud 内のデータの変化をトリガーとして、ほぼリアルタイムで Content Builder 内のメールを送信したり、Journey Builder でジャーニーを起動したりすることができます。
データアクションの活用においては、以下のようなユースケースが例として挙げられます。
■ インストールサポート提供
ある商品を購入した顧客が Web サイトで「インストールマニュアル」を検索した際、その行動をトリガーにして、インストール手順やハウツー動画が記載されたメールを自動送信することが可能です。これにより、顧客が必要とするサポート情報を適切なタイミングで提供することができます。
■ 不正取引の検知
金融機関において、Data Cloud の取引ストリーミングを活用して、不正取引が検出された場合に、リアルタイムで顧客に対してメールや SMS での通知をすることができます。
■ ケースのフォローアップ
顧客からの問い合わせに新たなケースが発生したり、ステータスが変わった場合に、その進捗や次のステップを顧客に通知することで、フォローアップを自動化することができます。
Salesforce CRM と Journey Builder の組み合わせだけでも、似たような対応は可能ですが、特に金融機関における不正取引検知のようなシナリオでは、Data Cloud にストリーミングされる膨大なトランザクションデータからインサイトを得て、即座に通知を出すことができる点などが魅力となります。
データアクション対象の種類
Marketing Cloud との連携におけるデータアクション対象には、以下の 2 種類があります。
メールトリガー:Marketing Cloud のトランザクショナル API を利用し、顧客の行動に応じてメールをリアルタイムで送信する
Journey Builder API イベント:顧客の行動に基づいてジャーニーにエントリーさせ、メール、SMS、LINE など、顧客にとって適切なチャネルで顧客対応を行う
データアクションをトリガーするデータの種類
データアクションは、以下のイベントをきっかけにトリガーされます。
データモデルオブジェクト(DMO):データモデルオブジェクト内のレコード追加、更新、削除が発生した場合
ストリーミングイベント:Web SDK、Mobile SDK、API、またはMarketing Cloud Personalization からのデータ流入時
計算済みインサイト:Data Cloud にストリーミングされるデータに基づいて生成された計算済みインサイト
データアクションの前提条件
データアクションの制限
今回は、計算済みインサイトをトリガーとして、Journey Builder API イベントの実装に挑戦します。あくまでデモ環境での試行になりますが、実際の流れを体感していただける内容です。
■ 計算済みインサイトの作成
それでは、今回は 私の Data Cloud のデモ環境に Salesforce CRM の商談オブジェクトが連携してあるので、ある取引先責任者の「金額」の合計が一定額を超えたら、ジャーニーを起動して LINE を送信するという簡易なシナリオを作成したいと思います。
まず、以下の通り、計算済みインサイトを作成しました。

SELECT Opportunity_00D5Y000002TccE__dlm.ContactId__c AS ContactId__c,
SUM(Opportunity_00D5Y000002TccE__dlm.Amount__c) AS TotalAmount__c
FROM Opportunity_00D5Y000002TccE__dlm
GROUP BY Opportunity_00D5Y000002TccE__dlm.ContactId__c
計算済みインサイトの項目を決定する際、AS を用いてエイリアスを設けると思うのですが、ここは API 参照名になるので「__c」を付ける必要があります。付けないとエラーが発生しますので、お忘れなく。
まず、この計算済みインサイトを作成したのには訳があって、ここで作った購読者キーとなる「ContactId__c」が、Marketing Cloud 側のデータエクステンションの項目を作成する際に必要になるので、先にその設定しました。
しかも、そのデータエクステンション作成時の項目の名前の書き方が少し特殊なので注意して下さい。以下のような命名形式となります。
Opportunity_Total_Amount__cio_ContactId__c
これは、計算済みインサイトの API 参照名と項目名をハイフンで繋いだものになっています。API 参照名は「詳細」内に記載があります。

それでは、Journey Builder 側の設定を行いましょう。
■ ジャーニーの設定
今回のジャーニーは、以下のように、エントリーソースに API Event がセットされたものになります。

ここで API Event の設定時に使用する データエクステンションを作成しましょう。前述の通りですが、項目名の書き方に注意して下さい。Data Cloud 側とは、この項目名を使用してマッピングすることになります。今回、以下の 3 つを設定しておきます。
・Opportunity_Total_Amount__cio_ContactId__c(テキスト型)
・Opportunity_Total_Amount__cio_TotalAmount__c(数字型)
・EventDate(日付型、デフォルトで Current Date が入るように)
※ すべての項目を NULL 値許可で作成してください
※ 送信可能で作成してください

今回のジャーニーは LINE 配信なので特に問題になりませんが、メールアクティビティを使用する場合は、事前に現在のメールアドレスを「すべての購読者」に登録しておき、デフォルトのメールアドレスの設定を「連絡先データを使用する」に設定してください。
また、データエクステンションで作成し、Data Cloud から連携した項目は、配信メッセージでパーソナライズ文字列として使用することができます。
例:
%%Opportunity_Total_Amount__cio_TotalAmount__c%%
このデータエクステンションを API Event エントリーソースで設定したら、LINE アクティビティも設定します。複数回ジャーニーにエントリーさせる場合は、エントリー条件を「いつでも再エントリ」にしておきます。設定を保存して、ジャーニーをアクティブ化します。

■ データアクション対象の設定
続いて、Data Cloud 側の設定です。まずは、データアクション対象 の設定を行います。新規で作成してください。
マニュアル(手動)での作成を選択すると、以下のような分岐点があります。今回は、こちらで Journey Builder API イベント を選択します。

選択すると、Journey Builder でアクティブ化されている API イベントの一覧が表示されますので、先ほどアクティブ化した DataAction というイベントを選択して、「保存して公開」ボタンをクリックします。

これでデータアクション対象が作成されました。このデータアクションの作成できる数には限りがあります。API イベントごとに作成されるものであることに注意してください。

■ データアクションの作成
続いて、今回の肝となるデータアクションの作成です。
こちらも新規作成をクリックして、マニュアル(手動)作成を選択してください。すると以下のように、先ほど作成したデータアクション対象が読み出されますので選択して、次へをクリックします。

続いて、オブジェクト種別で、計算済みインサイトを選択します。

主オブジェクトで、作成した計算済みインサイトを選択したら、購読者キーを選択します。購読者キーが取得できないような計算済みインサイトの場合は、実行に失敗します。

今回は計算済みインサイトを選択したので表示されませんでしたが、データモデルオブジェクトを選択した場合は、主オブジェクトに関連するオブジェクト(DMO or データグラフ)を オプションで選択 することができるようになります。この機能を使用すると、データアクションのルールを設定するときに関連オブジェクトの属性を使用したり、Journey Builder 側に送信されるデータを強化できます。
関連オブジェクトで DMO を選択した場合は、最大 10 個まで追加属性が選択可能 です。これらの追加属性を Journey Builder で使用したい場合は、上で説明した形式に従ってデータエクステンションにそれらの項目名を含めて下さい。
データグラフを選択すると、個人属性は選択できません。代わりに、ペイロード全体がデータアクションターゲットに送信されます。
★ 参照: データアクションペイロードを保存するためのデータエクステンションの設定
データモデルオブジェクトを主オブジェクトとして選択する場合、そのデータモデルオブジェクトが、Amazon Redshift、Google BigQuery、Snowflake などの外部データレイクオブジェクトにマッピングされている場合、主オブジェクトとしては選択できません。
最後に、一番重要な「どの条件になったらトリガーするか」のルールの設定を行います。今回は、ある取引先責任者の「金額」の合計が一定額を超えたら、ジャーニーを起動して LINE を送信するというシナリオですので、1,000万円以上という金額を設定しました。次へをクリックします。

・「更新済みレコードのデータアクションをトリガー」のオプションは、「レコードが更新されました」のイベントルールを選択した場合にのみ使用できます。
・ いずれかのアクションルール条件で変更演算子(「増加した」や「変更済み」など)を使用している場合、「更新されたレコードのデータアクションをトリガー」設定は変更できなくなります。この設定を変更するには、条件からすべての変更演算子を削除してください。
アクション定義名を決めたら、「保存して公開」ボタンをクリックしてください。

これでデータアクションの設定が完了しました。この設定に関しては、編集ボタンをクリックすることでいつでも変更可能です。

■ 最後にテストしてみる
それでは、すべての設定が完了しましたのでテストしてみます。現状、私が管理している取引先責任者で、商談金額の合計が 620 万円の取引先責任者がいますので、400 万円の商談を追加してみたいと思います。

以下の通り、商談を作成し、保存しました。

さて、ここまで来たら、ジャーニーにエントリーするのを待つだけです。
先ほどの商談データがデータストリームに連携され、計算済みインサイトで計算がされるのを経て、ジャーニーにエントリーされる予定ですので、アカウントによっては、少し時間がかかるかもしれません。下の Event Results の画面は、更新をかけなくても数字が自動で更新されますので、しばらく開いたまま放置していても良いかもしれません。

ここで少し待つと、計算済みインサイトで計算がされました。

すると、以下の通り、連絡先が連携されて 1 に変更されました。

成功です。以上です。
補足:メールトリガーについて
ちなみに、データアクション対象が「メール」(メールトリガー)の場合でも、設定方法は「Journey Builder API イベント」と基本的には同じです。

但し、いくつか押さえておきたい注意点があります。
【注意点 1】
「すべての購読者」への事前登録が必要であり、使用されるメールアドレスはその「すべての購読者」に登録されているメールアドレスを使って送信されます。このことは以下のヘルプドキュメントに表示されています。
A subscriber key is the unique identifier of a message recipient in Engagement and determines the email address to use for communication. You can’t send a data action event if a subscriber key doesn’t exist in Marketing Cloud.
Subscriber Key は、Engagement でメッセージ受信者を一意に識別するもので、どのメールアドレスに対してコミュニケーションを行うかを決定します。もし Subscriber Key が Marketing Cloud に存在しない場合、データアクションイベントを送信することはできません。
【注意点 2】
トランザクショナル API を使用して送信されますので、すべてトランザクショナル送信となります。よって、Marketing Cloud 側の購読者ステータスが「購読取り消し済み」であっても送信されます。
【注意点 3】
HTML プリファレンスは、Marketing Cloud 側の設定に従います。つまり、HTML プリファレンスが HTML の場合は HTML メールが送信され、TEXT の場合は プレーンテキストメールが送信されます。
【注意点 4】
Content Builder でメールテンプレートを編集したとしても、データアクション対象を設定した当時のメールテンプレートの内容まま送信され続けます。
If you modify an existing email template and want to send another email, create another data action target with the updated email template.
既存のメールテンプレートを変更して送信したい場合は、更新されたメールテンプレートを使用して、別のデータアクション対象を作成します。
【注意点 5】
HTML 版のメールには、メール最上段に「このメールを Web ページとして表示するには、 こちらをクリックして下さい。」が自動的に入力されます。

【注意点 6】
選択したメールテンプレートで使用できるパーソナライズ文字列は、「すべての購読者」のプロファイル属性で管理されている項目のみです。こちらの項目の値を管理するには、Automation Studio のインポートアクティビティを使ってください。

なお、データアクション対象の保存時に、以下のようなエラーが発生した場合は、選択しているメールテンプレート内で使用されているパーソナライズ文字列が「すべての購読者」のプロファイル属性の項目名と異なっている可能性があります。

これは Marketing Cloud Connect を使って、Sales Cloud や Service Cloud からの Marketing Cloud 送信をする際も、送信前のプレビュー画面でパーソナライズ文字列のチェックが入り、「コールアウト例外: 400 - Bad Request」という内容でエラーが出ていたと思いますが、その Data Cloud 版だと思ってください。瞬時に構文チェックが実行されます。
例えば、プロファイル属性の「苗字」の項目名が「Last Name」であるにも関わらず、コンテンツ内で %%Last Name%% ではなく、%%LastName%% としている(半角スペースがない)などが考えられます。
いかがでしたでしょうか。
このデータアクションにより、Data Cloud と Marketing Cloud の間でデータの変化に応じたシームレスな連携が可能となり、顧客とのインタラクションを最適化しますので、是非活用して行きましょう。
今回は以上です。