| name | customerio-prod-checklist |
| description | Execute Customer.io production deployment checklist.
Use when preparing for production launch, reviewing
integration quality, or performing pre-launch audits.
Trigger with phrases like "customer.io production", "customer.io checklist",
"deploy customer.io", "customer.io go-live".
|
| allowed-tools | Read, Grep, Bash(curl:*) |
| version | 1.0.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
Customer.io Production Checklist
Overview
Comprehensive checklist for deploying Customer.io integrations to production.
Prerequisites
- Customer.io integration complete
- Access to production credentials
- Testing completed in staging environment
Pre-Production Checklist
1. Credentials & Configuration
echo "Checking credentials..."
[ -n "$CUSTOMERIO_SITE_ID" ] && echo "Site ID: OK" || echo "Site ID: MISSING"
[ -n "$CUSTOMERIO_API_KEY" ] && echo "API Key: OK" || echo "API Key: MISSING"
echo "Region: ${CUSTOMERIO_REGION:-us}"
Checklist:
2. Integration Quality
async function auditIntegration(): Promise<AuditResult> {
const results: AuditResult = {
passed: [],
warnings: [],
failures: []
};
return results;
}
Checklist:
3. Campaign Configuration
In Customer.io Dashboard:
4. Deliverability
Checklist:
5. Monitoring & Alerting
import { metrics } from './metrics';
const customerIOMetrics = {
'customerio.api.latency': 'histogram',
'customerio.api.errors': 'counter',
'customerio.api.rate_limited': 'counter',
'customerio.email.sent': 'counter',
'customerio.email.delivered': 'counter',
'customerio.email.bounced': 'counter',
'customerio.email.complained': 'counter',
'customerio.users.identified': 'counter',
'customerio.events.tracked': 'counter'
};
const alertThresholds = {
'api_error_rate': { threshold: 0.01, window: '5m' },
'bounce_rate': { threshold: 0.05, window: '1h' },
'complaint_rate': { threshold: 0.001, window: '1h' },
'delivery_latency_p99': { threshold: 5000, window: '5m' }
};
Checklist:
6. Testing & Validation
#!/bin/bash
echo "Running production smoke tests..."
curl -s -o /dev/null -w "%{http_code}" \
-X POST "https://track.customer.io/api/v1/customers/smoke-test-$(date +%s)" \
-u "$CUSTOMERIO_SITE_ID:$CUSTOMERIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email":"smoketest@example.com","_test":true}' | grep -q "200" && \
echo "API: OK" || echo "API: FAILED"
curl -s -o /dev/null -w "%{http_code}" \
-X POST "https://track.customer.io/api/v1/customers/smoke-test/events" \
-u "$CUSTOMERIO_SITE_ID:$CUSTOMERIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"smoke_test","data":{"timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"}}' | grep -q "200" && \
echo "Events: OK" || echo "Events: FAILED"
echo "Smoke tests complete"
Checklist:
7. Documentation & Runbooks
Checklist:
8. Rollback Plan
const rollbackPlan = {
trigger: 'Error rate > 5% or delivery rate < 90%',
steps: [
'1. Disable new user identify calls',
'2. Pause triggered campaigns',
'3. Switch to backup messaging provider (if available)',
'4. Notify stakeholders',
'5. Investigate root cause',
'6. Fix and redeploy',
'7. Resume campaigns with reduced volume',
'8. Monitor closely for 24 hours'
],
contacts: {
engineering: 'engineering@company.com',
customerio_support: 'support@customer.io',
escalation: 'oncall@company.com'
}
};
Checklist:
Production Checklist Summary
| Category | Status | Notes |
|---|
| Credentials | [ ] | Prod keys in secrets manager |
| Integration | [ ] | Code reviewed and tested |
| Campaigns | [ ] | All campaigns production-ready |
| Deliverability | [ ] | Domain authenticated |
| Monitoring | [ ] | Alerts configured |
| Testing | [ ] | All tests passing |
| Documentation | [ ] | Runbooks complete |
| Rollback | [ ] | Plan documented |
Go-Live Procedure
- T-24h: Final staging validation
- T-12h: Production smoke tests
- T-1h: Enable integration with feature flag
- T-0: Go live with 10% traffic
- T+1h: Verify metrics, increase to 50%
- T+2h: Full traffic if healthy
- T+24h: Post-launch review
Resources
Next Steps
After production launch, proceed to customerio-upgrade-migration for SDK maintenance.