一括読み込み
一括読み込みは、個人および人物関連の大規模なデータセットを挿入するためのインターフェイスを提供します。 3つのオブジェクトタイプを読み込むことができます。
- リード(ユーザ)
- カスタムオブジェクト
- プログラムメンバー
一括読み込みを実行するには、アップロードしたファイルを読み込むジョブを作成します。 ジョブは非同期で実行されるので、ポーリングしてインポートステータスを取得します。
RFC 2399ごとにHTTP multipart/form-dataを使用してファイルをアップロードします。
他のエンドポイントとは異なり、Bulk API エンドポイントには/restというプレフィックスはありません。
認証
一括読み込み API は、他の Marketo REST API と同じ OAuth 2.0 認証方法を使用します。 Authorization: Bearer {_AccessToken_} HTTP ヘッダーに有効なアクセストークンを送信します。
制限
- 最大同時読み込みジョブ数:2
- 現在インポート中のジョブを含む、キューに入れられた最大インポートジョブ数:10
- 最大インポートファイルサイズ:10 MB
権限
一括読み込みでは、Marketo REST APIと同じ権限モデルを使用します。 追加の権限は必要ありませんが、各エンドポイントのセットには特定の権限が必要です。
レコード操作
一括読み込みは、レコードの「挿入または更新」操作です。 データベースに一致するレコードが含まれている場合、操作はそのレコードを更新します。 それ以外の場合、操作はレコードを作成します。
一括読み込み応答は、個々のレコードが更新または挿入されたかどうかを示すものではありません。
ジョブの作成
リードの読み込み エンドポイントを呼び出して、リード読み込みジョブを作成します。 このエンドポイントは、コンテンツタイプとして multipart/form-data を使用します。
任意の言語のHTTP サポートライブラリを使用して、マルチパートリクエストを作成します。 curlを使用して開始することもできます。
POST /bulk/v1/leads.json?format=csv
Content-Type: multipart/form-data; boundary=--------------------------WebKitFormBoundaryBQACkJZyaiIAXogC
Content-Length: 311
Host: <munchkinId>.mktorest.com
------WebKitFormBoundaryBQACkJZyaiIAXogC
Content-Disposition: form-data; name="file"; filename="leads.csv"
Content-Type: text/csv
firstName,lastName,email
Able,Baker,ablebaker@marketo.com
Charlie,Dog,charliedog@marketo.com
Easy,Fox,easyfox@marketo.com
------WebKitFormBoundaryBQACkJZyaiIAXogC--
このリクエストは、leads.csvという名前のCSV ファイルから値をインポートするジョブを作成します。
{
"requestId": "d01f#15d672f8560",
"result": [
{
"batchId": 3404,
"importId": "3404",
"status": "Queued"
}
],
"success": true
}
応答はbatchIdを返します。 この値を使用して、ジョブのステータスを確認します。
一般的なパラメーター
各ジョブ作成エンドポイントは、インポートファイルを設定するためのパラメーターを共有します。 インポートサブタイプは、追加のパラメーターをサポートすることもできます。
ジョブステータスのポーリング
batchIdを読み込みリードステータスの取得 エンドポイントに渡して、ジョブのステータスを取得します。
GET /bulk/v1/leads/batch/{batchId}.json
{
"requestId": "1f63#15d6738fd15",
"result": [
{
"batchId": 3404,
"importId": "3404",
"status": "Complete",
"numOfLeadsProcessed": 3,
"numOfRowsFailed": 0,
"numOfRowsWithWarning": 0,
"message": "Import succeeded, 3 records imported (3 members)"
}
],
"success": true
}
status メンバーは、ジョブの進行状況を示します。 値はQueued、Importing、CompleteまたはFailedです。
この例では、ジョブが完了したので、ポーリングを停止できます。
失敗
Get Import Lead Status応答のnumOfRowsFailed属性は、失敗した行の数を示します。 0より大きい値は、エラーが発生したことを意味します。
失敗したレコードとその原因を取得するには、読み込み失敗の取得 エンドポイントを使用します。
GET /bulk/v1/leads/batch/{batchId}/failures.json
失敗ファイルは、失敗した各行を識別し、レコードが失敗した理由を説明します。