NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

MarketoのREST APIを用いたカスタムオブジェクトの一括登録

こんにちは。

クラウド事業部コンサルティング&テクノロジー部の島田です。

今回は、マーケティングオートメーションツール「Marketo」のREST APIの使い方をご紹介します。

 

Marketoとは

 

Marketoは、世界で人気があるマーケティングオートメーション製品です。

Marketoでは、さまざまな操作を自動化したり、システム連携したりするための機能として、

REST APIが提供されています。

REST APIを利用すると、Marketoへのデータ登録やエクスポート等の操作を、

プログラムとして実行することができます。

 

今回は、最近公開された

カスタムオブジェクトをREST APIでMarketoに一括登録する」REST APIの説明を兼ね、

Marketo REST APIの使い方をご紹介します。(カスタムオブジェクトとは?)

 

REST APIを使う手順

 

手順1. REST APIで使用するカスタムサービスを作成する

手順2. APIアクセス用の認証情報を取得する

手順3. カスタムオブジェクト一括登録用のEndpointにリクエストを送信する

手順4. リクエスト結果を取得する

では、それぞれの手順を説明します。

 

手順1. REST APIで使用するカスタムサービスを作成する

 

まず、REST APIを利用するための事前準備として、「カスタムサービス」というものを作成する

必要があります。Marketo社が提供しているMarketoガイドの以下のページの手順をご参照ください。

REST APIで使用するカスタムサービスを作成する

 

手順2.APIアクセス用の認証情報を取得する

 

1.「管理」-「LauchPoint」をクリックします。

2.作成したカスタムサービスが表示されますので、「詳細の表示」をクリックします。

f:id:nextscape_blog:20210910200545p:plain

3.「GET TOKEN」をクリックして、ボックスに表示されたアクセストークンをコピーします。

※本画像では、Client Id、Client Secret、Authorized User、アクセストークンの一部文字列をマスキングしています。

f:id:nextscape_blog:20210910200604p:plain

 

手順3.カスタムオブジェクト一括登録用のEndpointにリクエストを送信する

 

これで、REST APIを呼び出す準備が整いましたので、カスタムオブジェクト一括登録用のEndpoint「Bulk Custom Objects Controller」を呼び出します。Bulk Custom Objects ControllerのEndpointのURLは、以下です。

 

/bulk/v1/customobjects/{apiName}/import.json

 

{apiName}には、「カスタムオブジェクトのAPI名」が入ります。カスタムオブジェクトのAPI名は、以下の手順で確認できます。

 

1.「管理」-「Marketoカスタムオブジェクト」をクリックします。

2.画面右のツリーから、対象のカスタムオブジェクトを選択します。

3.画面中央に、選択したカスタムオブジェクトの情報が表示されます。「API名」項目が、カスタムオブジェクトのAPI名です。

f:id:nextscape_blog:20210910200633p:plain

 

今回は、EndpointをcURLコマンドを使って呼び出します。インポートしたいデータをタブ区切り形式の「customobjectbulkimport.tsv」というファイル名で作成し、そのデータを「salesHistory」というAPI名を持つカスタムオブジェクトにインポートするケースを考えます。その場合、以下のようにcURLコマンドを記述します。

 

■cURLコマンド

curl -i -F format=tsv -F file=@customobjectbulkimport.tsv -F access_token={手順2で取得したアクセストークン} 

https://{契約毎サブドメイン}.mktorest.com/bulk/v1/customobjects/salesHistory/import.json

上記リクエストを実行すると、以下のようなレスポンスが返ってきます。

f:id:nextscape_blog:20210914205154p:plain

Bulk Custom Objects Controllerは、リクエストを非同期で処理するため、この時点では、"status"が"Queued"となっている点にご注意ください。また、"batchId"は、リクエストを管理するIDです。次の手順で、リクエスト結果を取得する際に利用するためメモしておきましょう。

 

手順4. リクエスト結果を取得する

 

手順3のリクエストの結果を確認します。処理結果を確認するためには、以下のEndpointを呼び出します。

 

/bulk/v1/customobjects/{apiName}/import/{id}/status.json

 

"id"には、手順3で返ってきたレスポンスに含まれる「batchId」の値を入れます。

 

■cURLコマンド

curl -i -H "Authorization: Bearer {手順2で取得したアクセストークン}" 

"https://{契約毎サブドメイン}.mktorest.com/bulk/v1/customobjects/salesHistory_c/import/1306/status.json"

上記リクエストを実行すると、以下のようなレスポンスが返ってきます。

f:id:nextscape_blog:20210914205315p:plain

インポートが完了しており、成功している(TSVファイルに記述したレコード数と一致する)ことを確認してください。

以上の手順で、カスタムオブジェクトの一括登録ができます。

 

なお、今回はカスタムオブジェクトの一括登録を例として説明しましたが、他にも様々なREST APIが用意されています。

詳細は、以下のリファレンスを参照ください。

Endpoint Reference - Marketo Developers