HubSpotのデータをBigQueryに統合してユーザーの行動を可視化してサービスを改善

## 概要
HubSpotを利用している方は日々のマーケティング活動に関する記録をHubSpotに取っていると思います。
今までHubSpotに取っていたデータを使ってこれまでの活動の振り返りを行うこともあると思います。
データを用いて分析する際や他者に今までの実績を説明する際には、グラフなどひと目見てわかる資料が効果的です。
しかし、新しくデータが増える度にダウンロードして最新の状態にし、グラフを作り直すのは手間がかかる作業です。
そこで今回は、[trocco®️](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=hubspot_to_bigquery)という「ETL & ワークフロー」サービスを使い、データ取得の自動化＋DWHへの統合＋可視化までやってみようと思います。
今回、データの転送手段として採用した[trocco®️](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=hubspot_to_bigquery)は、HubSpotの他にも、様々な広告・CRM・DBなどのデータソースにも対応しています。
[trocco®️の使い方まとめ（CRM・広告・データベース他）](https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)
![from_hubspot_to_bigquery.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697569/c4f16f36-0e94-e80c-cb72-4d2fc999766d.png)
## ゴール
↓画像のようにグラフをまとめたものを30分くらいで作り上げます（作成後は自動で最新値に更新することも可能です）
![作成結果例2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697569/a642ae8d-e738-0f01-1ce6-516f956d6252.png)
## こんな人におすすめ
* HubSpotを利用しており、分析基盤やデータウェアハウスへのデータ移行を考えている方
* 様々なCRMサイトの情報をまとめてひとつのサービスで管理したい方
* 管理画面からデータ取得を行う作業に疲れている方
## 1. DWHと同期する手段の選定
### 1-1. DWHの選定
まずはデータをどこに集約するか、DWH（データウェアハウス）を選定します。
* Google BigQuery
* Amazon Redshift
* MySQLやPostgreSQL
今回はBigQueryを利用することにします。
### 1-2. HubSpotのデータをBigQueryに転送する4つの方法
BigQueryにデータを集約することが決まったので、続いては転送するための手段を検討します。
**1.** HubSpotのデータを管理画面からダウンロードし、手動でBigQueryにアップロードする
**2.** HubSpotとBigQueryの各APIを用いて、プログラムを書いて連携する
**3.** Embulkを利用し、自分で環境を構築する
**4.** [trocco®️](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=hubspot_to_bigquery)を利用し、画面上で設定する
**1**は単発の実行であれば問題はありませんが、定期的な取り込みを行うことを考えると毎回同じ作業を繰り返すことになり、手間と時間が取られます。
**2**は連携を始める前にAPIのキャッチアップ+プログラムを書く+環境構築の時間がかかり、エラー対応などの運用工数も継続的に発生します。
**3**も**2**と同じくEmbulkはある程度の専門知識が必要になり、自分で環境構築・運用を行うため、手間が発生します。加えてエラーの内容が少し専門的なためエラーの解消に時間が取られる可能性があります。
そこで今回はEmbulkの課題も解決し、プログラムを書かずに画面上の設定のみで作業が完結する、**4**の[trocco®️](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=hubspot_to_bigquery)というSaaSを利用します。
## 2. trocco®️でHubSpot→BigQueryの転送自動化
### 2-0. 事前準備
データの転送のためには[trocco®️](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=hubspot_to_bigquery)のアカウントが必要です。
trocco®にはフリープランがあり、即日アカウント発行されるので、申し込みをしておいてください！
[https://trocco.io/lp/inquiry_free.html](https://trocco.io/lp/inquiry_free.html?utm_medium=social&utm_source=qiita&utm_campaign=hubspot_to_bigquery)
### 2-1. 転送元・転送先を決定
[trocco®️](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=hubspot_to_bigquery)にアクセスして、ダッシュボードから「転送設定を作成」のボタンを押します。
<img width="1792" alt="qiita_20200827_2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697569/098f74e5-a834-6b9f-0ea2-2b9c592a6169.png">

転送元に「HubSpot」、転送先に「BigQuery」を選択して転送設定作成ボタンを押します。
![転送設定選択画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697569/451a5e73-68b0-be76-67ad-f46a55b7afd4.png)
すると、設定画面になるので、設定画面から必要な情報を入力していきます。

### 2-2. HubSpotとの連携設定
後で転送設定を見たときに自分で分かるように名前とメモを入力します。
![名前とメモ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697569/5f292ddd-0d71-e66c-e4a4-4b41511038ca.png)

次にHubSpotとの連携に関する設定をするために「転送元の設定」内の「接続情報を追加」ボタンを押します。
![接続情報を追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697569/8312de36-af07-ca9b-c7b5-08f211312f0e.png)

別タブで接続情報の新規作成画面が開きますので、必要事項を記入して保存ボタンを押します。
![接続設定作成.png](https://assets.trocco.io/wp-content/uploads/2022/06/29123423/Qiita_hubspot%E6%8E%A5%E7%B6%9A%E6%83%85%E5%A0%B1.png)

再度転送設定画面に戻り、接続情報の「再読込」ボタンを押すと、先ほど作成した接続情報が選択できるようになります。
![接続情報を選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697569/6f3c6d89-efda-1c8e-38d4-164223b980c6.png)
これでHubSpotとの連携は完了です。

### 2-3. HubSpotからのデータ抽出設定
次に、どのようなデータを取得するかを設定していきます。
取得対象としては、以下のものが設定できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/8dd45b6b-abd3-0cad-893b-b0afe6736db1.png)
今回は以下の設定でデータを取得します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/b941b080-e512-4899-9b92-8584d291efe3.png)



### 2-4. 転送先BigQueryの設定
転送元と同じ要領で設定していきます。
「接続情報を追加」ボタンからBigQueryの接続設定を行います。名前と、認証方式としてサービスアカウント(JSONキー)を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/aa7530d2-c70d-398a-bec0-a8cefd4a5305.png)
JSONキーの取得方法については[こちらのドキュメント](https://docs.trocco.io/s/article/BigQuery%E3%81%AE%E6%8E%A5%E7%B6%9A%E8%A8%AD%E5%AE%9A)を参照してください。
「接続情報を追加」ボタンからBigQueryの接続設定を行い、データベース・テーブル・データセットのロケーションを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/6c524c0b-eaa2-7b28-8632-f5a885d297fb.png)
最後に、接続確認が問題なく通るか確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/cd8806ef-e17b-be4c-fc54-d65ecc50fea2.png)
これで入力は完了です。「次のSTEPへ」をクリックして次に進みましょう。
### 2-5. データのプレビュー
少し待つと、転送元のデータがプレビューされます。ここではTikTok Adsから取り込んだデータが表示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/743209db-d2d8-633b-bf6b-0b3ad1b332a4.png)
問題が無ければ、確認画面に移り、保存して適用しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/73765bf6-8ff5-a7c2-7cb1-aaeae8da6e86.png)
### 2-6. スケジュール・通知設定
「スケジュール・トリガー設定」タブを開き、スケジュールを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/cc8c18fd-0752-ccd9-d304-115926a0f222.png)
以下のように実行スケジュールを設定することで、転送を定期的に実行し自動化することが出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/755133a3-7f2e-83e1-eb7e-b61e43d4a0b3.png)
また、必須の設定ではないですが、ジョブの実行ステータスに応じてEmailやSlackに通知を行うことが出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/0f470c5c-5ce4-a663-86ff-da0f4a158ae8.png)
### 2-7. データ転送ジョブの実行
設定は以上です。最後に、手動で転送ジョブを実行してBigQueryにデータを送ります。
手動で実行する場合はジョブ詳細画面の「実行」ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/530b9fe2-d76c-874b-4d19-7fcd5f810325.png)
これで転送は完了です！
## 3. BigQueryの設定
特に設定することありません。データが転送されているかをプレビューで確認してみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/aad15730-7b88-d0f5-0a0c-27857b50f8aa.png)
転送が成功しているため、今すぐに分析・可視化を行うことが出来ます。
## 4. Googleデータポータル（旧データスタジオ）で可視化
BigQueryの画面から、「エクスポート > データポータル」を選択します。
<img width="240" alt="qiita_20200827_13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697569/eb566777-527e-55a4-5ca1-96bd87e0bd3d.png">
すると、以下のようなData Portalの画面に遷移します。
今回は各アカウント毎の売上高をグラフにした例を示します。データは私が用意したサンプルを利用します。
図の指示のとおりに変更してみてください。
![hubspotデータグラフ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697569/2d95c52e-3cb3-dab8-4f18-d71ca7b8ad9a.png)
すると、以下のようなグラフが出来上がります。
![hubspotデータグラフ-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697569/2999c10f-f2fc-95a3-7c84-22c618fc586b.png)
この画面はデータポータルの「エクスプローラ」という機能になります。
<img width="267" alt="qiita_20200827_16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61228/03a167e2-d307-20af-a378-56712023708e.png">
データポータルのトップ画面から、「レポート」を作成し、必要なグラフを上記と同様に作成を行うと、サービス用ダッシュボードが出来上がります。
![作成結果例2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697569/a642ae8d-e738-0f01-1ce6-516f956d6252.png)
## まとめ
いかがでしたでしょうか。[trocco®️](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=hubspot_to_bigquery)を使うとHubSpotの管理画面を触ることなく、簡単にデータを取得し、DWH(BigQuery)に貯めることが出来ます。
BigQueryにデータを貯めると、Googleデータポータルを利用することでデータを使ってグラフを作り、可視化できます。
実際に弊社サービスの[trocco®️](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=hubspot_to_bigquery)においても、マーケティングKPI等をこのような流れで収集・分析しています。
ぜひ広告データ分析の際にはご活用ください。
[https://trocco.io/lp/index.html](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=hubspot_to_bigquery)
実際に試してみたい場合は、[フリープラン](https://trocco.io/lp/inquiry_free.html?utm_medium=social&utm_source=qiita&utm_campaign=hubspot_to_bigquery)がありますので、この機会にぜひ一度お試しください。
その他にも広告やデータベースなど、様々な分析データをETL・転送した事例をまとめました。
[trocco®️の使い方まとめ（CRM・広告・データベース他）](https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)