Salesforce upgrade migration
Skill jeremylongshore/claude-code-plugins-plus-skills/skills/.curated/salesforce-upgrade-migration
425 plugins, 2,810 skills, 200 agents for Claude Code. Open-source marketplace at tonsofskills.com with the ccpi CLI package manager.
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill salesforce-upgrade-migrationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
'Analyze, plan, and execute Salesforce API version upgrades and jsforce major version migrations.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.3 KB, as published. Nobody here has run it
Salesforce Upgrade & Migration
Overview
Guide for upgrading Salesforce API versions (v55.0 to v59.0+), migrating between jsforce major versions, and handling Salesforce seasonal release changes.
Prerequisites
- Current jsforce or simple-salesforce installed
- Git for version control
- Test suite with Salesforce integration tests
- Sandbox environment for validation
Instructions
Step 1: Check Current Versions
# jsforce version
npm list jsforce
# Current API version in use
node -e "const jsforce = require('jsforce'); const c = new jsforce.Connection({}); console.log('Default API version:', c.version)"
# Available API versions from your org
sf org display --target-org my-org --json | jq '.result.apiVersion'
Step 2: Salesforce API Version Changes
| API Version | Release | Key Changes |
|---|---|---|
| v59.0 | Winter '24 | Composite Graph improvements, Einstein AI endpoints |
| v58.0 | Summer '23 | Enhanced Bulk API 2.0, Flow API updates |
| v57.0 | Spring '23 | SOQL TYPEOF improvements, new standard fields |
| v56.0 | Winter '23 | sObject Collections batch size changes |
| v55.0 | Summer '22 | Retirement of old SOAP API features |
Salesforce retires API versions periodically. Versions older than 3 years are typically deprecated. Check Salesforce Release Notes each season.
Step 3: jsforce Major Version Migration
// jsforce v1.x → v2.x/v3.x migration
// Key breaking changes:
// BEFORE (v1.x): Callback-based
import jsforce from 'jsforce';
const conn = new jsforce.Connection();
conn.login(username, password, (err, userInfo) => {
conn.query('SELECT Id FROM Account', (err, result) => {});
});
// AFTER (v2.x+): Promise-based (still supports callbacks)
import jsforce from 'jsforce';
const conn = new jsforce.Connection();
await conn.login(username, password);
const result = await conn.query('SELECT Id FROM Account');
// BEFORE (v1.x): Bulk API v1
const job = conn.bulk.createJob('Account', 'insert');
const batch = job.createBatch();
// AFTER (v2.x+): Bulk API 2.0
const results = await conn.bulk2.loadAndWaitForResults({
object: 'Account',
operation: 'insert',
input: csvData,
});
Step 4: Update API Version in Code
// Pin API version explicitly (recommended for stability)
const conn = new jsforce.Connection({
loginUrl: process.env.SF_LOGIN_URL,
version: '59.0', // Pin to specific version
});
// Or use latest (auto-detected from org)
const conn = new jsforce.Connection({
loginUrl: process.env.SF_LOGIN_URL,
// version defaults to org's latest
});
Step 5: Create Upgrade Branch and Test
# Create upgrade branch
git checkout -b upgrade/jsforce-v3
# Upgrade jsforce
npm install jsforce@latest
# Run tests against sandbox
SF_LOGIN_URL=https://test.salesforce.com npm test
# Check for deprecation warnings
npm test 2>&1 | grep -i "deprecat"
# If tests pass, merge
Step 6: Handle Seasonal Release Breaking Changes
// Salesforce releases 3 times/year (Spring, Summer, Winter)
// Check release notes for:
// 1. Retired API versions
// 2. Changed field behavior (e.g., field becoming read-only)
// 3. New required fields on standard objects
// 4. Permission model changes
// Query org's supported API versions
const versions = await conn.request('/services/data/');
console.log('Supported versions:', versions.map((v: any) => v.version));
// If your pinned version isn't listed, you must upgrade
Output
- Updated jsforce/simple-salesforce to latest
- API version pinned to current stable release
- Breaking changes identified and resolved
- Test suite passing against sandbox
- Rollback procedure documented
Error Handling
| Error | Cause | Solution |
|---|---|---|
UNSUPPORTED_API_VERSION | API version retired | Upgrade version string in Connection |
INVALID_FIELD after upgrade | Field removed in new version | Check release notes for field changes |
MODULE_NOT_FOUND | Import path changed in jsforce v3 | Update import statements |
| Bulk API errors | v1 vs v2 API mismatch | Migrate to conn.bulk2 methods |
Resources
Next Steps
For CI integration during upgrades, see salesforce-ci-integration.