hubspot

SKILL.md

HubSpot CRM Client

First: Check Prerequisites

Step 1: Check Python

python3 --version 2>/dev/null || echo "NOT_INSTALLED"

If NOT installed:

Step 2: Check hubspot-api-client

python3 -c "import hubspot; print('OK')" 2>/dev/null || echo "NOT_INSTALLED"

If NOT installed:

pip3 install hubspot-api-client

Step 3: Check HubSpot Access Token

echo "HUBSPOT_ACCESS_TOKEN=${HUBSPOT_ACCESS_TOKEN:+SET}"

If NOT set, guide the user:

To get your HubSpot Access Token:

  1. Go to HubSpot → Settings (gear icon)
  2. Navigate to IntegrationsPrivate Apps
  3. Click Create a private app
  4. Name it "Claude Assistant"
  5. Go to Scopes tab and select:
    • crm.objects.contacts.read
    • crm.objects.companies.read
    • crm.objects.deals.read
    • crm.objects.owners.read
    • (add write scopes only if needed)
  6. Click Create appContinue CreatingShow token
  7. Copy the access token

Then set it:

echo 'export HUBSPOT_ACCESS_TOKEN="pat-na1-xxxxxxxx"' >> ~/.zshrc
source ~/.zshrc

Restart Claude Code after setting the token.


Quick Examples

List contacts:

python3 -c "
import os
from hubspot import HubSpot

client = HubSpot(access_token=os.environ['HUBSPOT_ACCESS_TOKEN'])
contacts = client.crm.contacts.basic_api.get_page(limit=10)
for c in contacts.results:
    print(f'{c.properties.get(\"firstname\", \"\")} {c.properties.get(\"lastname\", \"\")} - {c.properties.get(\"email\", \"\")}')
"

List companies:

python3 -c "
import os
from hubspot import HubSpot

client = HubSpot(access_token=os.environ['HUBSPOT_ACCESS_TOKEN'])
companies = client.crm.companies.basic_api.get_page(limit=10)
for c in companies.results:
    print(f'{c.properties.get(\"name\", \"Unknown\")} - {c.properties.get(\"domain\", \"\")}')
"

List deals:

python3 -c "
import os
from hubspot import HubSpot

client = HubSpot(access_token=os.environ['HUBSPOT_ACCESS_TOKEN'])
deals = client.crm.deals.basic_api.get_page(limit=10, properties=['dealname', 'amount', 'dealstage'])
for d in deals.results:
    print(f'{d.properties.get(\"dealname\", \"\")} - \${d.properties.get(\"amount\", \"0\")}')
"

See api-reference.md for complete patterns.

Weekly Installs
7
GitHub Stars
1
First Seen
Jan 24, 2026
Installed on
claude-code6
gemini-cli5
codex5
opencode5
antigravity4
trae3