HubSpotのCRMデータをGoogleスプレッドシートに取り込みたいとお考えではありませんか。営業データや顧客リストをスプレッドシートで集計・分析できれば、レポート作成が格段に効率化します。本記事では、Private App Tokenを使ったHubSpot連携の方法を詳しく解説します。この方法ならOAuthの複雑な認可フローを省略でき、セキュアかつシンプルにデータを取得できます。
【要点】Private App TokenでHubSpotデータをスプレッドシートに取り込む手順
- Private App Tokenの作成: HubSpotの管理画面から専用トークンを発行します。権限をスコープ単位で制御できるため、必要なデータだけにアクセスできます。
- Apps ScriptでAPIを呼び出す: スプレッドシートに組み込まれたスクリプトエディタで、トークンを使ってHubSpot REST APIにリクエストを送信します。
- データをシートに出力: 取得したJSONデータをパースし、スプレッドシートのセルに整形して書き込みます。定期実行も可能です。
ADVERTISEMENT
目次
HubSpot Private App Tokenを使う理由
HubSpotは豊富なCRMデータをAPIで公開しています。従来のOAuth 2.0認証はリダイレクトURLの設定やリフレッシュトークンの管理が煩雑です。一方、Private App Tokenはアプリケーション内で完結する認証方式で、トークンの発行と失効を簡単に管理できます。スプレッドシートとの連携では、このトークンをスクリプト内で直接使用するため、認証フローが大幅に簡略化されます。また、トークンには読み取り専用の権限を割り当てられるため、誤ったデータ変更を防止できます。
Private App TokenでHubSpotデータを取り込む手順
1. HubSpotでPrivate Appを作成しトークンを発行する
- HubSpotアカウントにログインする
管理画面の右上にある歯車アイコンから「設定」を開きます。 - 「統合」→「Private App」を選択する
左側のメニューから「統合」をクリックし、その中の「Private App」を選びます。 - 「Create private app」ボタンを押す
アプリ名を入力します(例:「スプレッドシート連携」)。 - スコープ(権限)を設定する
「Scopes」タブで必要なデータの読み取り権限を有効にします。例えば「crm.objects.contacts.read」「crm.objects.companies.read」などです。書き込み権限は必要なければ外します。 - トークンを生成する
画面下部の「Create」ボタンをクリックし、表示されたトークンを安全な場所にコピーします。このトークンは後でスプレッドシートのスクリプトに記述します。
2. スプレッドシートでApps Scriptを開きスクリプトを記述する
- スプレッドシートを開く
データを取り込みたいスプレッドシートを新規または既存で開きます。 - 「拡張機能」→「Apps Script」を開く
メニューから「拡張機能」をポイントし、「Apps Script」をクリックします。 - スクリプトエディタでコードを記述する
以下のサンプルコードを貼り付けます。function getHubSpotContacts() { const token = 'YOUR_PRIVATE_APP_TOKEN'; // ここにトークンを設定 const url = 'https://api.hubapi.com/crm/v3/objects/contacts'; const options = { 'method': 'GET', 'headers': { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' }, 'muteHttpExceptions': true }; const response = UrlFetchApp.fetch(url, options); const data = JSON.parse(response.getContentText()); const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // ヘッダー行を設定 sheet.getRange(1, 1, 1, 3).setValues([['ID', 'First Name', 'Last Name']]); // データを二次元配列に変換 const rows = data.results.map(contact => [ contact.id, contact.properties.firstname, contact.properties.lastname ]); // シートに書き込み(2行目から) if (rows.length > 0) { sheet.getRange(2, 1, rows.length, 3).setValues(rows); } } - トークンを設定し保存する
コード中の「YOUR_PRIVATE_APP_TOKEN」を実際のトークンに置き換えます。Ctrl+Sで保存します。
3. スクリプトを実行してデータを取り込む
- 関数を選択して実行する
スクリプトエディタのツールバーで「getHubSpotContacts」を選択し、再生ボタンをクリックします。 - 初回は承認が必要
「権限の確認」ダイアログが表示されたら、自分のGoogleアカウントを選び、「許可」をクリックします。このスクリプトは外部サービス(HubSpot)へのアクセスとスプレッドシートの編集権限を要求します。 - データがシートに表示される
実行が成功すると、アクティブなシートのA1セルからID、名、姓が書き込まれます。
4. トリガーを設定して定期的に更新する(オプション)
- スクリプトエディタでトリガーを追加する
左側の時計アイコンをクリックし、「トリガーを追加」を選びます。 - 実行間隔を設定する
「時間ベースのトリガー」を選択し、例えば1時間ごとや毎日など希望の頻度を指定します。 - 保存する
設定を保存すると、自動的にスクリプトが実行されシートが更新されます。
Private App Token使用時の注意点
トークンの漏洩リスク
Private App Tokenは強力な認証情報です。スクリプト内に直接記述するため、スプレッドシートを共有する際は注意が必要です。スクリプトエディタはシートの編集権限があるユーザー全員が閲覧可能です。機密性の高いトークンはスクリプトプロパティに保存する方法が推奨されます。具体的には、スクリプトエディタの「プロジェクトの設定」からスクリプトプロパティを追加し、コード内で PropertiesService.getScriptProperties().getProperty('HUBSPOT_TOKEN') のように参照します。
APIレート制限
HubSpot APIには1秒あたりのリクエスト数制限があります。大量のデータを取得する場合は、ページネーション処理を実装するか、リクエスト間隔を空ける必要があります。また、有料アカウントによって制限が異なるため、公式ドキュメントで確認してください。
権限スコープの最小化
Private Appを作成する際は、必要なデータの読み取り権限のみを付与します。書き込み権限まで有効にすると、誤操作でデータを変更するリスクがあります。特にスプレッドシート経由での編集を意図していない場合は、読み取り専用に絞りましょう。
ADVERTISEMENT
Private App TokenとOAuth 2.0の比較
| 項目 | Private App Token | OAuth 2.0 |
|---|---|---|
| 認証の複雑さ | シンプル、リダイレクト不要 | 複数ステップ、リダイレクトURL設定が必要 |
| トークンの有効期限 | 無期限(手動で失効可能) | 一時的(リフレッシュトークンで更新) |
| 適用範囲 | 自社アカウント内のデータのみ | 他アプリからのアクセスも可能 |
| セキュリティリスク | トークン漏洩時の影響が大きい | リフレッシュトークンの管理が必要 |
まとめ
Private App Tokenを使うことで、HubSpotのCRMデータをGoogleスプレッドシートに簡単に取り込めるようになります。今回は連絡先データの取得方法を紹介しましたが、会社や商談など他のオブジェクトも同様のAPIで取得可能です。また、Apps Scriptのトリガー機能を利用すれば、データを定期的に自動更新できます。次のステップとして、取得したデータをQUERY関数で集計したり、他のスプレッドシート関数と組み合わせてダッシュボードを作成してみてはいかがでしょうか。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
