メインコンテンツへスキップ
見出し画像
Photo byvoice_miwa0401

【第639回】 Marketing Cloud Next : Send Time Attributes の設定方法

    Marketing Cloud Next Growth & Advanced Editions の Winter '27 の新機能リリースでは、メッセージ送信時に任意のデータを記録できる Send Time Attributes という監査用の機能が登場しました。

    画像

    たとえば、キャンペーンメールを送信した後に、「そのお客様に、どのクーポンコードを使用して案内したのか」や「どの契約に関する通知を送信したのか」を確認したい場合があります。

    しかし、顧客データは送信後に更新されることもあるため、現在のデータを参照するだけでは、送信当時の値を正確に確認できないことがあります。

    今回リリースされた「Send Time Attributes」を利用すると、メッセージを送信した時点のデータを取得し、送信履歴とともに保存できます。

    データの保存先は Data 360 の Email Engagement DMO です。

    画像

    ちなみに、Sendtime Email Address(送信時のメールアドレス)だけは、昔から Marketing Cloud Next の標準機能の一部として、Email Engagement DMO に保存されていますので、追加の対応は不要です。

    画像

    この機能、Marketing Cloud Engagement を利用している方であれば、Send Log(送信ログ)に近い考え方の機能 とイメージすると分かりやすいかもしれません。Send Log にも、カスタム属性を追加することができ、送信時の属性を記録できますよね。

    では今回は、この機能の仕組みや設定方法などについて解説します。


    ① Send Time Attributes とは

    Send Time Attributes は、メッセージの送信時に取得した任意のデータを、送信履歴に関連付けて保存する機能です。

    管理者があらかじめ「属性名」と「データ型」を定義し、マーケティング担当者がフローの中で「属性」と「データソースの項目」を関連付けます。

    実際にメッセージが送信されると、送信時の情報として保存されます。

    • 「送信時の値で残る」というのがポイントですね。

    つまり、現在の顧客情報とは別に、そのメッセージを送信した際に、どのようなデータが使用されていたのかを追跡できるということです。


    ② どのような用途で利用するのか

    公式ヘルプでは、次のような活用例が紹介されています。

    • 保険会社:「保険証券番号」を記録し、特定の保険契約に関して送信した通知を確認する

    • 航空会社:「便名」を記録し、搭乗ゲート変更などの通知履歴を確認する

    • 金融・通信会社:「口座番号」や「契約番号」を記録し、重要な通知の送信状況を確認する

    • マーケティング部門:「クーポンコード」を記録し、プロモーションごとの反応を分析する

    送信履歴を顧客単位だけでなく、契約番号・注文番号・クーポンコードなど、業務上の識別子でも確認できるようになるという点が重要です。

    例えば、ひとりのお客様が複数の契約を持っている場合、顧客 ID だけでは、どの契約に関するメッセージなのか判断できないことがあります。

    Send Time Attributes を利用すれば「契約番号」を送信履歴に関連付けられるため、後から契約単位で通知状況を追跡する用途にも活用できます。


    ③ Send Time Attributes を有効化する

    設定 で Unified Messaging > Send Time Attributes を検索し、Enable Send Time Attributes をオンにします。

    画像

    続いて、送信時に記録する属性を作成して保存します。

    • Add Fields をクリックします。

    • 属性の名前(Send Time Attribute Name)を入力します。

    • データ型(Data Type)を選択します。

      • 属性名には空白を使用できず、大文字と小文字が区別されます。

      • 使えるデータ型は「テキスト型」か「数字型」のみです。

    画像

    また、Send Time Attributes は、すべてのチャネル・ビジネスユニットを通じて、アカウント内で最大 50 項目まで定義可能です。

    なお、項目を 1 件ずつ作成するだけでなく、CSV ファイルを使用して複数の属性をまとめてインポートする機能も用意されています。

    • 画面の Import From File から CSV テンプレートをダウンロードし、属性名とデータ型を設定して取り込むことができます。


    ④ フローでデータソースと関連付ける

    Send Time Attributes を作成しただけでは、送信時の値は取得されません。

    実際に値を記録するためには、フローの各メッセージ送信要素で、対象の属性とデータソースを関連付ける必要があります。

    Send Time Attributes は、以下のメッセージ送信要素で利用可能です。

    • Send Email Message

    • Send SMS Message

    • Send WhatsApp Message

    • Send RCS Message

    設定方法

    今回の例はこちらです。

    • 航空会社:「便名」を記録し、搭乗ゲート変更などの通知履歴を確認する

    仮に、下記のように「フライトゲートの変更履歴」を格納しているフライト予約オブジェクトがあったとして、今回は Flight Number(NH456)の顧客に対して連絡をしたとします。この時の情報が記録できるか確認します。

    画像

    Send Time Attributes は、以下の 4 つを作成しました。

    • BookingNumber(テキスト型)

    • FlightNumber(テキスト型)

    • PreviousGate(テキスト型)

    • CurrentGate(テキスト型)

    画像

    このようなユースケースでは、Broadcast Flow が利用されます。Dynamic Segment で、Flight Number Is Equal To {!flightNumber} という変数を使った条件でセグメントを用意します。

    画像

    次に、メールを先に作成しておくと良いです。後ほど Send Time Attributes に格納する内容と同等の内容を、メール本文でフライトの予約者に送信しますので、Content Valiables での差し込みを用意しておきます。

    画像

    メールが準備ができたら、Broadcast Flow の作成を開始します。開始要素における Set Segment Filters では、API から送信される Flight Number を受けられるようにリソースを作成します。

    画像

    この辺りの設定は、Broadcast Flow の標準設定なので、興味がある方は以下の記事を参考にしてください。

    そして、Get Records 要素を使って、先ほどの Flight Booking オブジェクトから、該当のフライト(今回の場合は NH456)を抜き出すための処理を入れています。

    画像

    そして最後のメールメッセージ要素ですが、先ほどの Get Records 要素によりレコードの情報が取れているので、まずそれをメール側に送ります。

    画像

    そして、ここが今回のポイントで、Set Segment Filters の機能を有効化することで STO の下辺りに Send Time Attributes が表示されますのでそちらも Get Records 要素から割り当てます。

    画像

    これで完成です。フローによってメールが送信される際に、対象データソースの値が取得され、送信履歴に記録されます。

    また、同じフロー内でも、異なる Send Time Attributes に対して別々のデータソースを関連付けることが可能です。

    なお、データソースが明示的に関連付けられていない場合でも、Send Time Attribute と同じ名前の項目がデータソースに存在すると、自動的に関連付けが試みられるそうですが、そちらは今回試していません。

    また、この自動照合では、大文字と小文字は区別されないそうです。
    ※ 一致する項目が見つからなければ、その属性は送信時に含まれません。

    上のような機能はありますが、意図しない項目が参照されないように、実運用ではデータソースとの関連付けを、明示的に設定する方が分かりやすいと思います。

    それでは、Boardcast Flow をトリガーします。Body は以下の形です。

    { 
    "inputs" : [ {
       "flightNumber" : "NH456"
       } ] 
    }
    画像

    届いたメールも確認します。

    画像

    ⑤ 記録したデータをレポートで活用する

    Send Time Attributes によって記録された値は、JSON 文字列として柔軟に管理されています。

    データエクスプローラーで、該当の Email Engagement DMO の値を確認すると下記のように入っていました。

    {"BookingNumber":"BK-002","FlightNumber":"NH456","PreviousGate":"C05","CurrentGate":"D08"}
    画像

    JSON という柔軟な管理の一方で、保存した値をレポートで利用する場合には、JSON 形式のデータから必要な属性を取り出し、列形式のデータに変換する処理が必要になります。

    Salesforce 公式ヘルプでは、この方法は Data 360 の Batch Data Transform(バッチデータ変換)を利用することが案内されています。

    設定の Send Time Attributes 画面にある Download Schema から、属性の構造を定義したJSONスキーマファイルをダウンロードできますので、このファイルを Batch Data Transform の Flatten JSON で利用することで、JSON文字列に含まれる属性を個別の項目として抽出できます。

    画像

    なお、Download Schema で取得されるのは、送信履歴そのものではなく、JSONを解析するためのスキーマファイルです。

    {
      "type": "object",
      "properties": {
        "BookingNumber": {
          "type": "string"
        },
        "CurrentGate": {
          "type": "string"
        },
        "FlightNumber": {
          "type": "string"
        },
        "PreviousGate": {
          "type": "string"
        }
      }
    }

    この仕組みを利用すれば、例えば、クーポンコード別の送信結果を集計するなど、業務データと送信実績を組み合わせた分析への活用が考えられます。

    分析方法は、以下の記事で解説しています。


    ⑥ 考慮事項

    Send Time Attributes を利用する際には、いくつか注意点があります。

    • 上限は 50 項目:すべてのチャネルとビジネスユニットの合計で最大 50 項目まで定義できます。

    • 属性名の重複は不可:定義する属性名は一意である必要があり、大文字と小文字が区別されます。

    • 項目名の自動照合:データソースが指定されていない場合、同じ名前の項目を自動検索します。この照合では大文字と小文字が区別されません。

    • 有効化されたフローの設定:フローを有効化した後に Send Time Attribute を削除しても、フローに保存された設定は自動的には削除されません。設定はフローが無効化されるまで保持されます。

    • 過去の送信履歴:Send Time Attribute を削除しても、すでに完了した送信に記録されている属性値は削除されません。

    特に、Send Time Attribute の定義を削除しても、過去の送信履歴に残った値は削除されないという点には注意が必要ですね。

    保存先である Data 360 の Email Engagement DMO の Send Time Attributes 項目の中に残り続けます。過去のエンゲージメントデータは、そもそも更新されるものではないですからね。

    顧客情報や契約番号などを保存する場合は、情報の取り扱いやアクセス権限についても、事前に検討しておく必要があります。

    また、Send Time Attributes は送信時の属性値を記録する機能であり、メール本文そのものを保存する機能ではありません。

    送信時に記録された値の追跡と、実際に送信されたメッセージ内容の確認、配信成功の確認については、それぞれ区別して考える必要があります。


    ⑦ ビジネスユニットごとに属性を割り当てる

    ビジネスユニットを使用している組織では、作成した Send Time Attributes を、特定のビジネスユニットまたは、すべてのビジネスユニットに割り当てることができます。

    すべてのビジネスユニットに割り当てる場合

    1. Setup から Channel Configuration を開きます。

    2. Send Time Attributes Assigned to All Business Units の Assign をクリックします。

    3. 割り当てる属性を選択します。

    4. Next、Done で確定します。

    特定のビジネスユニットに割り当てる場合

    1. Setup から Business Units を開きます。

    2. 対象の Business Unit を選択します。

    3. Send Time Attributes を選択します。

    4. Assign から必要な属性を割り当てます。

    例えば、保険事業では「保険証券番号」、EC 事業では「クーポンコード」を記録するといったように、ビジネスユニットごとに管理する属性を分けることが可能です。


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

    Marketing Cloud Engagement では、Send Log DE を利用して、送信時の任意のデータを記録する仕組みがありました。

    今回の Send Time Attributes は、それに近い考え方の機能であり、標準の送信履歴だけでは把握しきれない業務上の識別情報を、メッセージ送信時のデータとして保持できるようになります。

    一方で、記録した情報をレポートで利用するには、JSON データの変換など、追加の準備が必要です。

    今回は以上です。


    次の記事はこちら

    前回の記事はこちら

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

     
     
    Salesforce Marketing Cloud、Agentforce、Data Cloud、Salesforce 認定資格に関する実践的な情報を発信しています。これらの記事が、皆さまの学習や日々の業務に少しでもお役に立てば幸いです。