Salesforce Pardot B2Bは、企業間取引(B2B)の営業とマーケティング自動化に主に焦点を当てた組織向けに設計された、Salesforceのマーケティング自動化ツールです。このメールマーケティングシステムは、B2B営業に関連する長期的な期間と複数ステップの意思決定に対する自動化されたサポートを提供し、マーケティング担当者がより多くのリードを作成し、より多くのパイプラインを生成し、営業がより多くの取引を成約できるよう支援します。
Salesforce Pardotインポート連携は、Pardotからデータを取り込んでTreasure Dataデータベースに格納し、カスタムセグメントをPardotに戻してアクティベートするというエンドツーエンドのソリューションを自動化します。
- Treasure Dataの基本知識
- Salesforce Pardotの基本知識
- 動作しているSalesforce Pardotアカウント
- ビジネスユニットID
- 独自のSalesforce Pardot接続アプリを作成する権限、またはTreasure DataアプリにPardotデータへのアクセスを許可する権限
- タイムスタンプ列のインポートされた値は、Treasure Dataデータベースに文字列型として保存されます。タイムゾーンは利用できません。
- 大量のデータをインポートする場合はExport APIを使用しますが、増分読み込みはサポートされていません。
セキュリティポリシーで IP ホワイトリストが必要な場合は、接続を成功させるために Treasure Data の IP アドレスを許可リストに追加する必要があります。
リージョンごとに整理された静的 IP アドレスの完全なリストは、次のリンクにあります: https://api-docs.treasuredata.com/en/overview/ip-addresses-integrations-result-workers/
Pardotエクスポートドキュメントの手順に従って、ビジネスユニットIDを取得してください。
Salesforce Pardotエクスポートドキュメントの手順に従って、認証を作成してください。
- TD Consoleを開きます。
- Integrations Hub > Authenticationsに移動します。
- 新しい認証を見つけて、New Sourceを選択します。
接続に対して次の表を入力してください。
| Parameter | Description |
|---|---|
| Data Transfer Name | 転送の名前を定義できます。 |
| Authentication | 転送に使用される認証名。 |
- Data Transfer Nameフィールドにソース名を入力します。
- Nextを選択します。
Source Tableタブが選択された状態で、Create Sourceページが表示されます。

| Parameter | Description |
|---|---|
| Data Object | インポートするPardotオブジェクト。サポートされているオブジェクト: - CAMPAIGN - FORM - LIST - LIST_MEMBERSHIP - OPPORTUNITY - PROSPECT - PROSPECT_ACCOUNT - VISITOR - VISITOR_ACTIVITY - CUSTOM_FIELD - CUSTOM_REDIRECT - EMAIL_CLICK - USER - VISIT - TAG - TAG_OBJECT - DYNAMIC_CONTENT |
| Deleted? | 削除されたオブジェクトをリクエストします。Export APIを使用する場合、PROSPECT_UPDATED_ATでフィルタリングすると、削除されたProspectが対象となります。 |
| Use Export API | データをインポートするためにExport APIを使用します。大量のデータをインポートする場合、Export APIはより効率的です。さらに、Export APIはアカウントのAPIレート制限に達することを回避するのに役立ちます。 |
Filter by | CREATED_AT、UPDATE_AT、またはPROSPECT_UPDATED_ATでデータをフィルタリングします。 PROSPECT_UPDATED_ATは、Export APIモードのみでPROSPECT_ACCOUNTおよびVISITORデータオブジェクトでサポートされています。 |
| Visitor IDs | カンマ区切りのVisitor ID(スペースなし)。このフィールドはVisitオブジェクトのみで利用可能です。 |
| Prospect IDs | カンマ区切りのProspect ID(スペースなし)。このフィールドはVISITおよびVISITORオブジェクトのみで利用可能です。 |
| Visit IDs | カンマ区切りのProspect ID(スペースなし)。このフィールドはVisitオブジェクトのみで利用可能です。 |
| Start Time | この開始時刻以降のデータをインポートします。形式は"yyyy-MM-dd HH:mm:ss"に一致する必要があります。指定されていない場合、Export APIモードでは指定されたEnd Timeから1年間のデータがインポートされます。 |
| End Time | この時刻までのデータをインポートします。形式は"yyyy-MM-dd HH:mm:ss"に一致する必要があります。指定されていない場合、Export APIモードでは指定されたStart Timeから1年間のデータがインポートされます。 |
| Incremental Loading | 最後のインポートからの新しいデータのみをインポートします。このオプションはExport APIモードが使用されている場合は利用できません。 |
Nextを選択します。

Data Settingsでは、Salesforce PardotへのHTTPリクエストを微調整できます。設計した構成設定を更新し、Nextを選択します。
| Parameter | Description |
|---|---|
| Extra Columns (Optional) | カンマ区切りの列名リスト。APIレスポンスにデータが含まれている場合、列を文字列として保存します。このフィールドを使用すると、Pardotドキュメントで指定されていないが、リクエスト時にデータが存在する列のデータをインポートできます。 |
| Extra Request Params | Pardotサーバーに送信される追加のリクエストパラメータ。例えば、指定されたLIST ID = 370707412でList Membershipsをインポートする場合は、Name = list_id、Value = 370707412と設定します。注意: この設定はExport APIを使用する場合は利用できません。 |
| Max retry count per API call | API呼び出しあたりの最大再試行回数 |
| Initial retry interval per API call | API呼び出しあたりの初期再試行間隔(秒) |
| Max retry interval per API call | API呼び出しあたりの最大再試行間隔(秒) |
| HTTP Connection Timeout | HTTP接続タイムアウトを秒単位で設定します |
インポートを実行する前に、Generate Preview を選択してデータのプレビューを表示できます。Data preview はオプションであり、選択した場合はダイアログの次のページに安全にスキップできます。
- Next を選択します。Data Preview ページが開きます。
- データをプレビューする場合は、Generate Preview を選択します。
- データを確認します。
データの配置について、データを配置したいターゲット database と table を選択し、インポートを実行する頻度を指定します。
Next を選択します。Storage の下で、インポートされたデータを配置する新しい database を作成するか、既存の database を選択し、新しい table を作成するか、既存の table を選択します。
Database を選択 > Select an existing または Create New Database を選択します。
オプションで、database 名を入力します。
Table を選択 > Select an existing または Create New Table を選択します。
オプションで、table 名を入力します。
データをインポートする方法を選択します。
- Append (デフォルト) - データインポートの結果は table に追加されます。 table が存在しない場合は作成されます。
- Always Replace - 既存の table の全体の内容をクエリの結果出力で置き換えます。table が存在しない場合は、新しい table が作成されます。
- Replace on New Data - 新しいデータがある場合のみ、既存の table の全体の内容をクエリの結果出力で置き換えます。
Timestamp-based Partition Key 列を選択します。 デフォルトキーとは異なるパーティションキーシードを設定したい場合は、long または timestamp 列をパーティショニング時刻として指定できます。デフォルトの時刻列として、add_time フィルターで upload_time を使用します。
データストレージの Timezone を選択します。
Schedule の下で、このクエリを実行するタイミングと頻度を選択できます。
- Off を選択します。
- Scheduling Timezone を選択します。
- Create & Run Now を選択します。
- On を選択します。
- Schedule を選択します。UI では、@hourly、@daily、@monthly、またはカスタム cron の 4 つのオプションが提供されます。
- Delay Transfer を選択して、実行時間の遅延を追加することもできます。
- Scheduling Timezone を選択します。
- Create & Run Now を選択します。
転送が実行された後、Data Workbench > Databases で転送の結果を確認できます。
ワークフローのtd_load>: オペレーターを使用して、Salesforce Pardotからデータをインポートできます。既にSOURCEを作成している場合は実行できます。SOURCEを作成したくない場合は、ymlファイルを使用してインポートできます。
既存のソースを使用してワークフローをセットアップできます。 カスタム接続アプリを作成する権限がない場合は、Treasure Data接続アプリを使用できます。
- ソースを特定します。
- 一意のIDを取得するには、ソースリストを開き、Salesforce Pardotでフィルタリングします。
- メニューを開き、Copy Unique IDを選択します。

- td_load>オペレーターを使用してワークフロータスクを定義します。
+load:
td_load>: unique_id_of_your_source
database: ${td.dest_db}
table: ${td.dest_table}- ワークフローを実行します。
Yaml構成ファイルを使用すると、構成を完全に制御できます。
- Yamlファイルを特定します。Yamlファイルを作成する必要がある場合は、Amazon S3インポート連携 (CLI使用)を参考にしてください。
- td_load>オペレーターを使用してワークフロータスクを定義します。
+load:
td_load>: config/daily_load.yml
database: ${td.dest_db}
table: ${td.dest_table}- ワークフローを実行します。
CLIパラメータリファレンスを参照してください。
サンプルワークフローコードについては、Treasure Boxesを参照してください。
コネクターをセットアップする前に、最新のTD Toolbeltをインストールしてください。
以下は、seed.ymlファイルを準備するためのAWSの例です。コードをお使いの製品に適したコードに置き換えてください。
in:
type: salesforce_pardot
client_id: xxxx
client_secret: yyyy
refresh_token: zzzz
data_object: prospect
business_unit: 0Uv4W00000111111
filter_by: 'created_at'
incremental: true
# use_export_api: true
start_time: "2020-12-13 03:20:00"
end_time: "2021-12-20 03:30:00"
out:
mode: append| Name | Description | Value | Default Value | Required |
|---|---|---|---|---|
| type | コネクタータイプ。 | salesforce_pardot | yes | |
| client_id | 接続アプリのコンシューマーキー。 | yes | ||
| client_secret | 接続アプリのコンシューマーシークレット。 | yes | ||
| refresh_token | カスタム接続アプリの使用で説明されている手順を完了した後のリフレッシュトークン。 | yes | ||
| business_unit | Salesforce PardotビジネスユニットID。PardotビジネスユニットIDの取得を参照してください。 | yes | ||
| data_object | インポートするPardotオブジェクト。サポートされているオブジェクト: - CAMPAIGN - FORM - LIST - LIST_MEMBERSHIP - OPPORTUNITY - PROSPECT - PROSPECT_ACCOUNT - VISITOR - VISITOR_ACTIVITY - CUSTOM_FIELD - CUSTOM_REDIRECT - EMAIL_CLICK - USER - VISIT - TAG - TAG_OBJECT - DYNAMIC_CONTENT | yes | ||
| use_export_api | Export APIを使用してデータをインポートします。大量のデータをインポートする場合、Export APIの方が効率的です。 | false | no | |
| deleted | 削除されたオブジェクトをリクエストします。Export APIを使用する場合、PROSPECT_UPDATED_ATでフィルタリングすると削除されたProspectsが対象になります。 | 指定なし | ||
| filter_by | CREATED_AT、UPDATE_AT、またはPROSPECT_UPDATED_ATでデータをフィルタリングします。注:PROSPECT_UPDATED_ATは、Export APIモードでのPROSPECT_ACCOUNTおよびVISITORデータオブジェクトでのみサポートされています。 | no | ||
| start_time | この時刻以降のデータをインポートします。形式は「yyyy-MM-dd HH:mm:ss」に一致する必要があります。指定されていない場合、Export APIモードでは、指定された終了時刻の1年前からデータがインポートされます。 | no | ||
| end_time | この時刻までのデータをインポートします。形式は「yyyy-MM-dd HH:mm:ss」に一致する必要があります。指定されていない場合、Export APIモードでは、指定された開始時刻から1年間のデータがインポートされます。 | no | ||
| visitor_ids | カンマ区切りのVisitor ID(スペースなし)。このフィールドはVisitオブジェクトでのみ使用できます。 | no | ||
| prospect_ids | カンマ区切りのProspect ID(スペースなし)。このフィールドはVisitオブジェクトでのみ使用できます。 | no | ||
| visit_ids | カンマ区切りのProspect ID(スペースなし)。このフィールドはVisitオブジェクトでのみ使用できます。 | no | ||
| incremental | 最後のインポート以降の新しいデータのみをインポートします。このオプションは、Export APIモードを使用する場合は利用できません。 | false | no | |
| extra_columns | カンマ区切りの列名リスト。APIレスポンスにデータが含まれている場合、その列を文字列として保存します。このフィールドを使用すると、Pardotドキュメントでは指定されていないが、リクエスト時にデータが存在する列をインポートできます。 | |||
| extra_request_params | Pardotサーバーに送信される追加のリクエストパラメータ。例えば、指定されたlist_id = LA00003のList Membershipsをインポートする場合、値を- {"name": "list_id", "value": "LA00003"}のように設定します。注:この設定は、Export APIを使用する場合は利用できません。 | no | ||
| maximum_retries | リクエストが失敗した場合の最大再試行回数。 | 8 | no | |
| initial_retry_wait | 最初の再試行までの初期待機時間(秒単位)。 | 120 | no | |
| maximum_retry_wait | 再試行の最大待機時間(秒単位)。 | 300 | no | |
| connection_timeout | Pardotへのリクエストに対するHTTP接続タイムアウト(秒単位)。 | 300 | no |
データをプレビューするには、td connector:previewコマンドを使用します。
$ td connector:preview load.yml
+-------+---------+----------+---------------------+
| id | company | customer | created_at |
+-------+---------+----------+---------------------+
| 11200 | AA Inc. | David | 2015-03-31 06:12:37 |
| 20313 | BB Imc. | Tom | 2015-04-01 01:00:07 |
| 32132 | CC Inc. | Fernando | 2015-04-01 10:33:41 |
| 40133 | DD Inc. | Cesar | 2015-04-02 05:12:32 |
| 93133 | EE Inc. | Jake | 2015-04-02 14:11:13 |
+-------+---------+----------+---------------------+ロードジョブを投入します。 データのサイズによっては数時間かかる場合があります。データを保存するTreasure Dataのデータベースとテーブルを必ず指定してください。
Treasure Dataのストレージは時間によってパーティション化されているため(データパーティショニングを参照)、--time-columnオプションを指定することを推奨します。このオプションが指定されていない場合、データコネクタは最初のlongまたはtimestamp列をパーティショニング時刻として選択します。--time-columnで指定する列の型は、longまたはtimestamp型のいずれかである必要があります。
データに時刻列がない場合は、add_timeフィルターオプションを使用して時刻列を追加できます。詳細については、add_timeフィルタープラグインを参照してください。
$ td connector:issue load.yml --database td_sample_db --table td_sample_table
--time-column created_atconnector:issueコマンドは、database(td_sample_db)とtable(td_sample_table)がすでに作成されていることを前提としています。データベースまたはテーブルがTDに存在しない場合、このコマンドは失敗します。データベースとテーブルを手動で作成するか、td connector:issueコマンドで--auto-create-tableオプションを使用してデータベースとテーブルを自動作成してください。
$ td connector:issue load.yml --database td_sample_db --table td_sample_table
--time-column created_at --auto-create-tableデータコネクタはサーバー側でレコードをソートしません。時間ベースのパーティショニングを効果的に使用するには、事前にファイル内のレコードをソートしてください。
timeというフィールドがある場合は、--time-columnオプションを指定する必要はありません。
$ td connector:issue load.yml --database td_sample_db --table td_sample_table新しいスケジュールは、td connector:createコマンドを使用して作成できます。
$ td connector:create daily_import "10 0 * * *"
td_sample_db td_sample_table load.ymlTreasure Dataのストレージは時間によってパーティション化されているため(データパーティショニングも参照)、--time-columnオプションを指定することを推奨します。
$ td connector:create daily_import "10 0 * * *"
td_sample_db td_sample_table load.yml
--time-column created_atcronパラメータは、@hourly、@daily、@monthlyの3つの特別なオプションも受け入れます。
デフォルトでは、スケジュールはUTCタイムゾーンで設定されます。-tまたは--timezoneオプションを使用して、タイムゾーンでスケジュールを設定できます。--timezoneオプションは、'Asia/Tokyo'、'America/Los_Angeles'などの拡張タイムゾーン形式のみをサポートしています。
PST、CSTなどのタイムゾーンの略称はサポートされておらず、予期しないスケジュールになる可能性があります。
推奨されているように、Pardotから大規模なデータセットをインポートする場合は、Export APIを使用する必要があります。ただし、Export APIは増分インポートをサポートしていません。この問題を解決するには:
- Export APIを使用して最近の日付までインポートします。例えば、Filter ByとEnd Timeを指定して今日までインポートすると、End Time値までのすべてのデータがインポートされます。
- ジョブ設定を変更し、Use Export APIチェックボックスのチェックを外し、Start Timeを前回の実行のEnd Timeと同じに設定し、Incremental Loadingを有効にします。