Execute Clay production deployment checklist and rollback procedures. Use when deploying Clay integrations to production, preparing for launch, or implementing go-live procedures. Trigger with...
Complete checklist for launching Clay enrichment pipelines in production. Covers table configuration, credit budgeting, webhook reliability, CRM sync validation, and monitoring setup.
// Pre-submission validation (run before pushing to Clay)
function validateForProduction(rows: any[]): { valid: any[]; rejected: any[] } {
const personalDomains = ['gmail.com', 'yahoo.com', 'hotmail.com', 'outlook.com', 'icloud.com'];
const seen = new Set<string>();
const valid: any[] = [];
const rejected: any[] = [];
for (const row of rows) {
const key = `${row.domain}:${row.first_name}:${row.last_name}`.toLowerCase();
if (!row.domain?.includes('.'))
rejected.push({ row, reason: 'invalid domain' });
else if (personalDomains.some(d => row.domain.endsWith(d)))
rejected.push({ row, reason: 'personal email domain' });
else if (seen.has(key))
rejected.push({ row, reason: 'duplicate' });
else {
seen.add(key);
valid.push(row);
}
}
console.log(`Validation: ${valid.length} valid, ${rejected.length} rejected (${(rejected.length / rows.length * 100).toFixed(1)}% filtered)`);
return { valid, rejected };
}
| Plan | Monthly Credits | Actions | HTTP API | Webhook Limit |
|---|---|---|---|---|
| Launch | 2,500 | 15,000 | No | 50K/webhook |
| Growth | 6,000 | 40,000 | Yes | 50K/webhook |
| Enterprise | Custom | Custom | Yes | 50K/webhook |
# Pre-flight connectivity checks
echo "=== Clay Production Pre-flight ==="
# 1. Webhook reachable
curl -s -o /dev/null -w "Webhook: HTTP %{http_code}\n" \
-X POST "$CLAY_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{"_preflight": true}'
# 2. Enterprise API (if applicable)
if [ -n "${CLAY_API_KEY:-}" ]; then
curl -s -o /dev/null -w "Enterprise API: HTTP %{http_code}\n" \
-X POST "https://api.clay.com/v1/people/enrich" \
-H "Authorization: Bearer $CLAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "test@example.com"}'
fi
# 3. Callback endpoint reachable
curl -s -o /dev/null -w "Callback endpoint: HTTP %{http_code}\n" \
"https://your-app.com/api/health"
| Alert | Condition | Action |
|---|---|---|
| Credit balance low | < 500 credits remaining | Pause enrichments, add credits or connect own keys |
| Email find rate drop | < 40% for 2+ hours | Check input data quality, review provider status |
| Webhook 429s | > 5 per hour | Reduce submission rate, check plan limits |
| CRM sync failures | > 10 per batch | Check CRM field mapping, verify API key |
Create a production-readiness record that ties each required control to an owner, redacted evidence, approval, validation time, and tested rollback. It must name the currently certified table/CRM state and must not contain live credentials, raw lead records, webhook URLs, or unapproved provider output.
Before enabling a production table, run a protected preflight with a synthetic row, verify budget alerts, deduplication, callback health, and CRM suppression conditions, then attach the results to the change record. If any alert or rollback test fails, keep automation disabled and restore the last certified configuration.
For version upgrades, see clay-upgrade-migration.