From fathom-pack
Sets up Fathom webhooks via API or settings to receive meeting summaries, transcripts, action items for automated processing and workflows.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin fathom-packThis skill is limited to using the following tools:
Fathom webhooks send meeting data to your URL when recordings are ready. Webhooks can include summary, transcript, and action items. Configure in Settings or via API.
Implements Fireflies.ai webhook receiver with HMAC-SHA256 verification to process transcription completed events and notifications.
Diagnoses and fixes Fathom API errors including 401 unauthorized, rate limits, empty transcripts, missing summaries, webhook failures, and OAuth issues. Provides curl diagnostics.
Handles TwinMind webhooks for meeting events: transcription (Ear-3), action items, summaries (GPT-4/Claude/Gemini), and calendar sync. Verifies API integration.
Share bugs, ideas, or general feedback.
Fathom webhooks send meeting data to your URL when recordings are ready. Webhooks can include summary, transcript, and action items. Configure in Settings or via API.
curl -X POST -H "X-Api-Key: ${FATHOM_API_KEY}" \
-H "Content-Type: application/json" \
https://api.fathom.ai/external/v1/webhooks \
-d '{
"url": "https://your-app.com/webhooks/fathom",
"include_summary": true,
"include_transcript": true,
"include_action_items": true,
"fire_on_own_meetings": true,
"fire_on_shared_meetings": false
}'
Navigate to Settings > Integrations > Webhooks > Create Webhook.
{
"type": "meeting_content_ready",
"recording_id": "rec-abc123",
"url": "https://fathom.video/call/abc123",
"share_url": "https://fathom.video/share/abc123",
"title": "Product Review Q1",
"summary": "Discussed roadmap priorities...",
"transcript": [...],
"action_items": [...]
}
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route("/webhooks/fathom", methods=["POST"])
def fathom_webhook():
event = request.json
if event.get("type") == "meeting_content_ready":
recording_id = event["recording_id"]
summary = event.get("summary", "")
actions = event.get("action_items", [])
# Process meeting data
print(f"Meeting ready: {event.get('title')} ({len(actions)} action items)")
return jsonify({"received": True}), 200
# Test with webhook.site
curl -X POST https://webhook.site/your-uuid \
-H "Content-Type: application/json" \
-d '{"type": "meeting_content_ready", "recording_id": "test"}'
# Or use ngrok for local testing
ngrok http 5000
For performance optimization, see fathom-performance-tuning.