fathom-prod-checklist

v2026.09.24

Production readiness checklist for Fathom API integrations. Trigger with phrases like "fathom production", "fathom go-live", "fathom checklist".

GitHub
Install command
npx skhub add jeremylongshore/fathom-prod-checklist
Markdown
SKILL.md

Fathom Production Checklist

Prerequisites

  • A named tenant/data owner, approved recording/consent/data-use policy, identity/secret boundary, and rollback plan.

Instructions

  1. Complete evidence gates for access, consent, retention, integrations, CRM mapping, observability, incident response, and rollback.
  2. Validate a synthetic or approved canary workflow and verify its access/data boundaries.
  3. Block production enablement when any data, consent, security, ownership, or recovery gate is unverified.

Output

  • A production-readiness receipt with evidence, owner, exceptions, canary result, and tested rollback path.

Examples

Pilot a production-like configuration using approved synthetic meeting data, verify consent/access/CRM behavior and alert routing, then observe the stated window. Restore the prior configuration if any gate fails; do not widen access or send real follow-ups to conceal a defect.

Overview

Fathom provides AI-powered meeting intelligence with automated transcription, summaries, and action item extraction. A production integration ingests meeting recordings, processes transcripts, and syncs action items to downstream systems. Failures mean lost meeting context, missed follow-ups, or transcript data leaking outside authorized channels. This checklist ensures reliable, compliant meeting data pipelines.

Authentication & Secrets

  • FATHOM_API_KEY stored in secrets manager (not environment files)
  • OAuth app registered if building public-facing integration
  • Key rotation schedule documented (90-day cycle)
  • Separate credentials for dev/staging/prod environments
  • Webhook signing secret configured for payload verification

API Integration

  • Production base URL configured (https://api.fathom.video/v1)
  • Rate limit handling with backoff (60 req/min standard tier)
  • Webhook endpoint registered and tested with sample payloads
  • Meeting recording retrieval handles large file downloads
  • Transcript pagination implemented for long meetings (>60 min)
  • Action item extraction tested with various meeting formats
  • Calendar integration sync verified (Google Calendar / Outlook)

Error Handling & Resilience

  • Circuit breaker configured for Fathom API outages
  • Retry with exponential backoff for 429/5xx responses
  • Empty or partial transcript handling (silent meetings, poor audio)
  • Webhook delivery failures trigger re-fetch via polling
  • Meeting data PII handling documented (GDPR consent, retention)
  • Backup webhook URL configured for failover

Monitoring & Alerting

  • API latency tracked per endpoint (meetings, transcripts)
  • Error rate alerts set (threshold: >5% over 10 minutes)
  • Failed transcript processing triggers notification
  • Webhook delivery success rate monitored
  • Daily digest of processed meeting counts vs scheduled

Validation Script

async function checkFathomReadiness(): Promise<void> {
  const checks: { name: string; pass: boolean; detail: string }[] = [];
  // API connectivity
  try {
    const res = await fetch('https://api.fathom.video/v1/meetings?limit=1', {
      headers: { Authorization: `Bearer ${process.env.FATHOM_API_KEY}` },
    });
    checks.push({ name: 'Fathom API', pass: res.ok, detail: res.ok ? 'Connected' : `HTTP ${res.status}` });
  } catch (e: any) { checks.push({ name: 'Fathom API', pass: false, detail: e.message }); }
  // Credentials present
  checks.push({ name: 'API Key Set', pass: !!process.env.FATHOM_API_KEY, detail: process.env.FATHOM_API_KEY ? 'Present' : 'MISSING' });
  // Webhook endpoint reachable
  const webhookUrl = process.env.FATHOM_WEBHOOK_URL;
  if (webhookUrl) {
    try {
      const res = await fetch(webhookUrl, { method: 'HEAD' });
      checks.push({ name: 'Webhook Endpoint', pass: res.ok, detail: `HTTP ${res.status}` });
    } catch (e: any) { checks.push({ name: 'Webhook Endpoint', pass: false, detail: e.message }); }
  } else { checks.push({ name: 'Webhook Endpoint', pass: false, detail: 'URL not configured' }); }
  for (const c of checks) console.log(`[${c.pass ? 'PASS' : 'FAIL'}] ${c.name}: ${c.detail}`);
}
checkFathomReadiness();

Error Handling

CheckRisk if SkippedPriority
API key rotationExpired key halts transcript pipelineP1
Webhook verificationSpoofed payloads inject bad dataP1
PII retention policyGDPR/CCPA violation on meeting dataP1
Empty transcript handlingDownstream systems crash on nullP2
Rate limit backoffBulk meeting import blocked by 429P3

Resources

Next Steps

See fathom-security-basics for meeting data privacy and consent patterns.

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/.curated/fathom-prod-checklist

Default branch

main

Latest commit

e5a6c3b

Tree SHA

c2dc8e8