# Salesforce Marketing Cloud Exacttarget Export Integration Legacy Beta Treasure Dataは、ユーザーセグメントを[Salesforce Marketing Cloud](https://www.salesforce.com/products/marketing-cloud/overview/)(ExactTarget)に公開し、顧客にパーソナライズされたメールを送信できるようにします。Web、モバイル、CRM、その他のデータソースからのファーストパーティデータを使用して、データドリブンなメールキャンペーンを実行できます。 このサンプルワークフローについては、[Treasure Boxes](https://github.com/treasure-data/treasure-boxes/tree/master/td/salesforce_marketing_cloud_exacttarget)をご覧ください。 Treasure Dataは、ジョブ結果をSalesforce Marketing Cloud(SFMC)に書き込むための2つの方法、SFTPプラグインとSFMCプラグインを提供しています。 このSFMCプラグインは、小規模および中規模のデータセットに使用できます。大規模なデータセットにはSFTPの使用をお勧めします。 ![](/assets/image-20201105-213053.512d355d0d38313bc0f7972e08fd3ccb6ddbca979342d33bd2e9eb2ca238b42b.1eb9641a.png) ## Synchronous または Asynchronous API このデータコネクタは、SFMCにレコードを投入するための2種類のAPI、Synchronous APIとAsynchronous APIをサポートしています。 ベストプラクティスとして、100,000レコード未満の結果セットをSFMCに投入する場合は、Synchronous APIが最適です。ただし、100万以上のデータセットを送信する予定がある場合は、Synchronous APIと比較して高い可用性と信頼性を提供するAsynchronous APIの使用を検討してください。 Asynchronous APIを使用するには、SFMCアカウントがSalesforce Marketing CloudからData Extensions Async REST APIとして有効になっていることを確認する必要があります。[Salesforce Marketing Cloudでサポートケースを作成](https://help.salesforce.com/articleView?id=workcom_contact_support.htm&type=5)して、有効化を依頼することもできます。 ## Data Extension内の既存のオーディエンスデータのReplaceまたはUpsert このデータコネクタは、データエクステンション内の既存データに対して実行する2つのモード、UpsertとReplaceもサポートしています。 ### Upsert Audience Data 最初のモードは**Upsert**で、既存データを更新し、データエクステンションに新しい追加データを挿入します。更新または挿入操作の両方で、データエクステンションのプライマリキーを使用して、レコードが存在するかどうかを判断し、更新または挿入を実行します。ターゲットデータエクステンション内の既存データはすべて保持されます。 ### Replace Audience Data 2番目のモードは**Replace**で、データを更新する前に、ターゲットデータエクステンション内の既存データをすべてクリアします。このモードは、毎回ターゲット顧客にメールを送信するために、データエクステンション内に最新のデータのみが必要な場合に便利です。 このモードを使用すると、削除されたデータは復元できません。コネクタは新しいデータをプッシュする前にすべてのデータをクリアします。つまり、ジョブが成功しても失敗しても、データはクリアされます。ベストプラクティスとして、このモードは一時的なデータで、データ履歴が重要でない場合に使用してください。 このモードを使用するには、アカウントがEnterprise 2.0アカウントである必要があり、インストールされたパッケージに管理者権限が必要です。詳細については、カスタマーサクセス担当者にお問い合わせください。 ## 前提条件 - Treasure Dataの基本知識 - Salesforce Marketing Cloudの基本知識 - TDアカウント このコネクタでは、Data Extensionに各レコードを一意に識別するプライマリキーが必要です。 ## Salesforce Marketing CloudでInstalled Appを作成する Treasure DataはSalesforce Marketing Cloudの複数のバージョンをサポートしています。 **Enhanced Package:** レガシー統合ではなく、[Salesforce Marketing Cloud V2 Export Integration](/ja/int/salesforce-marketing-cloud-v2-export-integration)の使用を強くお勧めします。 ### Legacy Packageを作成する 1. Salesforce Marketing Cloudアカウントにログオンします 2. **Welcome Page**で、右上隅にある自分の名前を選択し、**Setup**を選択します。 ![](/assets/image2021-3-16_11-44-8.f6967ec2c58968597d6b4dbb8704f13c41dd703e2449c361988a56ceadf4d1e7.1eb9641a.png) 3. **App** > **Installed Packages**に移動します。 ![](/assets/image2021-3-16_11-44-46.3c8ccc3d7269eb714c7c82f8dd5a62c4ab2a7fcc0ebe7cc39d9e60922cde1141.1eb9641a.png) 4. **Installed Packages**画面で、**New**を選択します。 ![](/assets/image2021-3-16_11-45-17.75477b4afd4b2c948e3eab2aa93c1ec104fab1a193b99891e11b8fab47333106.1eb9641a.png) 5. New Package Detailsで、**Name**と**Description**を入力します。**Create with enhanced functionality (recommended)**のチェックを外します。 6. **Save**を選択します。 ![](/assets/image2021-3-16_11-45-43.4773b91a84cf8cb16caf0cd6cab48bf073f68612553c57ce7b836fe8d4603f2d.1eb9641a.png) 7. Package Details画面で、**Add Component**を選択します。 ![](/assets/image2021-3-16_11-46-21.74645d076f5445b4602ecd80bc931682f204df93e195e1b4e4ad00ce59c23273.1eb9641a.png) 8. Add Componentで、**API Integration**を選択します。**Next**を選択します。 ![](/assets/image2021-3-16_11-46-50.6d681505050449e2cab3275fd10ea306ffcd274e60a6523bd6466a137693f834.1eb9641a.png) 9. Add API Integration画面で、Contacts > AudiencesとContacts > List and Subscribersまでスクロールします。 10. Replace Audience機能を使用するために、両方の下で**Read**と**Write**を選択します。 11. Data > Data Extensionsまでスクロールダウンします。 12. **Read**と**Write**を選択します。これらの権限は、Salesforce Marketing Cloudにデータを書き込むために必要です。 13. Saveを選択します。 ![](/assets/image2021-3-16_11-47-19.269748fa9a94ab854803834e2662725d9c8b3653029cbc13e4041a2ea9908424.1eb9641a.png) 14. Installed Packages画面で、Componentsパネルまでスクロールダウンします。**Client Id**と**Client Secret**をコピーします。この情報は、Treasure DataからSalesforce Marketing Cloudにデータを書き込むために使用します。 ![](/assets/image2021-3-16_11-47-50.455d844799c26b696b6c7b8ce909a9d0a41b813eff321912b5a88fbdfe9e38b8.1eb9641a.png) ## TD Consoleの使用 TDクエリ結果をSalesforce Marketing Cloud Data Extensionにエクスポートするには、以下の手順を実行します。 ### 新しいData Connectionを作成する データ接続を構成する際、統合にアクセスするための認証を提供します。Treasure Dataでは、認証を構成してから、ソース情報を指定します。 1. TD Consoleを開きます。 2. **Integrations Hub** > **Catalog**に移動します。 3. Salesforce Marketing Cloudを検索して選択します。 ![](/assets/image2021-3-16_11-48-30.6b2a2677c5330821f8deb090d60f2bbae92c8b5199165b2eac21c2ae43956857.1eb9641a.png) 4. 次のダイアログが開きます。Legacy Package Integrationを選択します。 ![](/assets/image2021-3-16_11-48-50.e7c5040ecf8d92a533b85551ce12da325f86914f93dbe5a94a54497fdf032ef1.1eb9641a.png) ### Legacy Package Integrationを作成する 1. **新規認証**ダイアログで、**Legacy Package**を選択し、**Client Id**と**Client Secret**(SFMCでlegacy packageを作成した際に取得したもの)を入力します。**Continue**を選択します。 ![](/assets/image2021-3-16_11-49-43.308b0de6d804d367e81780dcfc3def18d010ba6a31eee858fecb21efa7c8afc2.1eb9641a.png) 2. この連携の**名前**を入力し、**Done**を選択します。 ![](/assets/image2021-3-16_11-50-9.f35887a8645e782f370f17c6bebf521dbd68403386cb2260f783e20d301cded0.1eb9641a.png) ### データ接続でエクスポート結果を設定する このステップでは、クエリを作成または再利用します。クエリ内で、データ接続を設定します。 場合によっては、クエリでカラムマッピングを定義する必要があります。 ### パラメータを指定して接続を設定する 1. TD Consoleを開きます。 2. **Data Workbench** > **Queries** > **New Query**に移動します。 ![](/assets/image2021-3-16_11-50-31.421e5eba50ed5dc5a90060685a5d3c6bdf2d58236b8e6e0df9d5b459c7e50654.1eb9641a.png) 3. クエリエディタでクエリを入力します。 4. クエリエディタの上部にある**Export Results**を選択します。 ![](/assets/image2021-3-16_11-50-51.5b2dc7c1f2cdfed4f02b7433552bc9b872d1d244ec275965d0b624d87f4aa437.1eb9641a.png) Choose Integrationダイアログが開きます。 結果をエクスポートするために使用する接続を選択する際、既存の接続を使用するか、新しい接続を作成するかの2つのオプションがあります。 #### 既存の接続を使用する 1. 検索ボックスに接続名を入力してフィルタリングします。 2. 接続を選択します。 ![](/assets/image2021-3-16_11-51-14.a473df30648fc300743cf1a83201f6331d5e2dca82beaf8e340398c47daf39ee.1eb9641a.png) 3. **Export Results**画面で、**Data Extension Name**を入力します。 4. 次のいずれかを選択します。 1. Asynchronous APIを使用する場合は、**Using Async API**チェックボックスを選択します。Synchronous APIを使用する場合は、チェックボックスを空のままにします。 2. Continue on failure。 ![](/assets/image-20201105-214110.065bd6f2958cd485bdcad38bb6349cb0dc8ef245a6d3ac62e842603e9d3e8a6e.1eb9641a.png) 5. **Done**を選択します。 ### クエリを実行する 1. Runを選択してクエリを実行します。 2. クエリ結果が設定されたdata extensionに書き込まれていることを確認します。 ![](/assets/image2021-3-16_11-53-1.b3d50e192eadb8fb66c83ef0bacdfc4059a556772b81d68a7482de02bdc4000b.1eb9641a.png) ### プラグイン設定とオプション #### 利用可能な設定 | 設定名 | 説明 | 型 | サンプル値 | | --- | --- | --- | --- | | `client_id` | インストールされたパッケージのクライアントキー | string | `Th1s1s4n3x4mpl3Cl13nt1ds` | | `client_secret` | インストールされたパッケージのクライアントシークレット | string | `Th1s1s4F4k3dCl13ntS3cr3t` | | `auth_type` | 認証タイプ | string | `v1`(legacy packageの場合) `v2`(enhanced packageの場合) | | `auth_uri` | 認証URI(auth_type=v2の場合は必須) | string | `https://th1s1sf4k3d1nst4nc3h0st.auth.marketingcloudapis.com/` | | `de_name` | Data Extension名 | string | `data_extension_name` | | `create_new_de` | data extensionが存在しない場合に新規作成するかを示すフラグ | boolean デフォルトはfalse | `true`(DEが存在しない場合は新規作成) `false`(存在しない場合は新規DEを作成しない) | | `is_sendable` | 作成されたDEが送信可能かどうかを示すフラグ | boolean デフォルトはfalse | `true` `false` | | `sendable_rule` | アカウントで設定された送信可能なビジネスルール(is_sendable=trueの場合は必須) | string | `Subscriber Key`(ビジネスルールがSubscriber Keyの場合) `Email Address`(ビジネスルールがEmail Addressの場合) | | `sendable_column` | 送信可能なプロパティとして使用するカラム名(is_sendable=trueの場合は必須) | string | `my_sendable_column` | | `async` | SFMCのasynchronous APIまたはsynchronous APIを使用するかを示すフラグ | boolean デフォルトはfalse | `true`(Async APIを使用) `false`(Synchronous APIを使用) | | `continue_on_failure` | 挿入エラーが発生した場合に実行を継続するかを示すフラグ(synchronous APIにのみ適用) | boolean デフォルトはtrue | `true` `false` | ### 設定例 **Synchronous API**を使用して**Legacy package**でdata extensionをアップサートする設定例。 ```yaml out: type: salesforce_marketing_cloud client_id: Th1s1s4n3x4mpl3Cl13nt1ds client_secret: Th1s1s4F4k3dCl13ntS3cr3t auth_type: v1 de_name: data_extension_name continue_on_failure: false ``` **Asynchronous API**を使用して**Legacy package**でdata extensionをアップサートする設定例。 ```yaml out: type: salesforce_marketing_cloud client_id: Th1s1s4n3x4mpl3Cl13nt1ds client_secret: Th1s1s4F4k3dCl13ntS3cr3t auth_type: v1 de_name: data_extension_name async: true ``` ### **Replaceが選択された場合** 以下の場合: - エクスポート結果にデータエラー(NULL値、誤ったデータ型、無効なプライマリキー)がある場合、Data Extension内のすべてのレコードがクリアされ復元できませんが、無効なデータはエクスポートされません。 - エクスポート結果にスキーマエラー(primary_keyの欠落)がある場合、data extension内の既存のレコードはクリアされません。