> clay-prod-checklist

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".

fetch
$curl "https://skillshub.wtf/jeremylongshore/claude-code-plugins-plus-skills/clay-prod-checklist?format=md"
SKILL.mdclay-prod-checklist

Clay Production Checklist

Overview

Complete checklist for launching Clay enrichment pipelines in production. Covers table configuration, credit budgeting, webhook reliability, CRM sync validation, and monitoring setup.

Prerequisites

  • Clay table tested with sample data (100+ rows enriched successfully)
  • CRM integration tested in staging
  • Credit budget approved for monthly volume
  • Team trained on Clay table management

Instructions

Phase 1: Table Configuration

  • Table schema finalized -- all columns named, typed, and ordered
  • Enrichment columns configured -- each column has correct provider and input mapping
  • Waterfall configured -- providers ordered cheapest-first with "stop on first result"
  • Auto-run settings verified -- table-level auto-update ON, column-level auto-run ON for needed columns
  • Conditional run rules set -- enrichments only trigger when input data exists
  • Formula columns tested -- ICP scoring and lead grading formulas validated
  • AI/Claygent columns reviewed -- prompts produce consistent, quality output

Phase 2: Data Quality Gates

  • Input validation in place -- scripts validate data before webhook submission
  • Personal email filter -- gmail.com, yahoo.com, etc. blocked from enrichment
  • Deduplication active -- duplicate records detected before sending to Clay
  • Sample enrichment run completed -- 500+ row test with >60% email find rate
  • Credit cost per row calculated -- know your average credits per enriched lead
// 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 };
}

Phase 3: Credit & Cost Controls

  • Monthly credit budget set -- know your plan's monthly credits
  • Table row limits configured -- max rows set to prevent runaway enrichment
  • Provider API keys connected -- own keys for high-volume providers (saves 70-80%)
  • Credit burn monitoring -- alerts when daily usage exceeds threshold
  • Webhook submission counter -- tracking against 50K lifetime limit
PlanMonthly CreditsActionsHTTP APIWebhook Limit
Launch2,50015,000No50K/webhook
Growth6,00040,000Yes50K/webhook
EnterpriseCustomCustomYes50K/webhook

Phase 4: Integration Reliability

  • Webhook endpoint health check -- Clay can reach your callback URL
  • Retry logic implemented -- 429 and 5xx responses handled with backoff
  • CRM sync tested -- enriched records correctly map to CRM objects
  • HTTP API columns tested -- outbound API calls return expected data
  • Error handling for empty enrichments -- graceful handling when providers return no data
# 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"

Phase 5: Monitoring & Alerting

  • Credit consumption tracked -- daily/weekly credit usage logged
  • Enrichment hit rate monitored -- alert if email find rate drops below 40%
  • Webhook delivery failures alerted -- notification on 4xx/5xx from webhooks
  • CRM sync errors tracked -- alert on failed CRM pushes
  • Table row count monitored -- alert when approaching plan limits

Phase 6: Documentation & Runbooks

  • Table schema documented -- column purposes, providers, and dependencies
  • Credit cost model documented -- expected cost per lead at current volume
  • Webhook rotation procedure -- steps to replace exhausted webhook (50K limit)
  • Provider failover plan -- what to do when a provider is down
  • On-call escalation path -- who to contact for Clay issues

Error Handling

AlertConditionAction
Credit balance low< 500 credits remainingPause enrichments, add credits or connect own keys
Email find rate drop< 40% for 2+ hoursCheck input data quality, review provider status
Webhook 429s> 5 per hourReduce submission rate, check plan limits
CRM sync failures> 10 per batchCheck CRM field mapping, verify API key

Resources

Next Steps

For version upgrades, see clay-upgrade-migration.

┌ stats

installs/wk0
░░░░░░░░░░
github stars1.7K
██████████
first seenMar 23, 2026
└────────────

┌ repo

jeremylongshore/claude-code-plugins-plus-skills
by jeremylongshore
└────────────