jeremylongshore/claude-code-plugins-plus-skills
customerio-pack
plugins/saas-packs/customerio-pack/skills/customerio-upgrade-migration/SKILL.md
January 22, 2026
Select agents to install to:
npx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/main/plugins/saas-packs/customerio-pack/skills/customerio-upgrade-migration/SKILL.md -a claude-code --skill customerio-upgrade-migrationInstallation paths:
.claude/skills/customerio-upgrade-migration/# Customer.io Upgrade & Migration
## Overview
Plan and execute Customer.io SDK upgrades and migrations safely.
## Prerequisites
- Current SDK version identified
- Test environment available
- Rollback plan prepared
## Instructions
### Step 1: Assess Current State
```bash
#!/bin/bash
# assess-customerio.sh
echo "=== Customer.io SDK Assessment ==="
# Node.js SDK
echo "Node.js SDK:"
npm list @customerio/track 2>/dev/null || echo "Not installed"
npm list customerio-node 2>/dev/null || echo "Legacy SDK not installed"
# Python SDK
echo -e "\nPython SDK:"
pip show customerio 2>/dev/null || echo "Not installed"
# Check for latest versions
echo -e "\nLatest versions available:"
npm view @customerio/track version 2>/dev/null
pip index versions customerio 2>/dev/null | head -1
```
### Step 2: Review Breaking Changes
```markdown
## Customer.io SDK Changelog Review
### @customerio/track (Node.js)
- v1.x -> v2.x: Updated to ESM modules
- v2.x -> v3.x: Changed region configuration
### customerio (Python)
- v1.x -> v2.x: Async client support added
### API Changes
- Check https://customer.io/docs/changelog/
```
### Step 3: Create Migration Plan
```typescript
// migration-plan.ts
interface MigrationPlan {
currentVersion: string;
targetVersion: string;
breakingChanges: string[];
codeChanges: CodeChange[];
testCases: string[];
rollbackProcedure: string[];
timeline: Timeline;
}
const migrationPlan: MigrationPlan = {
currentVersion: '1.2.0',
targetVersion: '2.0.0',
breakingChanges: [
'Region now required in constructor',
'Event data structure changed',
'Error types updated'
],
codeChanges: [
{
file: 'lib/customerio.ts',
before: `new TrackClient(siteId, apiKey)`,
after: `new TrackClient(siteId, apiKey, { region: RegionUS })`
},
{
file: 'lib/customerio.ts',
before: `client.track(userId, eventName, data)`,
after: `client.track(userId, { name: eventName, data })`
}
],
testCases: [
'I