writing-skills
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment
clay-prod-checklistExecute 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".
Independent GitHub snapshot · Automated classification · Original documentation governs
name: clay-prod-checklist description: '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".
' allowed-tools: Read, Bash(curl:*), Grep version: 1.14.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
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.