---
name: fathom-debug-bundle
description: 'Collect Fathom API diagnostics for support cases.

  Trigger with phrases like "fathom debug", "fathom diagnostics".

  '
allowed-tools: Read, Bash(curl:*), Grep
version: 1.6.0
license: MIT
author: Jeremy Longshore <jeremy@intentsolutions.io>
tags:
- saas
- meeting-intelligence
- ai-notes
- fathom
compatibility: Designed for Claude Code
---
# Fathom Debug Bundle

## Prerequisites

- An issue owner, affected environment, approved incident/support destination, and strict redaction policy for meeting content and credentials.

## Instructions

1. Collect only correlation IDs, environment, versions, configuration state, status classes, and aggregate timing.
2. Review the bundle for recordings, transcripts, participant data, CRM records, tokens, and private links before distribution.
3. Reproduce with a synthetic meeting/test account and retain the minimum approved evidence.

## Output

- A minimal redacted diagnostic bundle with owner, scope, evidence, and safe escalation/recovery path.

## Error Handling

| Condition | Safe response |
|---|---|
| Bundle contains meeting/participant data | Stop distribution, restrict access, and recreate it with stronger redaction. |
| Credentials appear | Revoke/rotate first, then assess the exposure. |
| Issue cannot reproduce | Record environment differences and keep it open for evidence. |

## Examples

For a CRM-sync failure, collect opaque meeting/action IDs, environment, mapping version, status class, and timestamp, then reproduce with a synthetic record. Do not attach recordings, transcript text, contact details, or tokens to the case.

## Overview

Collect Fathom API connectivity status, meeting recording metadata, transcript availability, and authentication state into a single diagnostic archive. This bundle helps troubleshoot missing transcripts, failed meeting syncs, webhook delivery issues, and API authentication problems. Attach the output to Fathom support tickets so engineers can diagnose integration failures without back-and-forth.

## Debug Collection Script

```bash
#!/bin/bash
set -euo pipefail
BUNDLE="debug-fathom-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BUNDLE"

# Environment check
echo "=== Fathom Debug Bundle ===" | tee "$BUNDLE/summary.txt"
echo "Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$BUNDLE/summary.txt"
echo "FATHOM_API_KEY: ${FATHOM_API_KEY:+[SET]}" >> "$BUNDLE/summary.txt"

# API connectivity
HTTP=$(curl -s -o /dev/null -w "%{http_code}" \
  -H "X-Api-Key: ${FATHOM_API_KEY}" \
  https://api.fathom.ai/external/v1/meetings?limit=1 2>/dev/null || echo "000")
echo "API Status: HTTP $HTTP" >> "$BUNDLE/summary.txt"

# Recent meetings (last 5)
curl -s -H "X-Api-Key: ${FATHOM_API_KEY}" \
  "https://api.fathom.ai/external/v1/meetings?limit=5" \
  > "$BUNDLE/recent-meetings.json" 2>&1 || true

# Check transcript availability for latest meeting
MEETING_ID=$(curl -s -H "X-Api-Key: ${FATHOM_API_KEY}" \
  "https://api.fathom.ai/external/v1/meetings?limit=1" 2>/dev/null \
  | jq -r '.meetings[0].id // empty' 2>/dev/null || true)
if [ -n "$MEETING_ID" ]; then
  curl -s -H "X-Api-Key: ${FATHOM_API_KEY}" \
    "https://api.fathom.ai/external/v1/meetings/$MEETING_ID/transcript" \
    > "$BUNDLE/latest-transcript-status.json" 2>&1 || true
fi

# Rate limit headers
curl -s -D "$BUNDLE/rate-headers.txt" -o /dev/null \
  -H "X-Api-Key: ${FATHOM_API_KEY}" \
  https://api.fathom.ai/external/v1/meetings?limit=1 2>/dev/null || true

tar -czf "$BUNDLE.tar.gz" "$BUNDLE" && rm -rf "$BUNDLE"
echo "Bundle: $BUNDLE.tar.gz"
```

## Analyzing the Bundle

```bash
tar -xzf debug-fathom-*.tar.gz
cat debug-fathom-*/summary.txt                    # API auth + connectivity
jq '.meetings[] | {id, title, created_at}' debug-fathom-*/recent-meetings.json
grep -i "ratelimit\|retry" debug-fathom-*/rate-headers.txt
```

## Common Issues

| Symptom | Check in Bundle | Fix |
|---------|----------------|-----|
| API returns 401 | `summary.txt` shows HTTP 401 | Regenerate API key in Fathom Settings > Integrations |
| Meetings list empty | `recent-meetings.json` has no entries | Verify Fathom recorder joined meetings; check calendar integration |
| Transcript unavailable | `latest-transcript-status.json` shows processing state | Wait for processing to complete (typically 5-15 min after meeting ends) |
| Rate limited (429) | `rate-headers.txt` shows Retry-After header | Reduce polling frequency; implement exponential backoff |
| Webhook not firing | `summary.txt` shows API is reachable but no data | Verify webhook URL in Fathom dashboard; check endpoint returns 200 |

## Automated Health Check

```typescript
async function checkFathom(): Promise<void> {
  const key = process.env.FATHOM_API_KEY;
  if (!key) { console.error("[FAIL] FATHOM_API_KEY not set"); return; }

  const res = await fetch("https://api.fathom.ai/external/v1/meetings?limit=1", {
    headers: { "X-Api-Key": key },
  });
  console.log(`[${res.ok ? "OK" : "FAIL"}] API: HTTP ${res.status}`);

  if (res.ok) {
    const data = await res.json();
    console.log(`[INFO] Meetings accessible: ${data.meetings?.length ?? 0} returned`);
  }
  const remaining = res.headers.get("x-ratelimit-remaining");
  if (remaining) console.log(`[INFO] Rate limit remaining: ${remaining}`);
}
checkFathom();
```

## Resources

- [Fathom Status](https://status.fathom.video)

## Next Steps

See `fathom-common-errors` for transcript sync and webhook troubleshooting patterns.


---
Source attribution: jeremylongshore
Original project: https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/ab85a061f7bcc039dac13ee193de7a4cd4388571/plugins/saas-packs/fathom-pack/skills/fathom-debug-bundle/SKILL.md
License: MIT
License information: https://opensource.org/license/mit
Original upstream instructions; downloaded from Dave AI.

## Upstream license notice

MIT License

Copyright (c) 2025 Jeremy Longshore

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



# Dave AI resource metadata

Creator / publisher: jeremylongshore
Original project: https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/ab85a061f7bcc039dac13ee193de7a4cd4388571/plugins/saas-packs/fathom-pack/skills/fathom-debug-bundle/SKILL.md
Attribution basis: Source repository record

Fields of work: Sales, Customer Support
Roles: Customer Success Manager, Support Agent, Technical Support
Specialties: API
Tools: Fathom
Country applicability: Country not specified
Classification basis: Source catalog labels
Instruction SHA-256: 4c0b0ee369d674103a3aea998c56ef512e68dca27cdb6fff22efe52737043628
