Claude-code-plugins-plus-skills salesforce-prod-checklist
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/salesforce-pack/skills/salesforce-prod-checklist" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-salesforce-prod-checklist && rm -rf "$T"
manifest:
plugins/saas-packs/salesforce-pack/skills/salesforce-prod-checklist/SKILL.mdsource content
Salesforce Production Checklist
Overview
Complete checklist for deploying Salesforce integrations to production, including sandbox validation, API limit planning, and rollback procedures.
Prerequisites
- Staging/sandbox environment tested and verified
- Production Connected App configured
- Dedicated integration user in production
- Monitoring and alerting ready
Instructions
Pre-Deployment Configuration
- Production Connected App has minimum OAuth scopes (not
)full - Dedicated integration user with restricted profile (not admin)
- SF_LOGIN_URL set to
(nothttps://login.salesforce.com
)test.salesforce.com - All credentials stored in vault/secrets manager (not env files)
- IP restrictions configured on Connected App and user profile
- JWT certificate uploaded (if using JWT Bearer flow)
API Limit Planning
- Estimated daily API calls documented
- API limit headroom > 20% (
)GET /services/data/v59.0/limits/ - Bulk API used for operations > 200 records
- Composite API used for multi-object transactions
- sObject Collections used for batch CRUD (max 200/call)
- Caching implemented for describe/metadata calls
Code Quality
- All SOQL queries use parameterized filters (no injection)
- Error handling covers Salesforce error codes (
,INVALID_FIELD
, etc.)REQUEST_LIMIT_EXCEEDED - Retry logic implemented for transient errors (
,UNABLE_TO_LOCK_ROW
)SERVER_UNAVAILABLE - No hardcoded Salesforce IDs (use External IDs or SOQL lookups)
- Connection auto-refreshes expired tokens
- Logging redacts PII and credentials
Sandbox Validation
# Test in Full sandbox first (mirrors production data) # 1. Deploy to sandbox sf project deploy start --target-org my-sandbox # 2. Run integration tests against sandbox SF_LOGIN_URL=https://test.salesforce.com npm run test:integration # 3. Verify API limits are within budget sf limits api display --target-org my-sandbox --json | jq '.result[] | select(.name == "DailyApiRequests")' # 4. Check Apex test results sf apex run test --target-org my-sandbox --result-format human --code-coverage
Health Check Endpoint
async function salesforceHealthCheck(): Promise<{ status: 'healthy' | 'degraded' | 'unhealthy'; details: Record<string, any>; }> { const conn = await getConnection(); const start = Date.now(); try { const [identity, limits] = await Promise.all([ conn.identity(), conn.request('/services/data/v59.0/limits/'), ]); const apiUsagePercent = ((limits.DailyApiRequests.Max - limits.DailyApiRequests.Remaining) / limits.DailyApiRequests.Max) * 100; return { status: apiUsagePercent > 90 ? 'degraded' : 'healthy', details: { connected: true, latencyMs: Date.now() - start, instance: conn.instanceUrl, apiRemaining: limits.DailyApiRequests.Remaining, apiUsagePercent: Math.round(apiUsagePercent), }, }; } catch (error: any) { return { status: 'unhealthy', details: { connected: false, error: error.message, latencyMs: Date.now() - start }, }; } }
Deployment Steps
# 1. Pre-flight: check Salesforce system status curl -s https://api.status.salesforce.com/v1/incidents/active | jq 'length' # 2. Verify production API limits sf limits api display --target-org production --json # 3. Deploy metadata (if applicable) sf project deploy start --target-org production --dry-run # Validate first sf project deploy start --target-org production # Then deploy # 4. Verify health check curl -sf https://yourapp.com/health | jq '.services.salesforce' # 5. Monitor error rates for 30 minutes after deploy
Rollback Procedure
# Metadata rollback sf project deploy start --target-org production --metadata-dir rollback/ # Integration rollback: revert to previous version # Feature flag: disable Salesforce integration without redeploying SF_INTEGRATION_ENABLED=false
Error Handling
| Alert | Condition | Severity |
|---|---|---|
| API Limit Warning | > 80% daily limit used | P3 |
| API Limit Critical | > 95% daily limit used | P1 |
| Auth Failure | INVALID_SESSION_ID errors | P1 |
| SOQL Errors | MALFORMED_QUERY or INVALID_FIELD | P2 |
| Record Lock | UNABLE_TO_LOCK_ROW spikes | P3 |
Resources
Next Steps
For version upgrades, see
salesforce-upgrade-migration.