Agent skill
hubspot-upgrade-migration
Upgrade @hubspot/api-client SDK versions and migrate between API versions. Use when upgrading the HubSpot Node.js SDK, migrating from v1/v2 to v3 APIs, or handling breaking changes in the HubSpot API client. Trigger with phrases like "upgrade hubspot", "hubspot SDK update", "hubspot breaking changes", "migrate hubspot API version", "hubspot v3 migration".
Install this agent skill to your Project
npx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/tree/main/plugins/saas-packs/hubspot-pack/skills/hubspot-upgrade-migration
SKILL.md
HubSpot Upgrade & Migration
Overview
Guide for upgrading @hubspot/api-client SDK versions and migrating from legacy HubSpot APIs to the current CRM v3 API.
Prerequisites
- Current
@hubspot/api-clientinstalled - Git for version control
- Test suite available
- Staging environment for validation
Instructions
Step 1: Check Current Version and Available Updates
# Current version
npm list @hubspot/api-client
# Latest available
npm view @hubspot/api-client version
# See changelog
npm view @hubspot/api-client versions --json | tail -10
Step 2: Review Breaking Changes
Key breaking changes in @hubspot/api-client:
| Version | Breaking Change | Migration |
|---|---|---|
| v11 -> v12 | Association APIs moved to v4 namespace | client.crm.associations.v4.basicApi |
| v10 -> v11 | Batch API input format changed | Wrap inputs in { inputs: [...] } |
| v9 -> v10 | apiKey auth removed (API keys deprecated) |
Use accessToken only |
| v8 -> v9 | TypeScript strict types on all methods | Update type imports |
Step 3: Create Upgrade Branch and Update
git checkout -b chore/upgrade-hubspot-api-client
npm install @hubspot/api-client@latest
npm test
Step 4: Common Migration Patterns
API Key to Access Token (v9 -> v10+)
// BEFORE (deprecated -- API keys removed in v10)
const client = new hubspot.Client({ apiKey: 'your-api-key' });
// AFTER (use private app access token)
const client = new hubspot.Client({
accessToken: process.env.HUBSPOT_ACCESS_TOKEN!,
});
Associations v3 to v4 (v11 -> v12+)
// BEFORE (v3 associations)
await client.crm.contacts.associationsApi.create(
contactId, 'companies', companyId, 'contact_to_company'
);
// AFTER (v4 associations)
await client.crm.associations.v4.basicApi.create(
'contacts', contactId, 'companies', companyId,
[{ associationCategory: 'HUBSPOT_DEFINED', associationTypeId: 1 }]
);
Legacy Contact API to CRM v3
// BEFORE (legacy /contacts/v1/)
const response = await fetch(
`https://api.hubapi.com/contacts/v1/contact/email/${email}/profile`,
{ headers: { Authorization: `Bearer ${token}` } }
);
// AFTER (CRM v3 search)
const result = await client.crm.contacts.searchApi.doSearch({
filterGroups: [{
filters: [{ propertyName: 'email', operator: 'EQ', value: email }],
}],
properties: ['firstname', 'lastname', 'email'],
limit: 1,
after: 0,
sorts: [],
});
const contact = result.results[0];
Legacy Deals API to CRM v3
// BEFORE (legacy /deals/v1/)
const response = await fetch(
`https://api.hubapi.com/deals/v1/deal/${dealId}`,
{ headers: { Authorization: `Bearer ${token}` } }
);
// AFTER (CRM v3)
const deal = await client.crm.deals.basicApi.getById(
dealId,
['dealname', 'amount', 'dealstage', 'pipeline', 'closedate']
);
Step 5: Validate and Deploy
# Run full test suite
npm test
# Run integration tests against test account
HUBSPOT_TEST=true npm run test:integration
# If tests pass, merge
git add package.json package-lock.json src/
git commit -m "chore: upgrade @hubspot/api-client to vX.Y.Z"
Output
- Updated SDK version in package.json
- Migrated breaking changes (auth, associations, types)
- All tests passing
- Documented rollback procedure
Error Handling
| Issue | Cause | Solution |
|---|---|---|
apiKey is not a valid option |
SDK v10+ removed API keys | Switch to accessToken |
associationsApi is not a function |
Associations moved to v4 | Use associations.v4.basicApi |
| Type errors after upgrade | Stricter TypeScript types | Update imports from lib/codegen/crm/ |
Cannot find module |
SDK restructured exports | Check the npm package README for new imports |
Examples
Rollback Procedure
# If upgrade causes issues
npm install @hubspot/api-client@PREVIOUS_VERSION --save-exact
npm test
git commit -am "revert: rollback @hubspot/api-client to vPREVIOUS"
Check for Deprecated API Usage
# Search for legacy API endpoints in codebase
grep -rn "contacts/v1\|deals/v1\|companies/v2\|engagements/v1" src/
grep -rn "apiKey:" src/ # deprecated auth method
grep -rn "associationsApi\." src/ # may need v4 migration
Resources
Next Steps
For CI integration during upgrades, see hubspot-ci-integration.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
dockerfile-generator
Dockerfile Generator - Auto-activating skill for DevOps Basics. Triggers on: dockerfile generator, dockerfile generator Part of the DevOps Basics skill category.
branch-naming-helper
Branch Naming Helper - Auto-activating skill for DevOps Basics. Triggers on: branch naming helper, branch naming helper Part of the DevOps Basics skill category.
readme-generator
Readme Generator - Auto-activating skill for DevOps Basics. Triggers on: readme generator, readme generator Part of the DevOps Basics skill category.
makefile-generator
Makefile Generator - Auto-activating skill for DevOps Basics. Triggers on: makefile generator, makefile generator Part of the DevOps Basics skill category.
gitignore-generator
Gitignore Generator - Auto-activating skill for DevOps Basics. Triggers on: gitignore generator, gitignore generator Part of the DevOps Basics skill category.
pre-commit-hook-setup
Pre Commit Hook Setup - Auto-activating skill for DevOps Basics. Triggers on: pre commit hook setup, pre commit hook setup Part of the DevOps Basics skill category.
Didn't find tool you were looking for?