Skip to content

Salesforce Marketing Cloud V2 Export Integration

Treasure Dataは、ユーザーセグメントをSalesforce Marketing Cloud (ExactTarget)に公開し、顧客にパーソナライズされたメールを送信できるようにします。Web、モバイル、CRM、およびその他のデータソースからのファーストパーティデータを使用して、データ駆動型のメールキャンペーンを実行できます。

サンプルワークフローについては、Treasure Boxesをご覧ください。

Treasure Dataは、ジョブ結果をSalesforce Marketing Cloud(SFMC)に書き込むための2つの方法、SFTPとSFMCプラグインを提供しています。

このSFMCプラグインは、小規模および中規模のデータセットに使用できます。大規模なデータセットの場合は、SFTPの使用をお勧めします。

同期または非同期API

この統合は、SFMCにレコードを配置するための2種類のAPIをサポートしています: 同期APIと非同期API。

ベストプラクティスとして、100,000レコード未満の結果セットをSFMCに配置しようとしている場合、同期APIが最適です。ただし、100万以上のデータセットを送信する予定がある場合は、同期APIと比較してより高い可用性と信頼性を提供する非同期APIの使用を検討してください。

非同期APIを使用するには、SFMCアカウントがSalesforce Marketing CloudからData Extensions Async REST APIとして有効になっていることを確認してください。また、Salesforce Marketing Cloudでサポートケースを作成して、有効にしてもらうこともできます。

Data Extensionへのデータの書き込み方法の選択

この統合は、Add、Upsert、Replaceの3つのデータ操作をサポートしています。

オーディエンスデータの追加

Addは、主キーがターゲットdata extensionにまだ存在しないレコードのみを挿入します。主キーが既に存在するレコードはスキップされ、更新されることはありません。そのため、既存レコードのフィールド値はそのまま維持されます。data extension内の既存レコードを変更せずに、新規のオーディエンスメンバーのみを取り込みたい場合にAddを使用します。

Addは常に非同期APIを使用します。エクスポートUIでは、Addを選択するとUsing Async APIが自動的に有効になり、設定した値は無視されます。CLIまたはYAMLでエクスポートを設定する場合は、async: trueを明示的に指定してください。指定しない場合、ジョブは設定エラーで失敗します。

ターゲットdata extensionには主キーが必要です。この統合は主キーを使用して、レコードが既に存在するかどうかを判断します。data extensionが複合主キーを持つ場合、すべての主キー列が一致したときにのみ、レコードが既存として扱われます。

オーディエンスデータのアップサート

Upsertは、既存のデータを更新し、data extensionに新しい追加データを挿入します。更新と挿入の両方の操作は、data extension主キーを使用して、レコードが存在したかどうかを判断し、更新または挿入を実行します。ターゲットdata extension内のすべての既存データは保持されます。

オーディエンスデータの置換

Replaceは、データを更新する前に、ターゲットdata extension内のすべての既存データをクリアします。このモードは、毎回ターゲット顧客にメールを送信するために、data extension内の最新のデータのみが必要な場合に便利です。

この統合でreplaceが選択されている場合:

  • エクスポート結果にデータエラー(NULL値、誤ったデータ型、無効な主キー)がある場合、Data Extension内のすべてのレコードがクリアされ、回復できませんが、無効なデータはエクスポートされません。
  • エクスポート結果にスキーマエラー(primary_keyの欠落)がある場合、data extension内の既存のレコードはクリアされません。

replaceを使用すると、削除されたデータは回復できません。コネクタは新しいデータをプッシュする前にすべてのデータをクリアします。したがって、ジョブが成功するか失敗するかに関係なく、データはクリアされます。ベストプラクティスとして、一時的なデータやデータ履歴が重要でない場合にreplaceを使用してください。

replaceを使用するには、アカウントがEnterprise 2.0アカウントであり、インストールされたパッケージに管理者権限が必要です。詳細については、カスタマーサクセス担当者にお問い合わせください。

前提条件

  • Treasure AIの基本知識
  • Salesforce Marketing Cloudの基本知識
  • Treasure アカウント

このコネクタでは、Data Extensionに各レコードを一意に識別する主キーが必要です。さらに、同期APIを使用する場合、Data Extensionには2つ以上のフィールドが必要です。新しいData Extensionを作成するために'Create Data Extension'を指定する場合、列名をカンマ区切りで指定することで、最大4列までの複合主キーを指定できます。

Salesforce Marketing Cloudでインストール済みアプリを作成

Treasure Dataは、Salesforce Marketing CloudでLegacyEnhanced Packageの両方をサポートしています。

Enhanced Packageの作成を強くお勧めします。

Enhanced Functionality Packageの作成

  1. Salesforce Marketing Cloudアカウントにログオンします。
  2. Welcome Pageで、右上隅の名前を選択します。Setupを選択します。

3. 新しい画面の左側メニューで、App > Installed Packagesに移動します。

4. Installed Packages画面で、Newを選択します。

5. NameDescriptionを入力します。 6. Saveを選択します。

7. Add Componentを選択します。 8. API Integrationを選択します。 9. Nextを選択します。

10. Server-to-Serverを選択します。 11. Nextを選択します。

  1. Contacts > AudiencesとContacts > List and Subscribersを見つけます。
  2. Replace Audience機能を使用するには、両方の下でReadWriteを選択します。
  3. Data > Data Extensionsを見つけます。
  4. ReadWriteを選択します。 Salesforce Marketing Cloudにデータを書き込むには、これらの権限が必要です。
  5. Saveを選択します。

  1. Componentsパネルを見つけます。
  2. Client IdClient Secret、およびAuthentication Base URIをメモします。 Treasure DataからSalesforce Marketing Cloudにデータを書き込むために、この情報を使用します。

Treasure コンソールの使用

TDクエリ結果をSalesforce Marketing Cloud Data Extensionにエクスポートするには、次の手順を実行します:

新しいデータ接続を作成

データ接続を設定する際、統合にアクセスするための認証を提供します。Treasure Dataでは、認証を設定してから、ソース情報を指定します。

  1. Treasure コンソールを開きます。
  2. Integrations Hub > Catalogに移動します。
  3. Salesforce Marketing Cloud Version 2を検索して選択します。

4. Enhanced Package Integrationを選択します。

  1. Enhanced Functionality Packageを選択し、Client IdClient Secret、およびAuthentication Base URI(SFMCでenhanced packageを作成した際に取得したもの)を入力します。オプションで、以下を指定できます:
  • 複数のBUにアクセスするためのAccount identifier or MID
  • トークンのスコープを制限するためのScope(詳細はAPI scopesを参照)
  1. Continueを選択します。

接続に名前を付ける

  1. 接続の名前を入力します。
  2. Doneを選択します。

Export Resultsの設定

この手順では、クエリを作成または再利用します。クエリで、データ接続を設定します。

場合によっては、クエリで列マッピングを定義する必要があります。

  1. Treasure コンソールを開きます。
  2. Data Workbench > Queries > New Queryに移動します。

  1. クエリエディタでクエリを入力します。例えば:
SELECT
 name as customer_name,
 email as primary_key
FROM
 data_extension
limit 10

主キーはテキストフィールドにすることができます。

  1. クエリエディタの上部にあるExport Resultsを選択します。

  1. 既存の接続を選択します。
  2. Data Extension Nameを指定します。オプションで、Data Extensionが存在しない場合は、Create Data Extensionを選択して、まったく新しいdata extensionを作成します。

  1. Folder Pathを指定します。オプションで、Folder Path内のいずれかのフォルダが存在しない場合は、Create New Folder if not Existsを選択してフォルダを作成します。

  1. 既存のData Extension Nameを使用していて、非同期APIを使用する場合は、Using Async APIを選択します。同期APIを使用する場合は、ボックスをオフのままにします。後述のData OperationAddを選択した場合は、常に非同期APIが使用され、この設定は無視されます。
  2. 新しいdata extensionを作成する場合は、Create Data Extensionを選択します。新しく作成されたdata extensionで、Data Extension Nameを入力し、新しいdata extensionのPrimary Columnに名前を付けます。

  1. LongTextは、Primary Columnでサポートされている2つのデータ型です。列名をカンマ区切りで最大4つまで入力することで(例: customer_id,region_code)、複合主キーを指定できます。Text列がPrimary Columnの場合、Text length for Primary Keyを指定して、未使用のスペースを不必要に割り当てないことで、data extensionのパフォーマンスを最適化できます。この長さは、Data Type Mappingに独自のエントリを持たないすべてのtextのPrimary Columnに適用されます。
  2. 新しいData Extensionを作成する際に各列のデータ型を定義するには、Data Type Mappingを使用します。
  3. data extensionが送信可能な場合は、Is Sendableオプションを選択します。
  4. Subscriber KeyまたはEmail AddressSendable Ruleを設定します。
  5. data extensionの送信可能なプロパティとしてSendable Columnを選択します。

  1. オプションで、新しいdata extensionを作成する場合は、行ベースのデータリテンションを設定します:
    • Enable Row-Based Retention を選択すると、各行が独自の保持期間を個別に追跡します。選択すると Retention Period (Days) フィールドが表示されます。
    • Retention Period (Days) に各行を保持する日数を設定します(例: 30)。
  • Enable Row-Based Retention を選択すると、各行が独自の保持期間を個別に追跡します。選択すると Retention Period (Days) フィールドが表示されます。
  • Retention Period (Days) に各行を保持する日数を設定します(例: 30)。

  1. data extensionのData Operationを選択します
  • data extensionに主キーがまだ存在しないレコードのみを挿入するにはAdd。既存のレコードはスキップされ、変更されることはありません。常に非同期APIが使用されます。
  • 新しいレコードがある場合は追加し、レコードが重複している場合は更新するにはUpsert
  • 各新しいエクスポートでレコードを削除して完全に置き換えるにはReplace 置き換えられたデータは回復できません

17. Doneを選択します。

クエリの実行

  1. Runを選択してクエリを実行します。
  2. クエリ結果が設定されたdata extensionに書き込まれていることを確認します。

Salesforce Marketing Cloud V2 Export統合にはタイムゾーン設定がないため、統合はSFMCアカウントのタイムゾーン設定を使用します。

Activate a Segment in Audience Studio

You can also send segment data to the target platform by creating an activation in the Audience Studio.

  1. Navigate to Audience Studio.
  2. Select a parent segment.
  3. Open the target segment, right-mouse click, and then select Create Activation.
  4. In the Details panel, enter an Activation name and configure the activation according to the previous section on Configuration Parameters.
  5. Customize the activation output in the Output Mapping panel.

  • Attribute Columns
    • Select Export All Columns to export all columns without making any changes.
    • Select + Add Columns to add specific columns for the export. The Output Column Name pre-populates with the same Source column name. You can update the Output Column Name. Continue to select + Add Columnsto add new columns for your activation output.
  • String Builder
    • + Add string to create strings for export. Select from the following values:
      • String: Choose any value; use text to create a custom value.
      • Timestamp: The date and time of the export.
      • Segment Id: The segment ID number.
      • Segment Name: The segment name.
      • Audience Id: The parent segment number.
  1. Set a Schedule.

  • Select the values to define your schedule and optionally include email notifications.
  1. Select Create.

If you need to create an activation for a batch journey, review Creating a Batch Journey Activation.

プラグインの設定とオプション

利用可能な設定

Salesforce Marketing Cloud V2エクスポート統合で使用可能な設定オプションを以下の表に示します。

Configuration nameDescription TypeSample value
client_idインストール済みパッケージのクライアントキーstringTh1s1s4n3x4mpl3Cl13nt1ds
client_secretインストール済みパッケージのクライアントシークレットstringTh1s1s4F4k3dCl13ntS3cr3t
auth_type認証タイプstringv1 (legacy packageの場合) v2 (enhanced packageの場合)
auth_uri認証URI (auth_type=v2の場合は必須)stringhttps://th1s1sf4k3d1nst4nc3h0st.auth.marketingcloudapis.com/
folder_pathData Extensionをエクスポートするフォルダパス フォルダパスは以下の要件を満たす必要があります:
  • スラッシュで始まる
  • 最大8レベルのフォルダを持つ
  • 複数の連続したスラッシュがない
  • フォルダパス内のフォルダ名は128文字を超えることはできません
string
/Data Extensions/FolderPath2/FolderPath3/FolderPath3
create_folder_if_not_existsfolder_pathに新しいフォルダを作成するかどうかを示すフラグ folder_pathが提供されている(かつ空でない)場合にのみ有効boolean デフォルトはfalsetrue (パスで指定されたすべてのディレクトリが作成されます。既に存在する場合、またはパスの一部が無効な場合を除く) false (存在しない場合、新しいフォルダを作成しない)
de_nameData Extension名stringdata_extension_name
create_new_dedata extensionが存在しない場合に新しいdata extensionを作成するかどうかを示すフラグboolean デフォルトはfalsetrue (DEが存在しない場合は新しいDEを作成) false (DEが存在しない場合は新しいDEを作成しない)
primary_column主列の名前 (create_new_de=trueの場合は必須) 複合主キーを作成するには、列名をカンマ区切りで最大4つまで指定します。stringprimary_key (単一主キーの場合)
customer_id,region_code (複合主キーの場合)
primary_text_lengthcolumn_optionsに独自のエントリを持たないすべてのtext型の主キー列に適用されるデフォルトの長さ。主キー列に対するcolumn_optionsのエントリは、この値よりも優先されます。これにより、主キーごとに異なる長さを設定できます。integermax: 4000, min: 10 (デフォルト: 4000)
column_optionscreate_new_de=trueの場合にのみ適用されます。 新しいData Extensionの各列のデータ型を指定します。 サポートされているデータ型: TEXT, NUMBER, DATE, BOOLEAN, EMAILADDRESS, PHONE, DECIMAL, LOCALE, BASE16ENCRYPTED, BASE16ENCRYPTEDEMAILstringcol1:TEXT(100);col2:NUMBER;col3:DECIMAL(18,2);col4:DATE
is_sendable作成されたDEが送信可能かどうかを示すフラグboolean デフォルトはfalsetrue false
sendable_ruleアカウントで設定された送信可能なビジネスルール (is_sendable=trueの場合は必須)stringSubscriber Key (ビジネスルールがSubscriber Keyの場合) Email Address (ビジネスルールがEmail Addressの場合)
sendable_column送信可能なプロパティとして使用する列名 (is_sendable=trueの場合は必須)stringmy_sendable_column
enable_row_based_retention新しいData Extensionの各行が独自の保持期間を個別に追跡するかどうか。retention_period_daysも設定する必要があります。create_new_de=trueの場合にのみ有効です。boolean
デフォルトはfalse
true
false
retention_period_days新しいData Extension内の行を保持する日数。create_new_de=trueの場合にのみ有効です。enable_row_based_retention=trueの場合は必須。それ以外の場合は任意(設定しない場合、保持ポリシーは適用されません)。integer
デフォルトはnull
30
data_operationdata extensionへのレコードの書き込み方法。addは主キーがまだ存在しないレコードのみを挿入し、それ以外はスキップします (async = true が必要)。upsertは新しいレコードを挿入し、既存のレコードを更新します。replaceは挿入前にdata extensionをクリアし、クリアされたデータは回復できませんstring デフォルトはupsertupsert, add, replace
asyncSFMCから非同期または同期APIを使用するかを示すフラグboolean デフォルトはfalsetrue (非同期APIを使用) false (同期APIを使用)

continue_on_failure

挿入エラーがある場合に実行を続けるかどうかを示すフラグ (同期APIにのみ適用) (ジョブはSFMCサーバー側エラーが発生した場合にのみ続行されます。Treasure Data側でエラーが発生した場合(誤った認証情報、レコードの無効な形式など)、ジョブはエラーで失敗します)

falseに設定されている場合、Salesforce Marketing Cloud側のAPI動作により、エクスポートは部分的にレコードを正常に送信できる可能性があります。

コネクタが101レコードをエクスポートすると仮定すると => これは3つのバッチ(50, 50, 1)に分割されます:

  • 最初のバッチが失敗した場合 => 101レコードすべてが更新されません
  • 2番目のバッチが失敗した場合 => 50レコードが更新され、51レコードが更新されません
  • 3番目のバッチが失敗した場合 => 100レコードが更新され、1レコードが更新されません

boolean デフォルトはtrue

true false

records_per_batch1回のAPI呼び出しで送信されるレコード数。 (このオプションは非同期APIにのみ適用されます。)integermax: 32000 (デフォルト), min: 100

設定例

Enhanced packageを使用してdata extensionをupsertするために同期APIを使用する設定例。

out:
 type: salesforce_marketing_cloud_v2
 client_id: Th1s1s4n3x4mpl3Cl13nt1ds
 client_secret: Th1s1s4F4k3dCl13ntS3cr3t
 auth_type: v2
 auth_uri: https://th1s1sf4k3d1nst4nc3h0st.auth.marketingcloudapis.com/
 de_name: data_extension_name
 continue_on_failure: false

Enhanced packageを使用してdata extensionをupsertするために非同期APIを使用する設定例。

out:
 type: salesforce_marketing_cloud_v2
 client_id: Th1s1s4n3x4mpl3Cl13nt1ds
 client_secret: Th1s1s4F4k3dCl13ntS3cr3t
 auth_type: v2
 auth_uri: https://th1s1sf4k3d1nst4nc3h0st.auth.marketingcloudapis.com/
 de_name: data_extension_name
 async: true

Enhanced packageを使用してdata extensionをupsertし、存在しない場合は新しいSendable data Extensionを作成するために非同期APIを使用する設定例。

out:
 type: salesforce_marketing_cloud_v2
 client_id: Th1s1s4n3x4mpl3Cl13nt1ds
 client_secret: Th1s1s4F4k3dCl13ntS3cr3t
 auth_type: v2
 auth_uri: https://th1s1sf4k3d1nst4nc3h0st.auth.marketingcloudapis.com/
 de_name: data_extension_name
 create_new_de: true
 primary_column: primary_key
 primary_text_length: 32
 column_options: col1:TEXT(100);col2:NUMBER;col3:DECIMAL(18,2);col4:DATE
 is_sendable: true
 sendable_column: mytext
 sendable_rule: Subscriber Key
 async: true
 records_per_batch: 32000

行ベースのリテンションを設定して新しいData Extensionを作成する設定例。

out:
 type: salesforce_marketing_cloud_v2
 client_id: Th1s1s4n3x4mpl3Cl13nt1ds
 client_secret: Th1s1s4F4k3dCl13ntS3cr3t
 auth_type: v2
 auth_uri: https://th1s1sf4k3d1nst4nc3h0st.auth.marketingcloudapis.com/
 de_name: data_extension_name
 create_new_de: true
 primary_column: primary_key
 retention_period_days: 30
 enable_row_based_retention: true

特定のフォルダにdata extensionをエクスポートするための設定例

out:
 type: salesforce_marketing_cloud_v2
 client_id: xxxxxxxxxxxxxxxxxxxxxxxxx
 client_secret: xxxxxxxxxxxxxxxxxxxxxxxxx
 auth_type: v2
 auth_uri: https://th1s1sf4k3d1nst4nc3h0st.auth.marketingcloudapis.com/
 folder_path: /Data Extensions/FolderPath2/FolderPath3/FolderPath3
 create_folder_if_not_exists: true
 de_name: data_extension_name
 create_new_de: true
 primary_column: primary_key
 primary_text_length: 32
 column_options: col1:TEXT(100);col2:NUMBER;col3:DECIMAL(18,2);col4:DATE
 is_sendable: true
 sendable_column: mytext
 sendable_rule: Subscriber Key
 async: true
 records_per_batch: 32000

複合主キーを設定して新しいData Extensionを作成する設定例

out:
 type: salesforce_marketing_cloud_v2
 client_id: Th1s1s4n3x4mpl3Cl13nt1ds
 client_secret: Th1s1s4F4k3dCl13ntS3cr3t
 auth_type: v2
 auth_uri: https://th1s1sf4k3d1nst4nc3h0st.auth.marketingcloudapis.com/
 de_name: data_extension_name
 create_new_de: true
 primary_column: customer_id,region_code
 primary_text_length: 500
 column_options: customer_id:TEXT(100)

この例では、customer_idregion_codeの両方が主キーです。customer_idcolumn_optionsにより長さ100になります。region_codeにはcolumn_optionsのエントリがないため、primary_text_length(500)にフォールバックします。

付録

  • コネクタはHTTPS経由でSFMC v2サーバー/インスタンスエンドポイントと通信します。
  • HTTPSおよびSSL/TLS暗号化はSFMC v2サーバーによって強制され、処理前にコネクタによってチェックされます。