Agent Skills: Salesforce Production Checklist

|

UncategorizedID: jeremylongshore/claude-code-plugins-plus-skills/salesforce-prod-checklist

Install this agent skill to your local

pnpm dlx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/tree/HEAD/plugins/saas-packs/salesforce-pack/skills/salesforce-prod-checklist

Skill Files

Browse the full folder contents for salesforce-prod-checklist.

Download Skill

Loading file tree…

plugins/saas-packs/salesforce-pack/skills/salesforce-prod-checklist/SKILL.md

Skill Metadata

Name
salesforce-prod-checklist
Description
|

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 https://login.salesforce.com (not 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, REQUEST_LIMIT_EXCEEDED, etc.)
  • [ ] 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.