clari-prod-checklist
'Production readiness checklist for Clari API integrations.
Allowed Tools
ReadBash(curl:*)Grep
Provided by Plugin
clari-pack
Claude Code skill pack for Clari (18 skills)
Installation
This skill is included in the clari-pack plugin:
/plugin install clari-pack@claude-code-plugins-plus
Click to copy
Instructions
Clari Production Checklist
Overview
Clari provides revenue intelligence through forecast data, pipeline analytics, and deal inspection. A production integration typically exports forecast snapshots, syncs pipeline data to a warehouse, and powers revenue dashboards. Incorrect data pipelines mean unreliable forecasts, missed quota signals, or stale deal intelligence that undermines board-level reporting.
Authentication & Secrets
- [ ]
CLARIAPIKEYstored in secrets manager (not config files) - [ ] Token tested against production endpoint before go-live
- [ ] Key rotation procedure documented (quarterly cycle)
- [ ] Separate tokens for dev/staging/prod environments
- [ ] Service account with least-privilege scopes (read-only for exports)
API Integration
- [ ] Production base URL configured (
https://api.clari.com/v1) - [ ] Rate limit handling with exponential backoff
- [ ] All required
typesToExportconfigured (forecast, quota, crm_closed) - [ ] Time period coverage verified (current quarter + 4 historical)
- [ ] Deduplication logic handles re-exports and overlapping periods
- [ ] Pagination implemented for large pipeline result sets
- [ ] Export job polling with configurable timeout (default: 10 min)
Error Handling & Resilience
- [ ] Circuit breaker configured for Clari API outages
- [ ] Retry with backoff for 429/5xx responses
- [ ] Empty export results handled (data quality alert, not silent pass)
- [ ] Export job timeout detection with automatic re-queue
- [ ] MERGE/UPSERT in warehouse prevents duplicate forecast records
- [ ] Data retention policy enforced (rolling 8 quarters typical)
Monitoring & Alerting
- [ ] API latency tracked per export job
- [ ] Error rate alerts set (threshold: any export failure)
- [ ] Forecast amount anomaly detection (>20% swing triggers review)
- [ ] Pipeline health dashboard with job completion rates
- [ ] Daily reconciliation: exported row counts vs expected
Validation Script
async function checkClariReadiness(): Promise<void> {
const checks: { name: string; pass: boolean; detail: string }[] = [];
// API connectivity
try {
const res = await fetch('https://api.clari.com/v1/forecast/types', {
headers: { Authorization: `Bearer ${process.env.CLARI_API_KEY}` },
});
checks.push({ name: 'Clari API', pass: res.ok, detail: res.ok ? 'Connected' : `HTTP ${res.status}` });
} catch (e: any) { checks.push({ name: 'Clari API', pass: false, detail: e.message }); }
// Credentials present
checks.push({ name: 'API Key Set', pass: !!process.env.CLARI_API_KEY, detail: process.env.CLARI_API_KEY ? 'Present' : 'MISSING' });
// Export types available
try {
const res = await fetch('https://api.clari.com/v1/forecast/types', {
headers: { Authorization: `Bearer ${process.env.CLARI_API_KEY}` },
});
const data = await res.json();
const count = Array.isArray(data) ? data.length : 0;
checks.push({ name: 'Export Types', pass: count > 0, detail: `${count} types available` });
} catch (e: any) { checks.push({ name: 'Export Types', pass: false, detail: e.message }); }
for (const c of checks) console.log(`[${c.pass ? 'PASS' : 'FAIL'}] ${c.name}: ${c.detail}`);
}
checkClariReadiness();
Error Handling
| Check | Risk if Skipped | Priority |
|---|---|---|
| API key rotation | Expired token halts all exports | P1 |
| Empty export detection | Silent data gaps in forecasts | P1 |
| Duplicate record prevention | Inflated pipeline numbers | P2 |
| Export job timeout | Stuck jobs block scheduling queue | P2 |
| Forecast anomaly alerts | Missed revenue signals | P3 |
Resources
Next Steps
See clari-security-basics for data access controls and PII handling.