# Salesforce SFDC Legacy Import Integration Salesforceとtreasure Dataを接続することで、Salesforceデータをより適切に管理し、マーケティングおよびセールスオペレーションスタック内の他のビジネスアプリケーションとの統合を改善できます。 SalesforceとTreasure Dataを統合することで、次のことが簡単に実現できます: - **Salesforceに新しい機能を追加する。** 例えば、Webの使用状況を追跡し、顧客の製品使用量が減少した際にアラートを受信することで、解約を防止できます。 - **Salesforceデータを使用して、マーケティングスタックの他の部分を改善する。** 例えば、新規顧客をFacebook Custom Audiencesから自動的に削除することで、Facebook AdsのROIを向上させることができます。 Salesforceからデータをインポートするサンプルワークフローについては、[Treasure Boxes](https://github.com/treasure-data/treasure-boxes/tree/master/td_load/sfdc)を参照してください。 まだTreasure Dataアカウントをお持ちでない場合は、お問い合わせいただければセットアップをサポートいたします。 次のトピックに進んでください: ## 制限事項 - **サポートされていないSOQL** (Salesforce Object Query Language) **構文**。制限事項として、当社のデータコネクターは、count() FROM Objectなどのソql構文をサポートしていません。 - **Bulk APIの制限**。Bulk APIは高速な取り込みを提供しますが、24時間以内に10,000バッチの割り当てという制限もあります。ターゲットが大きい場合、利用可能なバッチ割り当て全体が消費され、最終的にジョブが失敗する可能性があります。Bulk APIを使用しようとして、結果としてすべてのレコードが取り込まれる場合は、**synchronous transfer only**オプションを有効にしてREST APIを使用することを検討してください。REST APIを使用すると、バッチ割り当ての制限を回避できますが、速度が遅くなる可能性があります。 - インポートでは**認証にSession IDを使用すること**はサポートされていません。Session IDは、[Salesforce Export Integration](/ja/int/salesforce-export-integration)でのみサポートされています。 - **サポートされていないOAuth**。Salesforce Import Integrationは、非標準のログインURL(https://logins.salesforce.com/以外)のOAuthをサポートしていません。 ## サポート SFDC importは以下の認証タイプをサポートしています: - Credential - OAuth ## TD Consoleを使用してSalesforceに接続する TD Consoleを使用してSalesforceに接続するのは迅速かつ簡単です。または、[コマンドラインを使用してSalesforce接続を作成](/ja/int/salesforce-marketing-cloud-import-integration-cli)することもできます。import integrationはcredentialsをサポートしています。credentialsを使用して認証するには、client IDとclient secretが必要です。 ### SalesforceでTDがSalesforceにアクセスできるようにする 以下の手順は、credentialsを使用して認証するために必要なclient IDとclient secretを見つける方法を示しています。 1. Setup > Apps > App Manageに移動します。 2. **New Connected App**を選択します。 手順は、実行しているSalesforceのバージョンによって異なる場合があります。Spring 19 classic UIの場合: **Setup** > **Build** > **Create** > **Apps** > **Connected Apps** > **New**。 ![](/assets/image-20191016-212112.34bf9a35799ad52037ac9d706273111d492e8423e31d403d5d5042ccf542e4da.e58c3e6b.png) 3. **Setup** > **Build** > **Create (Apps)**に移動し、すべてのconnected appsを検証します: ![](/assets/image-20191016-212122.da1646f28dcdae6835ad39ad7369c17d35de960b60f4e3232f1401a4a0b81371.e58c3e6b.png) 4. アプリ名を選択して、connected appに関するすべての情報を表示および管理できるページに移動します。 5. **Consumer Key** (client_id)と**Consumer Secret** (client_secret)を書き留めるかコピーします。 ![](/assets/image-20191016-212130.7a0ddeaa20b89e503da0fe8b15b78b28a19100f7235986e512811ffff9648fec.e58c3e6b.png) 6. 安全なアカウントアクセスのために、Salesforce Security Tokenを取得します。Security Tokenをお持ちでない場合は、**Account** > **Settings** > **Reset My Security Token**に移動し、**Reset Security Token**を選択します。Security Tokenがメールで送信されます。 Spring 19 classic UIの場合: **My account** > **My Settings** > **Personal** > **Reset My Security Token**。 ### TD Consoleで新しい接続を作成する 1. **TD Console**を開きます。 2. **Integrations Hub** > **Catalog**に移動し、**Salesforce**を検索します。 Credentialsで認証するには 1. credentialsで認証するには、ユーザー名(メールアドレス)とパスワード、Client ID、Client Secret、およびSecurity Tokenを入力します。 2. ダイアログボックスで、login.salesforce.com/?locale=jpを入力するか、login.salesforce.comを使用します。 ![](/assets/image-20200703-001720.af452b1f9ec571b64403178a495107a980e547d907f48f30614cf4b53843e7ed.e58c3e6b.png) OAuthで認証するには ![](/assets/image-20201029-003333.3c371aa8231f40a349fe8bb1f49641b0c7abe05195705af5e11af1a6027b1d1c.e58c3e6b.png) 1. **Continue**を選択します。 2. 接続にわかりやすい名前を付け、**Create Connection**を選択します。 ### Salesforce接続を検証する ユーザー権限を検証するには、Salesforceを使用して以下を確認してください: - Authority: Salesforce import integration接続手順を確認してください。 - Treasure DataからSalesforceへのアクセスが許可されていること: これを構成するには、TD static IPアドレスを知り、構成する必要がある場合があります。static IPアドレス情報が必要な場合は、サポートにお問い合わせください。 適切に構成されたauthorityとaccessがない場合、アクセス制限エラーが発生する可能性があります。例: ``` Response not 2xx: 400 Bad Request {"error":"invalid_grant","error_description":"authentication failure"} ``` ### SalesforceアカウントデータをTreasure Dataに転送する 認証された接続を作成すると、自動的にAuthenticationsに移動します。 1. 作成した接続を検索します。 2. **New Source**を選択します。 3. Data Transfer フィールドに**Source**の名前を入力します。 ![](/assets/image-20200710-205832.2c1ff801d788249554ab89bd4e24919ef34ff56a9aa225d3aff6de57181e008b.e58c3e6b.png) 4. **Next**をクリックします。 5. 以下のパラメータを編集します: ![](/assets/image-20200710-210028.37482785cab2d316edadd716f5eb88ee867bd570ec1f508e025977427fb834c5.e58c3e6b.png) | **Parameters** | **Description** | | --- | --- | | **Source** | インポートするオブジェクトの名前 | | **Include deleted records** | 削除されたレコードを含めることを有効にします | | **Use synchronous transfer only** | REST APIを使用した同期転送を有効にします | | **Incremental** | 前回のインポート以降の新しいデータのみをインポートします | ### **Data Settings** 1. **Next**を選択します。Data Settingsページが開きます。 2. ここで、SOQLクエリ、WHERE条件、およびSchema設定を編集できます。 3. オプションで、ダイアログのこのページをスキップできます。 ![](/assets/image-20200710-211039.6d38d12794407b568ad98bca8ab96943b9c044037c5e15c8dc249c258f62d7c4.e58c3e6b.png) ### Data Preview インポートを実行する前に、Generate Preview を選択してデータの[プレビュー](/products/customer-data-platform/integration-hub/batch/import/previewing-your-source-data)を表示できます。Data preview はオプションであり、選択した場合はダイアログの次のページに安全にスキップできます。 1. **Next** を選択します。Data Preview ページが開きます。 2. データをプレビューする場合は、**Generate Preview** を選択します。 3. データを確認します。 ### Data Placement データの配置について、データを配置したいターゲット database と table を選択し、インポートを実行する頻度を指定します。 1. **Next** を選択します。Storage の下で、インポートされたデータを配置する新しい database を作成するか、既存の database を選択し、新しい table を作成するか、既存の table を選択します。 2. **Database** を選択 > **Select an existing** または **Create New Database** を選択します。 3. オプションで、database 名を入力します。 4. **Table** を選択 > **Select an existing** または **Create New Table** を選択します。 5. オプションで、table 名を入力します。 6. データをインポートする方法を選択します。 - **Append** (デフォルト) - データインポートの結果は table に追加されます。 table が存在しない場合は作成されます。 - **Always Replace** - 既存の table の全体の内容をクエリの結果出力で置き換えます。table が存在しない場合は、新しい table が作成されます。 - **Replace on New Data** - 新しいデータがある場合のみ、既存の table の全体の内容をクエリの結果出力で置き換えます。 7. **Timestamp-based Partition Key** 列を選択します。 デフォルトキーとは異なるパーティションキーシードを設定したい場合は、long または timestamp 列をパーティショニング時刻として指定できます。デフォルトの時刻列として、add_time フィルターで upload_time を使用します。 8. データストレージの **Timezone** を選択します。 9. **Schedule** の下で、このクエリを実行するタイミングと頻度を選択できます。 #### 一度だけ実行 1. **Off** を選択します。 2. **Scheduling Timezone** を選択します。 3. **Create & Run Now** を選択します。 #### 定期的に繰り返す 1. **On** を選択します。 2. **Schedule** を選択します。UI では、*@hourly*、*@daily*、*@monthly*、またはカスタム *cron* の 4 つのオプションが提供されます。 3. **Delay Transfer** を選択して、実行時間の遅延を追加することもできます。 4. **Scheduling Timezone** を選択します。 5. **Create & Run Now** を選択します。 転送が実行された後、**Data Workbench** > **Databases** で転送の結果を確認できます。