フォームの全てのIDを取得するcurlコマンド

フォーム内の特定のフォルダ内にあるフォームにアクセスしたい。

これをAccessトークンを使用してcurlコマンドで実装したいのですが

システムを記述すれば取得できます。

下記に、フォームを取得することは出来ません。

curl --request GET --url "

[

https://api.hubapi.com/marketing/v3/forms/"

](https://api.hubapi.com/marketing/v3/forms/)

--header "authorization: Bearer 「Accesstoken」

@A-imai さん

CurlコマンドでAPIを叩いて全HubSpotフォームのIDを取得されたい、ということでしょうか。

@skimura さん> そういったことは可能か、お分かりになりますか?質問の意味を完全に理解していない状態で申し訳ないのですが、もしアドバイスがあればお願いいたします!

*当初Developers Forumにご投稿いただきましたが、Developers Forumは英語のみ対応のため、こちらの日本語版HubSpotコミュニティーに投稿を移動させていただきました。

現在手動で行っている事は、特定のフォルダ内にあるフォームを順次開いて、送信をエクスポート、xlsxでダウンロードしています。これを自動化しようと試みております。

一気にフォルダ内のフォームをダウンロード出来ればベストですが、難しそうなので、一旦リストで抽出して全てのフォームIDを取得してから、フォームIDで1件ずつ取得出来ないかと考えております。

@A-imai

こんにちは、下記の方法はいかがでしょうか。

1. 下記のAPIでフォームの一覧を取得

https://legacydocs.hubspot.com/docs/methods/forms/v2/get_forms

※フォーム数が多い場合はレスポンスのデータ量が多くなるので注意

レスポンスは各フォーム情報の配列なので

各フォーム毎のguidを収集します。

※フォーム情報にはフォルダー情報が無いように思います。

下記のような処理で、特定フォルダーのフォームのみにフィルターするのはいかがでしょうか。

事前にフォルダー内のフォーム名を収集し、

APIで取得したフォーム情報の「フォーム名」をみて一致したフォームのみにフィルター

// レスポンス
[
 {
 "portalId": 62515,
 "guid": "0033cf74de6a48c4ac5d805d72d69822", // ←この値を収集
 "name": "Example Form Name",
 "action": "",
 ...,
 },
 ...
]

2. 下記のAPIで各フォーム毎の送信情報を取得

リクエスト:[1. ]で取得したフォームのguid

※おそらくですがエクスポート時の一部プロパティは

下記のように対応しているのではないでしょうか(未検証)

(エクスポート時のプロパティ:APIレスポンス)

Conversion Date:submittedAt

Conversion Page:pageUrl

// レスポンス
{
 "results": [
 {
 "submittedAt": 1547130102576, // ←[Conversion Date]に対応してそうです。
 "values": [
 {
 "name": "email",
 "value": "example@example.com"
 },
 {
 "name": "company",
 "value": "Example Co"
 },
 {
 "name": "phone",
 "value": "123 555 4567"
 }
 ],
 "pageUrl": "https://www.example.com/form" // ← [Conversion Page]に対応してそうです。
 },
 ...
}

フォーム毎の情報を収集する処理としては下記の流れかと思います。

上記[1. ]でフォームのguidを収集(必要に応じてフィルター)

フォームの数だけ下記を繰り返す

上記[2. ] でguidをリクエストしてフォーム毎の送信情報

※必要に応じてページング、APIの呼び出し制限を考慮

Option:必要であれば下記の方法でフォームのフィールド名を取得できます。

※上記 [2.] ではフォームの内部値がレスポンスされます。

(例:{‘label’: ‘メールアドレス’, name: ‘email’, …}

各フォーム毎のフィールド情報を下記のAPIで取得します。

https://legacydocs.hubspot.com/docs/methods/forms/v2/get_fields

レスポンスのフィールド情報 [label] からフィールド名を取得できます。

// レスポンス
[
 {
 ...
 'label': 'LastName', // フィールド名
 ...
 'name': 'lastname', // 内部値
 ...
 },
 ...
]

参考になれば幸いです。

@natsumimori

お知らせいただきありがとうございます。

ご連絡ありがとうございます。内容も分かり易く大変助かります。

試してみます。