hubspot について
HubSpot API を使って CRM と CMS の作業を自動化する Claude スキルです。連絡先、会社、取引、CMS ページの管理に加え、営業ワークフローの実行を支援します。
主な機能
- 01連絡先の管理と検索
- 02会社と取引の管理
- 03CRM レコードの関連付け
- 04担当者とプロパティの確認
- 05CMS ページの一覧表示
- 06パイプラインと取引の確認
活用シーン
- 01CRM レコードの検索や更新
- 02連絡先、会社、取引の関連付け
- 03取引ステージとパイプライン金額の確認
- 04HubSpot のサイトページとランディングページの一覧表示
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ openclaudia/ openclaudia-skills --skill hubspotインストール後、Claude Code で/hubspotを入力して読み込まれたか確認します。
詳細
HubSpot CRM および CMS スキル
HubSpot CRM と CMS の自動化エキスパートです。HubSpot API を使用して、コンタクト、会社、取引、担当者、関連付け、プロパティ、CMS ページ、ファイルを管理します。
前提条件
このスキルには HUBSPOT_ACCESS_TOKEN(Private App トークン)が必要です。環境変数または ~/.claude/.env.global を確認してください。見つからない場合は、ユーザーに次のように伝えてください。
This skill requires a HubSpot Private App access token. Set it via:
export HUBSPOT_ACCESS_TOKEN=your_token_here
Or add it to ~/.claude/.env.global
Create a Private App at: Settings > Integrations > Private Apps
Required scopes: crm.objects.contacts, crm.objects.companies, crm.objects.deals, content
API リファレンス
ベース URL:https://api.hubapi.com
認証ヘッダー:Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}
レート制限:プライベートアプリの場合、10 秒あたり 100 リクエストです。
コンタクト
コンタクトの一覧表示:
curl -s "https://api.hubapi.com/crm/v3/objects/contacts?limit=10&properties=firstname,lastname,email,company,phone" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}"
コンタクトの検索:
curl -s -X POST "https://api.hubapi.com/crm/v3/objects/contacts/search" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"filterGroups": [{
"filters": [{
"propertyName": "email",
"operator": "CONTAINS_TOKEN",
"value": "example.com"
}]
}],
"properties": ["firstname", "lastname", "email", "company"],
"limit": 10
}'
コンタクトの作成:
curl -s -X POST "https://api.hubapi.com/crm/v3/objects/contacts" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"properties": {
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]",
"company": "Acme Inc",
"phone": "+1234567890"
}
}'
メールアドレスからコンタクトを取得:
curl -s -X POST "https://api.hubapi.com/crm/v3/objects/contacts/search" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"filterGroups": [{
"filters": [{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}]
}],
"properties": ["firstname", "lastname", "email", "company", "phone", "lifecyclestage"]
}'
会社
会社の一覧表示:
curl -s "https://api.hubapi.com/crm/v3/objects/companies?limit=10&properties=name,domain,industry,numberofemployees" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}"
ドメインで会社を検索:
curl -s -X POST "https://api.hubapi.com/crm/v3/objects/companies/search" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"filterGroups": [{
"filters": [{
"propertyName": "domain",
"operator": "EQ",
"value": "example.com"
}]
}],
"properties": ["name", "domain", "industry", "numberofemployees", "annualrevenue"]
}'
取引
取引の作成:
curl -s -X POST "https://api.hubapi.com/crm/v3/objects/deals" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"properties": {
"dealname": "New Enterprise Deal",
"dealstage": "appointmentscheduled",
"pipeline": "default",
"amount": "50000",
"closedate": "2026-06-30"
}
}'
取引の一覧表示:
curl -s "https://api.hubapi.com/crm/v3/objects/deals?limit=10&properties=dealname,dealstage,amount,closedate,pipeline" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}"
取引ステージの更新:
curl -s -X PATCH "https://api.hubapi.com/crm/v3/objects/deals/{dealId}" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"properties": {"dealstage": "closedwon"}}'
担当者
担当者(営業担当者)の一覧表示:
curl -s "https://api.hubapi.com/crm/v3/owners/" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}"
関連付け
コンタクトを会社または取引に関連付けます。
# Associate deal with contact (type 3)
curl -s -X PUT "https://api.hubapi.com/crm/v3/objects/deals/{dealId}/associations/contacts/{contactId}/3" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}"
# Associate deal with company (type 5)
curl -s -X PUT "https://api.hubapi.com/crm/v3/objects/deals/{dealId}/associations/companies/{companyId}/5" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}"
# Associate contact with company (type 1)
curl -s -X PUT "https://api.hubapi.com/crm/v3/objects/contacts/{contactId}/associations/companies/{companyId}/1" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}"
取引に関連付けられたコンタクトを取得:
curl -s "https://api.hubapi.com/crm/v3/objects/deals/{dealId}/associations/contacts" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}"
プロパティ
すべてのコンタクトプロパティを一覧表示:
curl -s "https://api.hubapi.com/crm/v3/properties/contacts" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}"
CMS ページ
サイトページの一覧表示:
curl -s "https://api.hubapi.com/cms/v3/pages/site-pages?limit=10" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}"
ランディングページの一覧表示:
curl -s "https://api.hubapi.com/cms/v3/pages/landing-pages?limit=10" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}"
検索演算子
| 演算子 | 説明 |
|---|---|
EQ | 等しい |
NEQ | 等しくない |
LT / LTE | より小さい/以下 |
GT / GTE | より大きい/以上 |
CONTAINS_TOKEN | 単語を含む |
NOT_CONTAINS_TOKEN | 単語を含まない |
HAS_PROPERTY | プロパティが存在する |
NOT_HAS_PROPERTY | プロパティが存在しない |
ページネーション
すべての一覧取得エンドポイントは、after パラメーターによるページネーションに対応しています。
curl -s "https://api.hubapi.com/crm/v3/objects/contacts?limit=100&after={next_cursor}" \
-H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}"
after の値は、レスポンス内の paging.next.after から取得します。
一般的なワークフロー
パイプラインレポート
dealstage、amount、closedateを指定して、すべての取引を一覧表示します- ステージごとにグループ化します
- ステージごとに金額を合計します
- パイプラインの概要を表にまとめて提示します
コンタクト情報の補完
- 重要なプロパティが設定されていないコンタクト(
NOT_HAS_PROPERTY)を検索します - 各コンタクトについて、会社のドメインが存在するか確認します
- 会社のデータを取得し、コンタクトを更新します
取引の健全性チェック
- アクティブなステージにある取引を一覧表示します
- 14 日以上アクティビティのない取引にフラグを付けます
- 予定されたクローズ日を過ぎた取引にフラグを付けます
- 優先順位を付けたアクションリストを提示します
重要な注意事項
- 大規模なデータセットでは、必ずページネーションを使用してください。デフォルトの上限は 10、最大は 100 です。
- HubSpot のプロパティ名は小文字で、スペースは使用しません(例:
firstname、dealstage、closedate)。 - 取引ステージはパイプラインによって異なります。必要に応じて、Pipelines API でパイプラインのステージを一覧表示してください。
- レート制限は 10 秒あたり 100 リクエストです。可能な場合は、バッチ操作を使用してください。