TROCCOを使ってHubSpotのフォーム送信履歴を取得する

## はじめに

みなさん、TROCCOは使ったことありますか？TROCCOはさまざまなデータソースとの連携ができるETL/ELTツールで、GUIベースでデータパイプラインを組み立てることができる便利なサービスです。

一方、HubSpotはCRMやMA/SFAの機能が備わったオールインワンプラットフォームです。その中の「フォーム」機能はリード獲得に欠かせませんが、TROCCOの標準コネクタではフォーム送信履歴の取得に対応していない状況です。
そこで、**HTTP/HTTPSコネクタ**を使って、HubSpot APIから直接フォーム送信履歴データを取得する方法をご紹介します。

## できること
今回はテストで作成したフォームの送信履歴をスプレッドシートに取得することを目指します。
フォームの内容はvaluesに格納されるので、TROCCOでパースしてもいいですし、スプレッドシートの関数を用いて展開しても大丈夫です。もっとも件数をカウントするだけならこのままでもOKです。
![できること.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625537/1e246b6c-1db0-da01-d718-d00f23aba2f4.png)

## 前提条件・環境

ざっくりと、以下の準備が整っていればOKです。

- **HubSpot**
  - フォームID
    履歴を取得したいフォームのIDです。パフォーマンス画面などのURLから取得できます。
    ```https://app.hubspot.com/submissions/{HubID}/form/{フォームID}/performance```
  - API Key
    設定＞連携＞非公開アプリ＞非公開アプリを作成で、API Keyを発行できます。
    スコープに```forms```を含めてください。
    ![非公開アプリの作りかた.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625537/11d33806-29a9-de5a-e82b-eb04241a6ed0.png)


- **TROCCO**  
  HTTP/HTTPS連携ジョブを作成可能なAdvanced, Professionalプランの契約が必要です。

- **ドキュメント参照**  
  - [HubSpot API Reference](https://developers.hubspot.com/beta-docs/reference/api/marketing/forms/v1)
  - [TROCCOドキュメント](https://documents.trocco.io/docs/data-source-http)  
  必要に応じて目を通してください。

## HubSpot APIでフォーム送信履歴を取得

HubSpotにはフォームの送信履歴を取得するAPIエンドポイントが用意されています。例えば、以下のような形でフォームID指定で履歴をゲットできます。

**例:**
```
GET https://api.hubapi.com/form-integrations/v1/submissions/forms/583d14ff-91af-403d-b94a-c8b5d954da6f Authorization: Bearer {your_access_token}
```

レスポンスはJSON形式で、いつ、誰が、どのフォームに情報を送ったかが含まれています。

### レスポンスサンプル

```json
{
  "results": [
    {
      "conversionId": "fbbe96fd-6d46-4765-b5b3-54445238ce29",
      "submittedAt": 1547130102576,
      "values": [
        {
          "name": "email",
          "value": "example@example.com"
        },
        {
          "name": "company",
          "value": "Example Co"
        },
        {
          "name": "phone",
          "value": "123 555 4567"
        }
      ],
      "pageUrl": "https://www.example.com/form"
    },
    {
      "conversionId": "a9e54244-67f1-4237-b3ca-c3e95fb105d3",
      "submittedAt": 1547129474539,
      "values": [
        {
          "name": "email",
          "value": "another@example.com"
        },
        {
          "name": "company",
          "value": "Company A"
        },
        {
          "name": "phone",
          "value": "123 123 2356"
        }
      ],
      "pageUrl": null
    },
    {
	  "conversionId": "fa7d0977-98b8-4abb-ac5a-9cc87e7325ed",
      "submittedAt": 1547071030851,
      "values": [
        {…}
      ],
      "pageUrl": null
    }
  ],
  "paging": {
    "next": {
      "after": "YmYyZjI4MGYtMjRjZS00NjY2LTkzMWItMzFmNTBhZjhlOGUzXzE1NDcwNjk5Mzg0OTQ",
      "link": "?after=YmYyZjI4MGYtMjRjZS00NjY2LTkzMWItMzFmNTBhZjhlOGUzXzE1NDcwNjk5Mzg0OTQ&limit=4"
    }
  }
}
```

このようなJSONが返ってくるので、あとはこちらをTROCCOでうまく出力先に突っ込むだけです。

## TROCCOでのHTTP/HTTPSコネクタ利用手順

それでは、実際にTROCCO側での設定イメージをご紹介します。

1. **TROCCOへログイン**  
   アクセスして「新規転送設定作成」画面へ進みます。
   ![転送設定一覧.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625537/47343e42-f547-e3d2-cbce-4df5fb0e77b8.png)


1. **転送元の選択**  
   転送元に「HTTP/HTTPS」を選びます。
   ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625537/f4d017b8-5d3b-2af1-a077-654e5983dcef.png)

1. **転送先の選択** 
   お好きなコネクタを選んでいただければと思いますが、今回はスプレッドシートにします。
   ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625537/2d7ce0ec-2253-1d4c-0b93-ed5c8b78b7f0.png)


1. **概要設定** 
   名前やメモを記入します。命名規則を決めておくと後から見直しやすいです。
   ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625537/67b97016-1134-68e4-c007-5c321082107a.png)


1. **転送元設定** 
   URLにエンドポイントを設定して、メゾットはGETとします。
   リターンは```result```に格納されているので、JSONPathを```$.results```に設定します。
   また、ヘッダーにはAPI Keyを設定します。
   ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625537/56bc64cd-d863-0726-61e5-4601ce3d972d.png)


1. **転送先設定**  
   スプレッドシートのIDやシートを指定します。
   ※IDはURLから確認できます。（```https://docs.google.com/spreadsheets/d/{ID}/edit```）
   ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625537/b297af34-ba2e-b6f5-5499-485096e18491.png)
   ここまで設定できたら、右下の「次のSTEPへ」をクリックします。
   プレビューの作成を待ちます…
   ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625537/374d1b7d-b75a-326c-7721-3e890d48bb94.png)

1. **データプレビュー・詳細設定**  
   プレビューを確認して、データを問題なく読み込めているかを確認します。
   問題が無ければ、右下の「確認画面へ」ボタンを押します。
   ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625537/c0c66a8f-7b59-19e9-7ca7-4fed2e1d401a.png)

   内容を確認したうえで、保存します。
   ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625537/2d435960-43ea-cdbf-9742-4f4149f11863.png)


## データ活用

取得したフォーム送信履歴データは、いろいろなところで使えます。

- **BIツールで可視化**
  スプレッドシートでグラフ化するのはもちろん、[Looker Studio](https://lookerstudio.google.com/)やTableauなどに繋げて、フォーム送信数の推移やユーザー属性分布をグラフ化できます。

- **マーケ施策のPDCA**
  どのフォームが最も成果が良いか、いつが送信数のピークなのかを分析してフォーム改善やキャンペーン強化に役立ちます。

- **他データとの融合**:  
  広告データと突合し、顧客行動をより深く把握して高度な広告施策に活かせます。

## まとめ

今回は、TROCCOのHTTP/HTTPSコネクタを使ってHubSpotフォーム送信履歴を取得する流れをご紹介しました。標準コネクタでは対応できないデータ取得も、APIを直接叩くことで連携できます。

こうしたアプローチを活用すれば、マーケティングデータの幅が広がり、よりデータドリブンな判断ができるようになります。  
TROCCOとHubSpotを組み合わせて、さらなるデータ活用の可能性を探っていきましょう！

わからないことがありましたら[コチラ](https://anddigital.co.jp/contact/)のフォームからお問い合わせください！
些細なことでも大丈夫ですので、お気軽にご連絡ください！