Install
openclaw skills install hubspot-suiteComprehensive HubSpot CRM, Marketing, Sales, Service, and CMS management suite. Covers all HubSpot APIs: CRM objects (contacts, companies, deals, tickets, custom objects), associations, properties, engagements (calls, emails, meetings, notes, tasks), workflows & automation, lists, forms, email marketing, reporting & analytics, data quality & dedup, import/export, webhooks, pipelines, owners, CMS content, conversations, and commerce. Supports both Private App (API key) authentication and the new HubSpot Developer Platform (CLI-based apps). Use for ANY HubSpot-related task including CRM management, marketing automation, sales pipeline management, data migration, reporting, data quality audits, or HubSpot administration.
openclaw skills install hubspot-suiteThe ultimate HubSpot skill covering ALL aspects of the platform: CRM, Marketing, Sales, Service, CMS, and Developer tools.
# Private App (Recommended)
export HUBSPOT_ACCESS_TOKEN="pat-na1-xxx" # or pat-eu1-xxx
# Legacy API Key
export HUBSPOT_API_KEY="your-api-key"
See references/auth-setup.md for complete authentication guide including new Developer Platform.
curl -H "Authorization: Bearer $HUBSPOT_ACCESS_TOKEN" \
"https://api.hubapi.com/crm/v3/objects/contacts?limit=1"
CRM Management:
references/crm-contacts.md → Create, update, search contactsreferences/crm-companies.md → Company records, hierarchiesreferences/crm-deals.md → Sales pipeline, deal stagesreferences/crm-tickets.md → Support tickets, SLA managementreferences/crm-custom-objects.md → Custom object schemasData & Associations:
references/associations.md → Link records (contact→company, deal→contact)references/properties.md → Custom properties, field groupsreferences/data-quality.md → Deduplication, data cleanupreferences/import-export.md → Bulk data migrationActivities & Automation:
references/engagements.md → Log calls, emails, meetings, tasksreferences/workflows.md → Automation, triggers, enrollmentreferences/pipelines.md → Configure pipelines, stagesMarketing & Sales:
references/lists.md → Contact lists, segmentationreferences/forms.md → Landing page formsreferences/email-marketing.md → Email campaignsreferences/conversations.md → Live chat, chatbotsAnalytics & Reporting:
references/reporting.md → Custom dashboards, KPIsreferences/webhooks.md → Real-time event notificationsContent & Commerce:
references/cms.md → Website pages, blog posts, HubDBreferences/commerce.md → Products, quotes, invoicesPlatform & Development:
references/developer-platform.md → HubSpot CLI, custom appsreferences/owners.md → User management, permissionsreferences/knowledge-base-tips.md → UI navigation, admin tasks./scripts/bulk-import.sh contacts contacts.csv
./scripts/find-duplicates.sh contacts email
./scripts/merge-records.sh contacts ID1 ID2
# Create deal
curl -X POST "https://api.hubapi.com/crm/v3/objects/deals" \
-H "Authorization: Bearer $HUBSPOT_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"properties": {
"dealname": "Big Deal",
"amount": "50000",
"dealstage": "qualifiedtobuy"
}
}'
# Associate to contact (type 3 = deal→contact)
curl -X PUT "https://api.hubapi.com/crm/v3/objects/deals/DEAL_ID/associations/contacts/CONTACT_ID/3" \
-H "Authorization: Bearer $HUBSPOT_ACCESS_TOKEN"
./scripts/data-audit.sh
./scripts/pipeline-report.sh > pipeline_report.csv
# Log a sales call
curl -X POST "https://api.hubapi.com/crm/v3/objects/calls" \
-H "Authorization: Bearer $HUBSPOT_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"properties": {
"hs_call_title": "Discovery Call",
"hs_call_duration": "1800000",
"hs_call_disposition": "Connected"
},
"associations": [{
"to": { "id": "CONTACT_ID" },
"types": [{ "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 194 }]
}]
}'
All scripts are in scripts/ directory. Make executable first:
chmod +x scripts/*.sh
Universal API Helper:
./scripts/hs-api.sh GET /crm/v3/objects/contacts
./scripts/hs-api.sh POST /crm/v3/objects/companies '{"properties":{"name":"ACME"}}'
Data Management:
./scripts/bulk-import.sh [object-type] [csv-file]
./scripts/bulk-export.sh [object-type] [output-file]
./scripts/find-duplicates.sh [object-type] [property]
./scripts/merge-records.sh [object-type] [primary-id] [duplicate-id]
Reports & Analytics:
./scripts/data-audit.sh > audit-report.txt
./scripts/pipeline-report.sh > pipeline-analysis.csv
All list endpoints use after parameter:
curl "https://api.hubapi.com/crm/v3/objects/contacts?after=12345&limit=100"
-H "Authorization: Bearer $HUBSPOT_ACCESS_TOKEN"
-H "Content-Type: application/json"
curl -X POST "https://api.hubapi.com/crm/v3/objects/contacts/batch/create" \
-H "Authorization: Bearer $HUBSPOT_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"inputs": [
{"properties": {"firstname": "John", "lastname": "Doe"}},
{"properties": {"firstname": "Jane", "lastname": "Smith"}}
]
}'
{
"filters": [{
"propertyName": "email",
"operator": "EQ",
"value": "john@example.com"
}]
}
curl -X POST "https://api.hubapi.com/crm/v3/objects/contacts/search" \
-H "Authorization: Bearer $HUBSPOT_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filters": [{
"propertyName": "createdate",
"operator": "GTE",
"value": "2024-01-01"
}],
"sorts": [{"propertyName": "createdate", "direction": "DESCENDING"}],
"limit": 100
}'
Set these in your shell/environment:
# Required
export HUBSPOT_ACCESS_TOKEN="pat-na1-xxx" # Private app token
# Optional
export HUBSPOT_API_KEY="xxx" # Legacy API key
export HUBSPOT_PORTAL_ID="12345" # For some API calls
export HUBSPOT_BASE_URL="https://api.hubapi.com" # Override for testing
references/rate-limits.md and references/search-filters.mdreferences/auth-setup.mdreferences/knowledge-base-tips.mdreferences/data-quality.mdreferences/crm-*.md fileThis skill covers the entire HubSpot platform. Start with the reference file that matches your task, then use the scripts to automate repetitive operations.