Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Collect Intercom debug evidence for support tickets and troubleshooting. Use when encountering persistent Intercom API issues, auth or rate-limit failures, or preparing a diagnostic bundle to attach to an Intercom support ticket. Trigger with phrases like "intercom debug", "intercom support bundle", "collect intercom logs", "intercom diagnostic", "intercom troubleshoot".
.claude/skills/jeremylongshore-intercom-debug-bundle/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 44% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -26% | 0% |
Collect diagnostic evidence for Intercom issues: API health, auth status, rate-limit headers, SDK version, platform incidents, and redacted logs — packaged as a timestamped tarball safe to attach to a support ticket. Most persistent failures are auth (401) or rate-limit (429) problems, so the bundle leads with the /me health check before collecting anything heavier.
INTERCOM_ACCESS_TOKENcurl and jq availableMost failed bundles are a bad token. Confirm /me returns 200 first; if not, fix auth before running the full collector.
bashTOKEN="${INTERCOM_ACCESS_TOKEN:?set INTERCOM_ACCESS_TOKEN and re-run}" curl -s -o /dev/null -w "Auth HTTP: %{http_code}\n" \ -H "Authorization: Bearer $TOKEN" \ https://api.intercom.io/me # 200 = OK, 401 = regenerate the token in the Developer Hub
When the quick check passes, run the seven-step collector. It writes token status, auth JSON, rate-limit headers, platform status and active incidents, environment/SDK info, endpoint latencies, and redacted logs into a timestamped directory, then tars it up as intercom-debug-YYYYMMDD-HHMMSS.tar.gz. Tokens, emails, and .env values are stripped before packaging.
See the complete intercom-debug-bundle.sh script (all seven steps) in full implementation.
The collector redacts as it goes, but review the tarball before attaching it to a ticket. What to ALWAYS redact vs what is SAFE TO INCLUDE (with copy-paste curl snippets for reading rate-limit headers and capturing a request_id) lives in examples and redaction rules.
intercom-debug-YYYYMMDD-HHMMSS.tar.gz containing:summary.txt — token status, auth result, rate-limit headers, platform status, active incident count, environment, SDK version, and per-endpoint latency (/me, /contacts, /conversations, /admins)logs-redacted.txt — recent Intercom-related log lines with tokens and emails masked (present only if logs/app.log exists)config-redacted.txt — .env copy with all values masked (present only if .env exists)ALWAYS redact: access tokens, OAuth secrets, webhook signing secrets, email addresses and PII, customer conversation content.
Safe to include: HTTP status/error codes, request_id from error responses (Intercom support needs these), rate-limit header values, SDK/runtime versions, endpoint latencies. Full rules in examples and redaction rules.
| Issue | Cause | Solution | |-------|-------|----------| | jq: command not found | jq not installed | apt install jq or brew install jq | | Auth test returns 401 | Token invalid | Regenerate in Developer Hub | | Status page unreachable | Network issue | Try curl https://status.intercom.com directly | | No rate limit headers | Request failed early | Fix auth first |
Quick reference for the most common check — confirm the token authenticates:
bashcurl -s -o /dev/null -w "%{http_code}\n" \ -H "Authorization: Bearer $INTERCOM_ACCESS_TOKEN" \ https://api.intercom.io/me # 200 = OK, 401 = regenerate token
For reading rate-limit headers, capturing a request_id from an error response, and the full redaction rules, see examples and redaction rules.
For rate limit handling, see intercom-rate-limits. For auth setup, see intercom-install-auth.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 22,592 | 27,321 | +21% | 1 | 1 | 0% | 3,555 | 5,943 | +67% | 0 | 0 | — |
case-02 | fail→pass | 25,178 | 27,208 | +8% | 1 | 1 | 0% | 4,067 | 5,850 | +44% | 0 | 0 | — |
case-03 | fail→pass | 16,797 | 18,517 | +10% | 1 | 1 | 0% | 3,316 | 3,853 | +16% | 0 | 0 | — |
case-04 | pass→pass | 17,767 | 7,091 | -60% | 1 | 1 | 0% | 2,176 | 1,895 | -13% | 0 | 0 | — |
case-05 | fail→fail | 14,239 | 6,191 | -57% | 1 | 1 | 0% | 1,530 | 2,175 | +42% | 0 | 0 | — |
case-20 | pass→pass | 21,428 | 22,116 | +3% | 1 | 1 | 0% | 3,354 | 4,938 | +47% | 0 | 0 | — |
case-06 | fail→pass | 31,405 | 7,497 | -76% | 1 | 1 | 0% | 1,469 | 1,376 | -6% | 0 | 0 | — |
case-07 | fail→pass | 18,379 | 8,017 | -56% | 1 | 1 | 0% | 2,134 | 1,582 | -26% | 0 | 0 | — |
case-08 | fail→fail | 12,044 | 7,552 | -37% | 1 | 1 | 0% | 2,090 | 1,497 | -28% | 0 | 0 | — |
case-09 | fail→pass | 11,783 | 5,098 | -57% | 1 | 1 | 0% | 1,715 | 1,785 | +4% | 0 | 0 | — |
case-10 | fail→pass | 10,488 | 7,231 | -31% | 1 | 1 | 0% | 1,646 | 1,403 | -15% | 0 | 0 | — |
case-11 | fail→pass | 15,697 | 2,931 | -81% | 1 | 1 | 0% | 1,628 | 1,542 | -5% | 0 | 0 | — |
case-12 | pass→pass | 22,351 | 4,602 | -79% | 1 | 1 | 0% | 1,977 | 1,925 | -3% | 0 | 0 | — |
case-13 | pass→pass | 9,923 | 9,522 | -4% | 1 | 1 | 0% | 1,749 | 1,874 | +7% | 0 | 0 | — |
case-14 | pass→pass | 5,528 | 8,858 | +60% | 1 | 1 | 0% | 1,055 | 1,676 | +59% | 0 | 0 | — |
case-15 | fail→pass | 11,375 | 4,836 | -57% | 1 | 1 | 0% | 1,981 | 1,970 | -1% | 0 | 0 | — |
case-16 | pass→pass | 5,640 | 1,870 | -67% | 1 | 1 | 0% | 970 | 1,296 | +34% | 0 | 0 | — |
case-17 | fail→pass | 16,968 | 8,963 | -47% | 1 | 1 | 0% | 2,090 | 2,721 | +30% | 0 | 0 | — |
case-18 | pass→pass | 13,139 | 9,568 | -27% | 1 | 1 | 0% | 2,033 | 1,869 | -8% | 0 | 0 | — |
case-19 | pass→pass | 12,671 | 7,266 | -43% | 1 | 1 | 0% | 819 | 1,450 | +77% | 0 | 0 | — |
case-21 | pass→pass | 30,611 | 24,596 | -20% | 1 | 1 | 0% | 3,901 | 4,873 | +25% | 0 | 0 | — |
case-22 | pass→pass | 11,404 | 17,022 | +49% | 1 | 1 | 0% | 2,207 | 3,540 | +60% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +45 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.