Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Execute production readiness checklist for Clay integrations. Use when launching Clay-powered enrichment pipelines, preparing for go-live, or auditing production Clay configurations. Trigger with phrases like "clay production", "clay go-live", "clay launch checklist", "clay production readiness", "deploy clay pipeline".
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 43% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 120% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 39% | 0% |
Complete checklist for launching Clay enrichment pipelines in production. Covers table configuration, credit budgeting, webhook reliability, CRM sync validation, and monitoring setup.
typescript// 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 |
bash# 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 |
For version upgrades, see clay-upgrade-migration.
Other measured skills in the registry, with their headline benchmark lift.