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

【第147回】 すべての購読者の値を置換するスクリプトで取得するデータをフィルタリングする方法

    Nobuyuki Watanabe

    前回の記事で、Salesforce Marketing Cloud の「すべての購読者」の値(購読者ステータス、HTML プリファレンス等)を置換するスクリプトを紹介しましたが、データエクステンション内の一部のデータだけを取得して置換するフィルタリングの方法について、ご質問頂きましたので、この記事で記載しておきます。


    まずサンプルとして、以下のようなデータエクステンションを用意します。

    画像

    以下のように、データエクステンションに値が格納されています。

    画像

    今回「HTML」項目の値が「False」の場合のみ「HTML プリファレンス」を「テキスト」に変換してみます。今現在の「HTML プリファレンス」は下記の通り、両方とも「HTML」です。

    画像
    左:AOR501 | 右:AOR502

    そこで「HTML」項目の値が「False」の場合という条件でフィルターを作るには、下記のようにフィルターを設定します。

    {Property:"HTML", SimpleOperator:"equals", Value:"False"}

    こちらを「var data = dataExtension.Rows.Retrieve(); 」のカッコ内に挿入します。スクリプト全体としては、以下のような形になります。

    <script runat="server">
    Platform.Load("core", "1");
    
    // データエクステンションの外部キーを指定
    var dataExtensionExternalKey = "1C99315A-F4A7-4F48-B06D-EAE9BD0A0FDF";
    
    // データエクステンションを初期化
    var dataExtension = DataExtension.Init(dataExtensionExternalKey)
    
    // データエクステンションをフィルタリングして一部のレコードを取得
    var data = dataExtension.Rows.Retrieve({Property:"HTML", SimpleOperator:"equals", Value:"False"});
    
    // レコードをループして購読者のステータスを変更
    for (var i = 0; i < data.length; i++) {
        var subscriberKey = data[i].Subscriberkey; // SubscriberKeyを取得
    
        var subscriber = {
            SubscriberKey: subscriberKey,
            EmailTypePreference: "Text" // HTML プリファレンスを指定(HTML/Text)
        };
    
        // Subscriber オブジェクトを初期化して購読者のステータスを更新
        var subObj = Subscriber.Init(subscriberKey);
        var updateStatus = subObj.Update(subscriber);
    
    }
    </script>

    ちなみに、フィルターで使った SimpleOperators(演算子)には、以下のようなものがあります。参考にして下さい。

    これを Automation Studio のスクリプトアクティビティで構成し、実行することで、「HTML」項目が「False」の場合のみ「HTML プリファレンス」を「テキスト」に変換することができました。

    画像
    画像
    左:AOR501(HTML:True) | 右:AOR502(HTML:False)

    ちなみに、これが単一の条件ではなく「複数の値のいずれか」のような条件を作りたい場合は、SimpleOperatorsで「IN」を使用しますが、その際の Value には「配列」を使う必要があります。

    {Property:"field", SimpleOperator:"IN", Value: ["A","B","C"]}

    今回は以上です。


    Click here for English version

    次の記事はこちら

    前回の記事はこちら

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

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