# 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の基本知識
- Treasure アカウント


このコネクタでは、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)

## Treasure コンソールの使用

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

### 新しいData Connectionを作成する

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

1. Treasure コンソールを開きます。
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. Treasure コンソールを開きます。
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内の既存のレコードはクリアされません。