Skip to content
Last updated

Salesforce Pardot Import Integration

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を使用しますが、増分読み込みはサポートされていません。

Treasure Data Integration の静的 IP アドレス

セキュリティポリシーで IP ホワイトリストが必要な場合は、接続を成功させるために Treasure Data の IP アドレスを許可リストに追加する必要があります。

リージョンごとに整理された静的 IP アドレスの完全なリストは、次のリンクにあります: https://api-docs.treasuredata.com/en/overview/ip-addresses-integrations-result-workers/

Pardotビジネスユニット IDの取得

Pardotエクスポートドキュメントの手順に従って、ビジネスユニットIDを取得してください。

TD ConsoleによるSalesforce Pardotからのインポート

認証の作成

Salesforce Pardotエクスポートドキュメントの手順に従って、認証を作成してください。

ソースの作成

  1. TD Consoleを開きます。
  2. Integrations Hub > Authenticationsに移動します。
  3. 新しい認証を見つけて、New Sourceを選択します。

接続の作成

接続に対して次の表を入力してください。

ParameterDescription
Data Transfer Name転送の名前を定義できます。
Authentication転送に使用される認証名。
  1. Data Transfer Nameフィールドにソース名を入力します。
  2. 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を選択します。

ParameterDescription
Extra Columns (Optional)カンマ区切りの列名リスト。APIレスポンスにデータが含まれている場合、列を文字列として保存します。このフィールドを使用すると、Pardotドキュメントで指定されていないが、リクエスト時にデータが存在する列のデータをインポートできます。
Extra Request ParamsPardotサーバーに送信される追加のリクエストパラメータ。例えば、指定されたLIST ID = 370707412でList Membershipsをインポートする場合は、Name = list_id、Value = 370707412と設定します。注意: この設定はExport APIを使用する場合は利用できません。
Max retry count per API callAPI呼び出しあたりの最大再試行回数
Initial retry interval per API callAPI呼び出しあたりの初期再試行間隔(秒)
Max retry interval per API callAPI呼び出しあたりの最大再試行間隔(秒)
HTTP Connection TimeoutHTTP接続タイムアウトを秒単位で設定します

Data Preview

インポートを実行する前に、Generate Preview を選択してデータのプレビューを表示できます。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 で転送の結果を確認できます。

ワークフローによるSalesforce Pardotからのインポート

ワークフローのtd_load>: オペレーターを使用して、Salesforce Pardotからデータをインポートできます。既にSOURCEを作成している場合は実行できます。SOURCEを作成したくない場合は、ymlファイルを使用してインポートできます。

ソースの使用

既存のソースを使用してワークフローをセットアップできます。 カスタム接続アプリを作成する権限がない場合は、Treasure Data接続アプリを使用できます。

  1. ソースを特定します。
  2. 一意のIDを取得するには、ソースリストを開き、Salesforce Pardotでフィルタリングします。
  3. メニューを開き、Copy Unique IDを選択します。

  1. td_load>オペレーターを使用してワークフロータスクを定義します。
+load:
  td_load>: unique_id_of_your_source
  database: ${td.dest_db}
  table: ${td.dest_table}
  1. ワークフローを実行します。

Yamlファイルの使用

Yaml構成ファイルを使用すると、構成を完全に制御できます。

  1. Yamlファイルを特定します。Yamlファイルを作成する必要がある場合は、Amazon S3インポート連携 (CLI使用)を参考にしてください。
  2. td_load>オペレーターを使用してワークフロータスクを定義します。
+load:
  td_load>: config/daily_load.yml
  database: ${td.dest_db}
  table: ${td.dest_table}
  1. ワークフローを実行します。

CLIパラメータリファレンスを参照してください。

サンプルワークフローコード

サンプルワークフローコードについては、Treasure Boxesを参照してください。

CLI (Toolbelt)によるSalesforce Pardotからのインポート

コネクターをセットアップする前に、最新のTD Toolbeltをインストールしてください。

構成ファイル(load.yml)の作成

以下は、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_pardotyes
client_id接続アプリのコンシューマーキー。yes
client_secret接続アプリのコンシューマーシークレット。yes
refresh_tokenカスタム接続アプリの使用で説明されている手順を完了した後のリフレッシュトークン。yes
business_unitSalesforce 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_CONTENTyes
use_export_apiExport APIを使用してデータをインポートします。大量のデータをインポートする場合、Export APIの方が効率的です。falseno
deleted削除されたオブジェクトをリクエストします。Export APIを使用する場合、PROSPECT_UPDATED_ATでフィルタリングすると削除されたProspectsが対象になります。指定なし
filter_byCREATED_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モードを使用する場合は利用できません。falseno
extra_columnsカンマ区切りの列名リスト。APIレスポンスにデータが含まれている場合、その列を文字列として保存します。このフィールドを使用すると、Pardotドキュメントでは指定されていないが、リクエスト時にデータが存在する列をインポートできます。
extra_request_paramsPardotサーバーに送信される追加のリクエストパラメータ。例えば、指定されたlist_id = LA00003のList Membershipsをインポートする場合、値を- {"name": "list_id", "value": "LA00003"}のように設定します。注:この設定は、Export APIを使用する場合は利用できません。no
maximum_retriesリクエストが失敗した場合の最大再試行回数。8no
initial_retry_wait最初の再試行までの初期待機時間(秒単位)。120no
maximum_retry_wait再試行の最大待機時間(秒単位)。300no
connection_timeoutPardotへのリクエストに対するHTTP接続タイムアウト(秒単位)。300no

データをプレビューするには、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_at

connector: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.yml

Treasure Dataのストレージは時間によってパーティション化されているため(データパーティショニングも参照)、--time-columnオプションを指定することを推奨します。

$ td connector:create daily_import "10 0 * * *"
    td_sample_db td_sample_table load.yml
    --time-column created_at

cronパラメータは、@hourly@daily@monthlyの3つの特別なオプションも受け入れます。

デフォルトでは、スケジュールはUTCタイムゾーンで設定されます。-tまたは--timezoneオプションを使用して、タイムゾーンでスケジュールを設定できます。--timezoneオプションは、'Asia/Tokyo'、'America/Los_Angeles'などの拡張タイムゾーン形式のみをサポートしています。

PST、CSTなどのタイムゾーンの略称はサポートされておらず、予期しないスケジュールになる可能性があります。

Salesforce Pardotインテグレーションに関するFAQ

大規模なデータセットの増分インポートをスケジュールするにはどうすればよいですか?

推奨されているように、Pardotから大規模なデータセットをインポートする場合は、Export APIを使用する必要があります。ただし、Export APIは増分インポートをサポートしていません。この問題を解決するには:

  • Export APIを使用して最近の日付までインポートします。例えば、Filter ByEnd Timeを指定して今日までインポートすると、End Time値までのすべてのデータがインポートされます。
  • ジョブ設定を変更し、Use Export APIチェックボックスのチェックを外し、Start Timeを前回の実行のEnd Timeと同じに設定し、Incremental Loadingを有効にします。