Skip to content
Last updated

Salesforce Pardot Export Integration

Treasure Dataから直接Salesforce Pardotにジョブ結果(見込み客またはリストメンバーシップの形式)を送信して、CRMデータを同期することができます。

Pardotは、マーケティングチームと営業チームがリードを見つけて育成し、より多くの取引を成約し、ROIを最大化するためのマーケティングオートメーションを提供します。

前提条件

  • Treasure Dataの基本知識
  • Salesforce Pardotモデルの基本知識
  • 稼働しているSalesforce Pardotアカウント
  • ビジネスユニットID

サポート内容

Salesforce Pardotの見込み客またはリストメンバーシップへのデータ送信をサポートしています。

並列見込み客アップサートをサポートしています。並列タスクの数を増やしてジョブの実行を高速化したい場合は、この機能を使用してください。ただし、アカウントの同時呼び出し制限にご注意ください。

要件と制限事項

コネクタを使用するには、適切なSalesforce Pardotプラン(ProまたはUltimate)が必要です。

見込み客については、APIの仕様上、Treasure DataはURIの長さを一定の長さまでしかサポートしていないため、7500文字を超えるデータを含む行(JSONとしてシリアライズ後)は無効なレコードと見なされます。

リストメンバーシップについては、見込み客のオプトアウトはサポートされていません。これは一方向のアクションであり、元に戻すことができないためです。

コネクタは、以下のすべてのPardot APIの制限に準拠しています。

  • 日次Pardot API呼び出し制限と同時Pardot API呼び出し制限は、他のPardot API呼び出しと同様にImport API呼び出しにも適用されます。

エクスポート結果の列名は小文字である必要があり、各データオブジェクトのPardotフィールド名に厳密に従う必要があります(大文字と小文字を区別)。

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

PardotビジネスユニットIDを見つけるには、SalesforceのSetupを使用します。PardotビジネスユニットIDは「0Uv」で始まる18文字です。

Pardot Account Setupの情報にアクセスできない場合は、Salesforce管理者にPardotビジネスユニットIDの提供を依頼してください。https://developer.pardot.com/kb/authentication/

Pardotでの認証には、ビジネスユニットIDの入力が必要です。

  1. Pardotへのログインに使用するのと同じアカウントを使用してSalesforceにログインします。

  2. Setup > Pardot > Pardot Account Setupに移動します。または、Setupから「Quick Find」ボックスに「Pardot Account Setup」と入力します。

  3. 複数のPardotビジネスユニットがある場合があります。PardotビジネスユニットIDは「0Uv」で始まる18文字です。

カスタム接続アプリの定義

Treasure Data内でPardot認証を定義するには、カスタム接続アプリ、適切な認可、およびリフレッシュトークンがすべて必要です。

このHTMLページの末尾にあるカスタム接続アプリの使用の手順を参照してください。

新しい接続の作成

TDコンソールでクエリを実行する前に、データ接続を作成して設定する必要があります。データ接続の一部として、以下の手順に従って統合にアクセスするための認証を提供します。

  1. TDコンソールを開きます。
  2. Integrations Hub > Catalogに移動します。
  3. Salesforce Pardotを検索して選択します。
  4. Create Authenticationを選択し、以下で説明する統合の認証情報を入力します。
  5. Continueを選択し、認証の名前を入力してDoneを選択します。

認証フィールド

フィールド 説明
Pardot HostProductionアカウントを使用している場合はhttps://pi.pardot.comです。Pardot Developer OrgまたはSandboxアカウントの場合はhttps://pi.demo.pardot.comです
Pardot Business IDPardotビジネスユニットID
Connected App
  • (デフォルト)Treasure Data Connected App:OAuth connectionフィールドでOAuthを提供することで、TDアプリにデータのアップロードを認可します
  • Custom Connected App:Client IDClient SecretLogin URLRefresh Tokenを提供することで、独自の接続アプリを使用します
OAuth connectionTreasure Data Connected Appの場合、Click hereを選択し、認可フローに従ってOAuthを提供します。続行するには、Integrations Hub Catalogに移動してSalesforce Pardotを検索する必要がある場合があります。
Client IDCustom Connected Appの場合、こちらを参照して接続アプリを作成し、対応するフィールドにClient IDClient SecretLogin URLRefresh Tokenを入力します
Client Secret接続アプリのクライアントシークレット
Login URLSalesforceインスタンスのログインURL
Refresh tokenカスタムアプリの認可後に取得するリフレッシュトークン

エクスポート用のクエリ結果の設定

TDコンソールは、データをエクスポートする複数の方法をサポートしています。Data Workbenchからデータをエクスポートするには、以下の手順に従ってください。

  1. Data Workbench > Queriesに移動します
  2. New Queryを選択し、クエリを定義します
  3. Export Resultsを選択してデータエクスポートを設定します
  4. 既存のPardot認証を選択するか、上記のセクションに従って新しい認証を作成します
  5. 以下で説明するエクスポートパラメータを設定し、Doneを選択します

設定パラメータ

フィールド説明
Data ObjectsProspects(デフォルト)とList Membershipsの間でターゲットデータオブジェクトを選択します
Data Objects = Prospects
Prospect List OperationデフォルトのアップロードモードはBatch Upsertです
List ID見込み客が追加(または削除)されるリストID。単一のリストIDまたはカンマ区切りのリストID文字列を指定できます
Prospect List Operation指定されたリストIDに見込み客を追加(または削除)するには、AddまたはRemoveを選択します
Data Objects = List Memberships
List Memberships OperationUpsertまたはDeleteを選択します。選択した操作が使用されます

見込み客データオブジェクトの列メタデータ

列名データ型必須?説明備考
idIntegerこの見込み客のPardot ID新しい見込み客を挿入する場合はnullのままにする必要があります
fidStringSalesforce Leadsと同期する場合のCRM FID新しい見込み客を挿入する場合はnullのままにする必要があります
emailString見込み客のメールアドレス新しい見込み客を挿入する場合は常に必須です
campaign_idIntegerこの見込み客に関連付けられたキャンペーンのPardot ID
salutationString見込み客の敬称
first_nameString見込み客の名
last_nameString見込み客の姓
passwordString見込み客のパスワード
companyString見込み客の会社名
prospect_account_idInteger見込み客のアカウントID
websiteString見込み客のウェブサイトURL
job_titleString見込み客の役職
departmentString見込み客の部署
countryString見込み客の国
address_oneString見込み客の住所(1行目)
address_twoString見込み客の住所(2行目)
cityString見込み客の市区町村
stateString見込み客の米国州
territoryString見込み客の地域
zipString見込み客の郵便番号
phoneString見込み客の電話番号
faxString見込み客のFAX番号
sourceString見込み客のソース
annual_revenueString見込み客の年間収益
employeesString見込み客の従業員数
industryString見込み客の業種
years_in_businessString見込み客の創業年数
commentsStringこの見込み客に関するコメント
notesStringこの見込み客に関するメモ
scoreInteger見込み客のスコア
is_do_not_emailBoolean値が1の場合、見込み客はメール送信を希望しません
is_do_not_callBoolean値が1の場合、見込み客は電話連絡を希望しません
is_reviewedBoolean値が1の場合、見込み客はレビュー済みです
is_starredBoolean値が1の場合、見込み客にスターが付いています
is_archivedBoolean値が1の場合、見込み客はアーカイブされています

サンプルクエリ

  • list_xxxに見込み客をアップサート
SELECT
  'xxx' as id
FROM
  prospect_table
-- Or
SELECT
  email
FROM
  prospect_table

リストメンバーシップデータオブジェクトの列メタデータ

列名データ型説明必須?
prospect_idInteger見込み客のID
list_idIntegerリストのID

サンプルクエリ

SELECT
  list_id,
  prospect_id
FROM (VALUES (xxx, yyyy)) AS table1(list_id, prospect_id);

Salesforce Pardotの統合パラメータ

Parameter Values Description
client_idxxxx接続アプリのコンシューマーキー
client_secretxxxx接続アプリのシークレットキー
refresh_tokenxxxx接続アプリを承認後に取得したリフレッシュトークン
login_urlhttps://login.salesforce.com/SalesforceのログインURL
pardot_domainhttps://pi.pardot.comPardotのドメイン
business_unit0Uv4xxxxxビジネスユニットID
data_objectprospectsターゲットデータオブジェクト。prospectsまたはlist_membershipsのいずれかでなければなりません
skip_invalid_recordstrue失敗したレコードをスキップする場合は、この値をtrueに設定します
prospect_operationsyncPardotにprospectデータを送信する操作。syncがサポートされています
prospect_listsxxxxdata_object = prospectsの場合のprospectリストIDのカンマ区切り(文字列)
prospect_list_operationaddprospect_listsが設定されている場合にprospectを追加/削除する操作。data_object = prospectsの場合に適用されます(enum(add, remove)、デフォルト: add
upsert_by_emailfalseメールアドレスをキーとしてprospectをアップサートします
parallel_tasks1Pardotにprospectデータを送信する際に並列実行するタスク数
max_payload5000Pardotにprospectデータを送信する際のペイロードサイズ。これは各Pardotインスタンスごとに異なる最大URI設定を持つため、微調整するためのパラメータです。prospectを送信する際に414 Request-URI Too Longエラーが発生した場合は、この値を下げてください。それ以外の場合は、デフォルト値で十分です。
list_membership_operationupsertPardotにリストメンバーシップデータを送信する操作。upsertまたはdeleteでなければなりません
maximum_retries5リクエストが失敗した場合の最大リトライ回数
initial_retry_wait1最初のリトライ前の初期待機時間(秒)
maximum_retry_wait120リトライの最大待機時間(秒)
maximum_connection_timeout300Pardotへのリクエストの最大接続時間

(オプション) Query Export ジョブをスケジュールする

Scheduled Jobs と Result Export を使用して、指定したターゲット宛先に出力結果を定期的に書き込むことができます。

Treasure Data のスケジューラー機能は、高可用性を実現するために定期的なクエリ実行をサポートしています。

2 つの仕様が競合するスケジュール仕様を提供する場合、より頻繁に実行するよう要求する仕様が優先され、もう一方のスケジュール仕様は無視されます。

例えば、cron スケジュールが '0 0 1 * 1' の場合、「月の日」の仕様と「週の曜日」が矛盾します。前者の仕様は毎月 1 日の午前 0 時 (00:00) に実行することを要求し、後者の仕様は毎週月曜日の午前 0 時 (00:00) に実行することを要求するためです。後者の仕様が優先されます。

TD Console を使用してジョブをスケジュールする

  1. Data Workbench > Queries に移動します

  2. 新しいクエリを作成するか、既存のクエリを選択します。

  3. Schedule の横にある None を選択します。

  4. ドロップダウンで、次のスケジュールオプションのいずれかを選択します:

    ドロップダウン値説明
    Custom cron...Custom cron... の詳細を参照してください。
    @daily (midnight)指定されたタイムゾーンで 1 日 1 回午前 0 時 (00:00 am) に実行します。
    @hourly (:00)毎時 00 分に実行します。
    Noneスケジュールなし。

Custom cron... の詳細

Cron 値説明
0 * * * *1 時間に 1 回実行します。
0 0 * * *1 日 1 回午前 0 時に実行します。
0 0 1 * *毎月 1 日の午前 0 時に 1 回実行します。
""スケジュールされた実行時刻のないジョブを作成します。
 *    *    *    *    *
 -    -    -    -    -
 |    |    |    |    |
 |    |    |    |    +----- day of week (0 - 6) (Sunday=0)
 |    |    |    +---------- month (1 - 12)
 |    |    +--------------- day of month (1 - 31)
 |    +-------------------- hour (0 - 23)
 +------------------------- min (0 - 59)

次の名前付きエントリを使用できます:

  • Day of Week: sun, mon, tue, wed, thu, fri, sat.
  • Month: jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec.

各フィールド間には単一のスペースが必要です。各フィールドの値は、次のもので構成できます:

フィールド値 例の説明
各フィールドに対して上記で表示された制限内の単一の値。
フィールドに基づく制限がないことを示すワイルドカード '*''0 0 1 * *'毎月 1 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
範囲 '2-5' フィールドの許可される値の範囲を示します。'0 0 1-10 * *'毎月 1 日から 10 日までの午前 0 時 (00:00) に実行するようにスケジュールを設定します。
カンマ区切りの値のリスト '2,3,4,5' フィールドの許可される値のリストを示します。0 0 1,11,21 * *'毎月 1 日、11 日、21 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
周期性インジケータ '*/5' フィールドの有効な値の範囲に基づいて、 スケジュールが実行を許可される頻度を表現します。'30 */2 1 * *'毎月 1 日、00:30 から 2 時間ごとに実行するようにスケジュールを設定します。 '0 0 */5 * *' は、毎月 5 日から 5 日ごとに午前 0 時 (00:00) に実行するようにスケジュールを設定します。
'*' ワイルドカードを除く上記の いずれかのカンマ区切りリストもサポートされています '2,*/5,8-10''0 0 5,*/10,25 * *'毎月 5 日、10 日、20 日、25 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
  1. (オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

クエリを実行する

クエリに名前を付けて保存して実行するか、単にクエリを実行します。クエリが正常に完了すると、クエリ結果は指定された宛先に自動的にエクスポートされます。

設定エラーにより継続的に失敗するスケジュールジョブは、複数回通知された後、システム側で無効化される場合があります。

(オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

Audience Studio で Segment をアクティベートする

Audience Studio で activation を作成することで、segment データをターゲットプラットフォームに送信することもできます。

  1. Audience Studio に移動します。
  2. parent segment を選択します。
  3. ターゲット segment を開き、右クリックして、Create Activation を選択します。
  4. Details パネルで、Activation 名を入力し、前述の Configuration Parameters のセクションに従って activation を設定します。
  5. Output Mapping パネルで activation 出力をカスタマイズします。

  • Attribute Columns
    • Export All Columns を選択すると、変更を加えずにすべての列をエクスポートできます。
    • + Add Columns を選択して、エクスポート用の特定の列を追加します。Output Column Name には、Source 列名と同じ名前があらかじめ入力されます。Output Column Name を更新できます。+ Add Columns を選択し続けて、activation 出力用の新しい列を追加します。
  • String Builder
    • + Add string を選択して、エクスポート用の文字列を作成します。次の値から選択します:
      • String: 任意の値を選択します。テキストを使用してカスタム値を作成します。
      • Timestamp: エクスポートの日時。
      • Segment Id: segment ID 番号。
      • Segment Name: segment 名。
      • Audience Id: parent segment 番号。
  1. Schedule を設定します。

  • スケジュールを定義する値を選択し、オプションでメール通知を含めます。
  1. Create を選択します。

batch journey の activation を作成する必要がある場合は、Creating a Batch Journey Activation を参照してください。

その他

  • スケジュールジョブと結果エクスポートを使用して、定期的にターゲット宛先にデータをアップロードできます
  • より高度なデータパイプラインの一部として、この統合をTDワークフローに組み込むことができます

カスタム接続アプリの使用

Pardotアカウントに統合するには、接続アプリが必要です。TDは便利な接続アプリを用意していますが、独自に作成することもできます。Salesforceインスタンスにカスタムドメイン名を使用している場合、またはログインURLがhttps://login.salesforce.comでない場合は、カスタム接続アプリが必要です。

接続アプリの定義

  1. Salesforce Lightning Experienceにログインします。

  2. 歯車アイコンを選択します。

  3. 設定を選択します。

  1. プラットフォームツール > アプリケーションに移動します。

  2. アプリケーションマネージャーを選択します。

  1. 新規接続アプリケーションを選択します。

  1. 基本情報に必要な情報を入力します

  1. OAuth設定の有効化を選択します。

  • コールバックURLに移動し、http://localhost:8080と入力します
  • 選択したOAuthスコープに移動し、Access Pardot services (pardot_api)Perform requests on your behalf at any time (refresh_token, offline_access)を選択します
  • 最後までスクロールし、保存を選択してから続行を選択します
  1. コピーを選択して、コンシューマーキーコンシューマーシークレットをコピーします。これらはそれぞれクライアントIDクライアントシークレットに使用されます。

Salesforce Pardotアカウントにアクセスするためのアプリの承認

  1. Webブラウザを開き、以下を入力します:

https://{YOUR_SALESFORCE_LOGIN_URL}/services/oauth2/authorize?client_id={YOUR_CONSUMER_KEY}&redirect_uri=http://localhost:8080&response_type=code

  • YOUR_SALESFORCE_LOGIN_URL: {SalesforceログインURL - 例:https://login.salesforce.com}
  • YOUR_CONSUMER_KEY: {接続アプリ作成手順で取得したコンシューマーキー}

完全なURLの例:https://login.salesforce.com/services/oauth2/authorize?client_id=xxxxxx&redirect_uri=http://localhost:8080&response_type=code

  1. アカウントにログインし、許可を選択します

  1. 存在しないページにリダイレクトされます。URLを選択し、code=の後のテキストをコピーし、%3Dを**=**に置き換えます

例えば、URL http://localhost:8080/?code=xxxx%3D%3Dの場合、**xxxx==**が次のステップでリフレッシュトークンを取得するためのコードです。

リフレッシュトークンの取得

上記のステップで取得したcodeを使用して、ターミナルでCURLを使用してリフレッシュトークンをリクエストします

curl --request POST \
  'https://{your_salesforce_login_url}/services/oauth2/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=authorization_code' \
  --data-urlencode 'code=your_code' \
  --data-urlencode 'client_id=client_id' \
  --data-urlencode 'client_secret=client_secret' \
  --data-urlencode 'redirect_uri=http://localhost:8080'

リクエストを送信すると、以下のようなレスポンスが返されます

{
  "access_token": "xxxxx",
  "refresh_token": "xxxx",
  "signature": "xxxx",
  "scope": "refresh_token pardot_api",
  "instance_url": "xxxx",
  "id": "xxx",
  "token_type": "Bearer",
  "issued_at": "1616662486135"
}

refresh_tokenの値が、認証画面で使用するリフレッシュトークンです。