with one click
hubspot
Manage HubSpot contacts, companies, deals and pipelines via CRM API
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Manage HubSpot contacts, companies, deals and pipelines via CRM API
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Manage Cloudflare zones, DNS records, Workers, Pages and cache via API
Manage Cloudinary media assets, transformations and upload via REST API
Monitor infrastructure, query metrics, manage monitors and events via Datadog API
Manage DigitalOcean droplets, domains, databases, apps and volumes via API v2
Manage Firebase projects, Firestore, Auth users and Hosting via REST API
Manage Intercom conversations, contacts, articles and help center via REST API
| name | hubspot |
| description | Manage HubSpot contacts, companies, deals and pipelines via CRM API |
| user-invocable | true |
| argument-hint | ["contact name","company or deal"] |
Connect to HubSpot CRM to manage contacts, companies, deals, pipelines and more. Pure Ruby, zero gems — stdlib only.
scripts/
├── auth.rb # Bearer token auth + hubspot_request helper (required by all scripts)
├── check_setup.rb # Check if token exists (outputs OK or SETUP_NEEDED)
├── save_token.rb # Save and validate a private app token
├── contacts.rb # List contacts
├── contact.rb # Get contact details
├── create_contact.rb # Create a contact
├── update_contact.rb # Update a contact
├── companies.rb # List companies
├── company.rb # Get company details
├── deals.rb # List deals
├── deal.rb # Get deal details
├── create_deal.rb # Create a deal
├── search.rb # Search CRM objects (contacts, companies, deals, tickets)
├── pipelines.rb # List pipelines and stages
├── owners.rb # List owners
└── notes.rb # List notes for a contact, company or deal
ruby ~/.claude/skills/hubspot/scripts/check_setup.rb
If the output is OK, proceed to the Flow section.
If the output is SETUP_NEEDED, guide the user step by step. Present ONE step at a time, wait for the user to confirm before moving to the next.
Step 1 — Ask the user to create a private app token:
You need a HubSpot private app access token.
- Go to Settings > Integrations > Private Apps in your HubSpot account
- Or open: https://app.hubspot.com/private-apps/
- Click Create a private app, give it a name (e.g. "hitank")
- Under Scopes, select:
crm.objects.contacts.read,crm.objects.contacts.write,crm.objects.companies.read,crm.objects.companies.write,crm.objects.deals.read,crm.objects.deals.write,crm.objects.owners.read- Click Create app and copy the access token
Paste the token here.
Step 2 — When the user pastes the token, save it:
ruby ~/.claude/skills/hubspot/scripts/save_token.rb 'PASTED_TOKEN'
If the script outputs an error, the token is invalid. Ask the user to double-check and try again.
If setup is not complete, DO NOT proceed to the Flow. Complete all steps first.
The argument $ARGUMENTS may contain a contact name, company or deal reference.
Start by listing contacts, companies or deals based on what the user needs:
ruby ~/.claude/skills/hubspot/scripts/contacts.rb
ruby ~/.claude/skills/hubspot/scripts/companies.rb
ruby ~/.claude/skills/hubspot/scripts/deals.rb
If $ARGUMENTS contains a name or keyword, search for it:
ruby ~/.claude/skills/hubspot/scripts/search.rb contacts "search query"
ruby ~/.claude/skills/hubspot/scripts/contact.rb CONTACT_ID
ruby ~/.claude/skills/hubspot/scripts/company.rb COMPANY_ID
ruby ~/.claude/skills/hubspot/scripts/deal.rb DEAL_ID
Search CRM objects:
ruby ~/.claude/skills/hubspot/scripts/search.rb contacts "john"
ruby ~/.claude/skills/hubspot/scripts/search.rb companies "acme"
ruby ~/.claude/skills/hubspot/scripts/search.rb deals "enterprise"
Create a contact (requires user confirmation):
ruby ~/.claude/skills/hubspot/scripts/create_contact.rb "email@example.com" --firstname John --lastname Doe --company "Acme"
Update a contact (requires user confirmation):
ruby ~/.claude/skills/hubspot/scripts/update_contact.rb CONTACT_ID '{"phone":"+5511999999999","company":"Acme"}'
Create a deal (requires user confirmation):
ruby ~/.claude/skills/hubspot/scripts/create_deal.rb "Deal Name" --stage appointmentscheduled --amount 5000 --closedate 2026-12-31
List pipelines and stages:
ruby ~/.claude/skills/hubspot/scripts/pipelines.rb
ruby ~/.claude/skills/hubspot/scripts/pipelines.rb tickets
List owners:
ruby ~/.claude/skills/hubspot/scripts/owners.rb
List notes:
ruby ~/.claude/skills/hubspot/scripts/notes.rb contacts CONTACT_ID
ruby ~/.claude/skills/hubspot/scripts/notes.rb deals DEAL_ID
Pagination — use --after CURSOR to paginate through results:
ruby ~/.claude/skills/hubspot/scripts/contacts.rb --limit 20 --after CURSOR_VALUE
~/.config/hubspot/token (outside the repo, never commit)https://api.hubapi.com