# Fathom Webhooks Events

> Configure Fathom webhooks for real-time meeting notifications.

Configure Fathom webhooks for real-time meeting notifications.
Use when setting up automated meeting processing, receiving real-time
transcripts, or triggering workflows when meetings complete.
Trigger with phrases like "fathom webhook", "fathom notifications",
"fathom real-time", "fathom event handler".

- Page: https://ss33.ai/skills/jeremylongshore/fathom-webhooks-events-86369744013
- Publisher: jeremylongshore
- Category: [Software Development](https://ss33.ai/skills/category/software-development-t44z8z) › [APIs & backend](https://ss33.ai/skills/category/software-development-t44z8z/apis-and-backend-t0x840)
- License: MIT
- Source: https://github.com/jeremylongshore/tons-of-skills-marketplace/blob/6cc8e76343714d8807b4a5f1aa604b7ede5e497f/plugins/saas-packs/fathom-pack/skills/fathom-webhooks-events/SKILL.md

## Skill

SKILL.md: https://ss33.ai/api/v1/ss33/download/jeremylongshore/fathom-webhooks-events-86369744013

# Fathom Webhooks & Events

## Prerequisites

- A verified callback endpoint, signature/authentication rule, idempotency store, redaction policy, and event owner.

## Instructions

1. Validate signatures before parsing payloads and acknowledge within the documented timeout.
2. Deduplicate events using stable opaque IDs and record only necessary redacted metadata.
3. Apply bounded retry/backoff for transient errors and quarantine malformed terminal failures.

## Output

- A signed, idempotent webhook/event flow with redacted observability, recovery ownership, and a safe replay decision path.

## Error Handling

| Condition | Safe response |
|---|---|
| Signature fails | Reject the event and investigate configuration without logging secrets/payload content. |
| Duplicate event arrives | Return idempotent success and avoid duplicate CRM/follow-up actions. |
| Processing fails permanently | Quarantine it with redacted metadata and fix the contract before replay. |

## Examples

Test a development callback using a synthetic event, verify signature, deduplication, and a bounded failure path, then record only event ID/state/result. Do not persist transcript text, meeting content, contacts, or webhook secrets in the diagnostics.

## Overview

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.

## Webhook Setup

### Via API

```bash
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
  }'
```

### Via Settings

Navigate to Settings > Integrations > Webhooks > Create Webhook.

## Webhook Payload

```json
{
  "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": [...]
}
```

## Webhook Handler

```python
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
```

## Testing Webhooks

```bash
# 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
```

## Resources

- [Fathom Webhooks](https://developers.fathom.ai/webhooks)
- [Webhook Troubleshooting](https://help.fathom.video/en/articles/10625473)

## Next Steps

For performance optimization, see `fathom-performance-tuning`.
