Intercom prod checklist
425 plugins, 2,810 skills, 200 agents for Claude Code. Open-source marketplace at tonsofskills.com with the ccpi CLI package manager.
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill intercom-prod-checklistAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
'Execute Intercom production readiness checklist and rollback procedures.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.5 KB, as published. Nobody here has run it
Intercom Production Checklist
Overview
Complete checklist for deploying Intercom integrations to production, covering authentication, error handling, rate limits, webhooks, and monitoring. Work the pre-deployment checklist below section by section, run the pre-flight script as the go-live gate, and keep the rollback procedure ready before you launch.
Prerequisites
- A production Intercom workspace with an access token issued from the Developer Hub.
$INTERCOM_ACCESS_TOKENexported in the environment where you run the checks.curlandjqavailable for the pre-flight and status probes.- The integration deployed behind a feature flag so it can be disabled without a redeploy.
- (Optional)
$WEBHOOK_URLset if the integration receives Intercom webhooks.
Instructions
Work through the checklist in order. Each group gates a distinct failure class — do not skip a group because "it probably works."
Authentication and secrets
- Production access token stored in secret manager (not env files)
- Token has minimal required OAuth scopes
- Token rotation procedure documented and tested
- Separate tokens for dev/staging/production workspaces
- No hardcoded tokens in source code (verified with
grep -r "dG9r" .)
API integration quality
- All API calls wrapped in error handling (
try/catchwithIntercomError) - 429 rate limit retry with exponential backoff implemented
- 5xx server error retry implemented
- Request timeouts configured (recommended: 30s)
- Pagination handles cursor-based iteration correctly
- Contact search uses compound queries efficiently
Webhook endpoints
- Webhook URL uses HTTPS (Intercom requires it)
-
X-Hub-Signatureverification implemented (HMAC-SHA1) - Webhook handler responds within 5 seconds (Intercom timeout)
- Idempotency: duplicate webhooks handled gracefully
- Failed webhook retry handled (Intercom retries once after 1 min)
Data handling
- PII redacted from logs (emails, names, phone numbers)
- Contact data cached with appropriate TTL
- GDPR deletion handler implemented for contact data
- Custom attributes validated before sending to API
Monitoring and alerting
- Health check endpoint includes Intercom connectivity test
- Error rate alerting configured (threshold: 5% over 5 min)
- Rate limit usage tracked (alert at 80% of limit)
- Latency monitoring (alert if P95 > 2 seconds)
- Intercom status page monitored (https://status.intercom.com)
Health check and go-live
- Production health endpoint returns
503when Intercom is unhealthy — skeleton below, full implementation in references/implementation.md. - Pre-flight verification script passes against the production token — full script in references/examples.md.
- Rollback procedure rehearsed — see references/examples.md.
Minimal health-check skeleton (the full module classifies degraded-vs-unhealthy
from the IntercomError status code and wires an Express /health route — see
the full walkthrough):
async function checkIntercomHealth(client: IntercomClient) {
const start = Date.now();
try {
await client.admins.list();
return { status: "healthy", latencyMs: Date.now() - start };
} catch (err) {
// 429 → degraded, 401 → unhealthy + unauthenticated, else unhealthy
return { status: "unhealthy", latencyMs: Date.now() - start };
}
}
Output
- A completed checklist where every applicable box is checked before launch.
- A pre-flight run that prints
Auth: PASS, current rate-limit headroom, the Intercom status indicator (none= clear), and the webhook endpoint HTTP code. A non-200auth code exits non-zero and blocks the go-live. - A
/healthendpoint returning200when Intercom is healthy and503when it is degraded or unhealthy, with the classification reason in the JSON body.
Error Handling
| Alert | Condition | Severity | Action |
|---|---|---|---|
| API unreachable | 5xx > 10/min | P1 | Enable fallback, check status page |
| Auth failure | Any 401 | P1 | Rotate token, verify in Developer Hub |
| Rate limited | 429 > 5/min | P2 | Reduce request volume, add queuing |
| High latency | P95 > 3s | P2 | Check Intercom status, enable caching |
| Webhook failures | Delivery errors | P3 | Check endpoint health, verify signature |
If the integration is failing in production, run the rollback procedure in
references/examples.md: flip the feature flag off first,
then roll back the deployment, verify /health, and disable webhooks in the
Developer Hub to stop queued deliveries reaching an unhealthy endpoint.
Examples
- Production health check — a full TypeScript module plus Express
/healthendpoint with status classification: references/implementation.md. - Pre-flight verification script — a
set -euo pipefailbash gate that checks auth, rate-limit headroom, platform status, and webhook reachability, with expected output: references/examples.md. - Rollback procedure — feature-flag disable,
kubectl rollout undo, health verification, and webhook teardown: references/examples.md.
Resources
- Intercom Status
- Rate Limiting
- Webhook Setup
- Production health check + monitoring detail: references/implementation.md
- Pre-flight + rollback scripts: references/examples.md
Next Steps
For version upgrades, see the intercom-upgrade-migration skill in this pack,
which covers breaking-change migration and dependency bumps.