hubspot
Installation
SKILL.md
HubSpot CRM Client
First: Check Prerequisites
Step 1: Check Python
python3 --version 2>/dev/null || echo "NOT_INSTALLED"
If NOT installed:
- macOS:
brew install python3 - Windows: Download from https://python.org
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:
- Go to HubSpot → Settings (gear icon)
- Navigate to Integrations → Private Apps
- Click Create a private app
- Name it "Claude Assistant"
- Go to Scopes tab and select:
crm.objects.contacts.readcrm.objects.companies.readcrm.objects.deals.readcrm.objects.owners.read- (add write scopes only if needed)
- Click Create app → Continue Creating → Show token
- Copy the access token
Then set it:
echo 'export HUBSPOT_ACCESS_TOKEN="pat-na1-xxxxxxxx"' >> ~/.zshrc source ~/.zshrcRestart 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.
Related skills
More from asu-le/claude-plugins
airtable
Access Airtable bases, tables, and records. Use when user mentions Airtable, bases, tables, records, or spreadsheet data. Uses Python pyairtable library for clean, reliable access.
24salesforce
Access Salesforce CRM to view accounts, contacts, leads, opportunities, and custom objects. Use when user mentions Salesforce, CRM, accounts, contacts, leads, opportunities, or sales data. Uses Python simple-salesforce library for reliable access.
8