HubSpot連携

connect for Pleasanter機能

connect for PleasanterでHubSpot連携について説明します。

HubSpot連携の準備

  • HubSpot(ハブスポット)は、企業の成長を支援するクラウド型のCRM(顧客関係管理)プラットフォームです。
  • 単なる顧客名簿の管理にとどまらず、マーケティング、営業、カスタマーサポート、Webサイト制作といった「顧客との接点」をすべて一つの基盤でつなげるのが最大の特徴です。
  • HubSpot APIは、HubSpotのCRMデータ(顧客情報、取引、チケットなど)やマーケティング機能を、外部のシステムや自社アプリと連携させるための強力なツール群です。
  • 基本的にはREST APIの規約に基づいて設計されており、HTTPリクエストを通じてデータの取得・作成・更新・削除が可能です。
  • HubSpotと連携するためアカウントを作成してください。
HubSpot(ハブスポット)|CRM・SFA・MA・CMSが一元化されたカスタマープラットフォーム
HubSpotのカスタマープラットフォームには、ビジネスの成長に必要なマーケティング、営業、カスタマーサービス、CRMのソフトウェアが全て含まれています。世界28万社以上の実績、無料版から利用可能。
  • HubSpotと連携するためHubSpot Developerのアカウントを作成してください。
HubSpot Developers | Create tomorrow's solutions today on HubSpot's Developer Platform.
Craft experiences with HubSpot’s Developer Platform—APIs, SDKs, tooling, and sample apps, plus a world-class builder com...
  • HubSpotAPIで今回取得するコンタクトのリファレンスは以下を参照してください。
コンタクトを検索 - HubSpot docs
  • コンタクトプロパティは以下を参照してください。
  • なお、コンタクトプロパティの物理名の確認方法は、HubSpot管理画面の右上の歯車アイコン(設定)>左メニューのプロパティ>対象のオブジェクト:コンタクトプロパティ選択>確認したいプロパティクリック>プロパティラベル(例:Email)下の内部名(例:email)を確認してください。
HubSpot's default contact properties
Learn more about the definitions of HubSpot's default contact properties.

HubSpot APIを活用した利用シーン

リード(見込み客)情報のシームレスな営業引き継ぎ

  • シーン: HubSpotで獲得・育成したMQL(有望な見込み客)データをプリザンターの営業リストに自動取得。
  • メリット: マーケティング部門から営業部門への引き継ぎの際、手入力の手間と入力ミスをゼロに。営業は使い慣れたプリザンター上で即座にアプローチを開始できます。

受注データのプロジェクト管理への自動連携

  • シーン: HubSpotで商談(取引)が「受注」フェーズになった際、プリザンターのプロジェクト管理(案件管理)テーブルに詳細データを取得してレコードを自動作成。
  • メリット: 営業からデリバリー(制作・開発・納品)部門への情報伝達が自動化され、プロジェクトのキックオフを迅速化。言った・言わないのトラブルを防ぎます。

日本特有の複雑な見積書・請求書の発行業務

  • シーン: HubSpotの商談やコンタクト情報をプリザンターに取得し、プリザンターの帳票出力プラグイン(export for Pleasanterなど)を利用して日本の商慣習に合わせた見積書や請求書を発行。
  • メリット: HubSpot標準のシンプルな見積機能では対応しきれない、複雑な明細や独自のレイアウト指定が必要な帳票業務を、プリザンター側で柔軟に完結できます。

顧客マスターの一元化と最新化

  • シーン: HubSpot上で更新された企業情報や担当者情報を、プリザンターの顧客マスターテーブルに定期的に同期(オンデマンド同期やスケジュール同期)。
  • メリット: 経理やバックオフィス部門がHubSpotのアカウントを持っていなくても、常に最新の顧客情報にアクセスでき、データサイロ化を防止します。

問い合わせ(チケット)と開発・保守タスクの連携

  • シーン: HubSpot Service Hubで受け付けた顧客からのバグ報告や要望チケットを、プリザンターの「課題管理・バグトラッキング」テーブルに取得。
    メリット: サポート担当(HubSpot)とエンジニア(プリザンター)で利用ツールが異なっていても、リアルタイムに情報が連携され、対応スピードが飛躍的に向上します。

契約期間・サブスクリプションの更新管理

  • シーン: HubSpotの受注データから契約開始日・終了日をプリザンターに取得し、更新時期が近づいたレコードをプリザンターのアラート機能で営業に通知。
  • メリット: 更新漏れによる機会損失を防止。保守契約やサブスクリプションビジネスにおける契約情報のライフサイクル管理が容易になります。

納入機器・ライセンス等と顧客情報を紐づけた構成管理(アセットマネジメント)

  • シーン: HubSpotから顧客(会社・コンタクト)データをプリザンターに取得し、プリザンター上で管理している「納入機器(シリアルナンバーなど)」や「ソフトウェアライセンス」のテーブルとリレーション(紐付け)させる。
  • メリット: 「どの顧客が・どのロットの機器(またはバージョン)を・いつから利用しているか」といった複雑な構成管理を実現します。HubSpotの標準CRMだけでは持たせにくい物理的な資産情報や、多対多の複雑なデータベース構築をプリザンターの柔軟性でカバーできます。

原価データと連携した高度な予実管理・KPI集計

  • シーン: HubSpotの売上(商談)データをプリザンターに取得し、プリザンター側で管理している「原価データ(人件費・仕入など)」と突き合わせてクロス集計を行う。
  • メリット: 売上だけでなく、利益率ベースでの予実管理や部門別採算の可視化など、より高度な管理会計を実現できます。

セミナー・イベントのオフライン運営管理

  • シーン: HubSpotのフォームで受け付けたイベント参加者リストをプリザンターに取得し、当日の受付チェック、配布物の在庫管理、スタッフの配置割り当てを行う。
  • メリット: デジタルマーケティングのデータと、物理的(オフライン)な運営・在庫管理のデータをスムーズに連携させ、イベント運営の効率化を図れます。

代理店・パートナー向けの情報共有ポータル構築

  • シーン: HubSpotのリード情報をプリザンターに取得し、プリザンターの強力なアクセス権限制御を用いて、外部の販売代理店向けに特定の案件情報だけを公開・共有する。
  • メリット: HubSpotのライセンスを代理店に付与することなく、セキュアな環境で案件の共有や進捗報告を行える代理店ポータルを低コストで構築できます。

HubSpot APIの特徴

オブジェクト指向の柔軟なデータ構造

  • HubSpotは、コンタクト(個人)、会社、取引などのデータを「オブジェクト」として管理しています。
    • 標準オブジェクト: CRMの基本要素をすぐに操作可能。
    • カスタムオブジェクト: 不動産物件、車両情報、契約書など、ビジネス固有のデータ構造を独自に定義してAPIで操作できます。
    • アソシエーション (Associations): 「この取引に紐づくコンタクトは誰か」といった、オブジェクト間のリレーション(関連付け)をAPI経由で柔軟に構築・管理できます。

開発者に優しいドキュメントとツール

  • HubSpotは「開発者体験(DX)」を重視しており、以下のリソースが充実しています。
    • インタラクティブなリファレンス: 公式ドキュメント上で、実際に自分のAPIキー(アクセストークン)を使ってリクエストをテストし、レスポンスを確認できます。
    • クライアントライブラリ: Node.js, Python, PHP, Ruby, Goなど、主要な言語のSDKが公式に提供されています。
    • API Postmanコレクション: 開発ツールPostmanですぐに試せる設定ファイルが公開されています。

豊富なカスタマイズ・拡張機能

  • 単にデータを出し入れするだけでなく、HubSpotの機能を外部から拡張できます。
    • カスタムカード (CRM Extensions): HubSpotのコンタクト画面などの右側に、外部システムのデータを表示する独自のパネルを埋め込めます。
    • タイムラインイベント: 外部アプリでのユーザーの行動(例:アプリにログインした、資料をダウンロードした)を、HubSpotのタイムライン上に時系列で記録できます。
    • サーバーレス関数: HubSpotのプラットフォーム内で独自のJavaScriptを実行し、APIを叩くといった「フロントエンド+ロジック」の構築が可能です。

堅牢な認証とセキュリティ

  • セキュリティレベルに応じて、適切な認証方法を選択できます。
    • プライベートアプリ: 特定のポータル限定の連携に最適。
    • OAuth 2.0: セキュアなトークン管理が可能で、App Marketplace(アプリストア)への公開にも対応。
    • スコープ(権限)管理: 「CRMの読み取りは許可するが、設定の変更は許可しない」といった、細かいアクセス権限の設定が可能です。

Webhooksによるリアルタイム連携

  • データの変化を待つ(ポーリングする)必要はありません。
    「コンタクトが作成された」「取引のステージが変わった」といった特定のイベントが発生した瞬間に、HubSpotから外部システムへ通知を飛ばすことができます。これにより、リアルタイムな業務自動化が可能になります。

HubSpot APIの機能

CRMコア機能(データの管理・操作)

  • HubSpotの心臓部である顧客データにアクセスし、プログラムから操作できます。
  • オブジェクト操作: コンタクト、会社、取引(案件)、チケットの作成・更新・削除。
  • カスタムオブジェクト: 独自のビジネス(例:不動産物件、受講講座、車両データ)に合わせたデータ構造を定義し、標準オブジェクトと同様にAPIで扱えます。
  • アソシエーション管理: 「特定の会社に所属する全コンタクト」や「取引に紐づく請求書」など、データ間の複雑な関連付けを制御できます。
  • 高度な検索 API: 複数の条件(フィルタ)を組み合わせた複雑なデータ抽出やソートを高速に実行します。

自動化とワークフロー(ビジネスロジックの拡張)

  • カスタムコードアクション: HubSpotのワークフロー内で独自のNode.jsやPythonコードを実行し、外部APIとの連携や複雑な計算を自動化できます。
  • Webhooks: HubSpot側でデータが変更された際、即座に自社システムへ通知を飛ばすリアルタイム連携が可能です。
  • タイムラインイベント: 外部アプリでのユーザー行動(例:アプリへのログイン、動画視聴)を、HubSpotのタイムライン上に「活動履歴」として記録します。

UI・UXのカスタマイズ(操作画面の拡張)

  • HubSpotの管理画面そのものを使いやすく作り替えることができます。
  • CRMカード (UI Extensions): コンタクト詳細画面などに、外部システムのデータを表示するパネルや、ボタン一つで外部処理を実行するUIを埋め込めます。
  • カスタムチャネル (Conversations API): LINEや独自のチャットツールなどをHubSpotの「コミュニケーション受信トレイ」に統合し、HubSpot上で一元管理できます。

コンテンツ・マーケティング機能

  • CMS API: ブログ記事、LP(ランディングページ)、ファイル、HubDB(簡易データベース)の管理。
  • マーケティングイベント: ウェビナーの参加者情報などを同期し、マーケティング活動の効果を測定します。
  • フォーム API: 外部サイトの独自フォームから送信された内容をHubSpotのリードとして取り込みます。

【2026年最新】AIとデータ分析

  • Breeze API (AI連携): HubSpotのAIアシスタント「Breeze」と連携し、CRMデータに基づいたパーソナライズされた回答の生成や、AIエージェントによるタスク実行を支援します。
  • 予測(Forecast)API: 営業予測データを読み取り専用で取得し、BIツールやデータウェアハウス(Snowflake等)での高度な分析に活用できます。

HubSpot APIの注意点

項目注意点
レート制限サーバーへの負荷を防ぐため、一定時間内のAPIコール数に制限があります。契約しているプラン(無料、Starter、Professional、Enterprise)や認証方法によって上限が異なります(例:10秒間に100回、1日あたり250,000回など)。大量のデータを処理する場合は、この制限を考慮した設計が必要です。
バッチ処理の推奨大量のデータを更新・取得する場合は、1リクエストで複数件処理する「Batch API」の使用が推奨されます。
旧式APIの廃止従来の「Lists API (v1)」などは2026年4月30日をもって完全に廃止されます。新規開発では必ず最新の v3 以降のAPIを使用してください。

HubSpot APIの認証情報

今回ご紹介するのはリフレッシュトークンを使った例となります。旧アプリを作成し認証情報を取得します。

  • HubSpot Developerにログインします。
  • [旧アプリ][旧アプリを作成][公開] を選択します。
    • 公開アプリ:OAuth 2.0フローを使用、アクセストークンとリフレッシュトークンを取得することができます
    • 非公開アプリ:OAuthフローを通らないためリフレッシュトークンは発行されません
  • [アプリ情報]タブで、公開アプリ名とアプリのロゴを保存。
  • [認証] タブで、リダイレクトURLを設定し、アプリを作成します。
    • リダイレクトURL: http://localhostを設定します。なお、既にhttp://localhostが使用されてる場合は、http://localhost:10等、使用されていないポート番号を付けてください。
    • OAuth 2.0 資格情報: クライアントIDクライアントシークレットをコピーしておきます。
    • スコープ: crm.objects.contacts.readを追加します。

HubSpot APIの初回のリフレッシュトークン取得

  • 初回のリフレッシュトークンを作成します。
  • なお、認可コード(code)の有効期限が5分しかないため、先に以下の「HubSpot連携サンプル」の「CFPサービス管理サイト」と「CFPマッピング管理サイト」の設定を先に行った後で本作業を行ってください。
  • HubSpot Developerにログインします。
  • [認証] タブで、リダイレクトURLを確認します(http://localhost等)
  • [認証] タブで、インストールURLをコピーし、ブラウザの別タブのアドレスバーに張り付けます。
  • アカウント選択と「アプリを接続」の確認画面が表示され接続すると、http://localhost/?code=xxxxxxxx... の画面(または真っ白な画面)に遷移します。
  • アドレスバーから code= の値を取得します。
  • コマンドプロンプトで以下curlを実行してください。
curl -X POST https://api.hubapi.com/oauth/v1/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "client_id=<あなたのクライアントID>" \
  -d "client_secret=<あなたのクライアントシークレット>" \
  -d "redirect_uri=http://localhost" \
  -d "code=<ステップ3で取得した認可コード>"
  • 成功すると以下レスポンスが返ってきます。
{
  "access_token": "pat-na1-xxxx-xxxx-...",
  "refresh_token": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "expires_in": 1800
}
  • refresh_tokenの値を「CFPサービス管理サイト」のリクエスト情報のrefreshTokenに設定してください。

HubSpot連携サンプル

connect for Pleasanterで、HubSpotのコンタクト情報を取得しコンタクトサイトを作成します。

  • CFPサービス管理サイトの設定
    • リクエスト情報:上記「概要」のHubPot APIリファレンスを参照してください
    • 認証情報:上記「HubSpot APIの認証情報」を参照ください
    • limit:HubSpot APIの1回で取得できる最大件数は100件です(未指定時は10件)
    • properties:上記「概要」のコンタクトプロパティの物理名の確認方法を参照してください
項目設定例
サービス名スマレジ
認証タイプOAuth2_RefreshToken
baseURLhttps://api.hubapi.com
リクエスト情報{
 ”auth”: {
  ”clientId”: “【クライアントID】”,
  ”clientSecret”: “【クライアントシークレット】”,
  ”refreshToken”: “【リフレッシュトークン】”,
  ”tokenUrl”: “https://api.hubapi.com/oauth/v1/token”
 },
 ”headers”: {},
 ”defaultParams”: {
  ”limit”: “100”,
  ”properties”: “email,lastname,firstname,lastmodifieddate”
 }
}
  • CFPマッピング管理サイトの設定
    • 最大取得ページ:limit:100件×最大取得ページ、タイムアウト発生時に調整が必要
    • 更新処理件数:Pleasanterへの更新処理件数、タイムアウト発生時に調整が必要
項目設定例
マッピング名コンタクト
取得対象リソース/crm/v3/objects/contacts/search
最大取得ページ1
PleasanterサイトID12345
マッピング情報{
 ”id”: “ClassA”,
 ”properties.email”: “ClassB”,
 ”properties.lastname”: “ClassC”,
 ”properties.firstname”: “ClassD”,
 ”properties.lastmodifieddate”: “DateA”,
 ”properties.createdate”: “DateB”
}
プライマリーキー[
 ”ClassA”
]
更新処理件数100

HubSpot連携結果

  • コンタクトサイトの一覧画面>最新データ同期>画面リロード

お問い合わせ

「connect for Pleasanter」のデモや製品に関するお問合せはお気軽にご相談ください。

タイトルとURLをコピーしました