fathom

n8n node for Fathom.ai API integration - meetings, recordings, transcripts, and summaries. Use Fathom Trigger node for webhooks.

Package Information

Released: 11/9/2025
Downloads: 12 weekly / 74 monthly
Latest Version: 1.4.0
Author: PENB Builder Pro

Documentation

n8n-nodes-fathom

This is an n8n community node that lets you use Fathom.ai in your n8n workflows.

Fathom is an AI meeting assistant that records, transcribes, highlights, and summarizes your meetings.

n8n is a fair-code licensed workflow automation platform.

Installation

Follow the installation guide in the n8n community nodes documentation.

Community Nodes (n8n.cloud and Self-hosted)

  1. Go to SettingsCommunity Nodes
  2. Click Install
  3. Enter n8n-nodes-fathom in the npm Package Name field
  4. Agree to the risks and click Install

Manual Installation (Self-hosted)

cd ~/.n8n/nodes
npm install n8n-nodes-fathom

Then restart n8n.

Credentials

To use this node, you need a Fathom API key:

  1. Log in to your Fathom account
  2. Go to SettingsIntegrationsAPI
  3. Click Generate API Key
  4. Copy the API key
  5. In n8n, create new Fathom API credentials and paste the API key

Operations

Fathom Node

The regular Fathom node supports these operations:

Meeting

  • Test Webhook (v1.2.0+) - Simulate incoming webhook for testing
    • Customize test data directly in UI
    • No external tools needed
    • Perfect for workflow development and debugging
  • Get All - Retrieve all meetings with optional filters
    • NEW v1.1.0: Wait for Webhook - Toggle to receive webhooks instead of actively fetching
      • When OFF (default): Active polling mode with pagination and filters
      • When ON: Webhook receiver mode with signature verification
    • Supports pagination (active mode only)
    • Filter by date range (start_date, end_date) (active mode only)
    • Filter by user ID (active mode only)
    • NEW v1.0.6: Include Transcript - Automatically fetch transcript for each meeting with recording_id
    • NEW v1.0.6: Include Summary - Automatically fetch AI summary for each meeting with recording_id
  • Get - Retrieve a single meeting by ID
    • NEW: Click "Load Records" button to fetch available meetings from your Fathom account
    • Select from dropdown list with meeting names and dates

Recording

  • Get Summary - Get AI-generated summary of a recording
    • NEW: Click "Load Records" button to fetch available recordings from your Fathom account
    • Select from dropdown list with recording details
  • Get Transcript - Get full transcript of a recording
    • NEW: Click "Load Records" button to fetch available recordings from your Fathom account
    • Select from dropdown list with recording details

Fathom Trigger Node

The Fathom Trigger node receives webhook events from Fathom:

  • New Meeting Content Ready - Triggers when a new meeting recording, transcript, or summary is ready

Webhook Setup (Manual Configuration Required)

IMPORTANT: Fathom API does not support automatic webhook registration. You must manually configure the webhook in Fathom UI.

Steps:

  1. In n8n:

    • Add the Fathom Trigger node to your workflow
    • Configure:
      • Event: "New Meeting Content Ready"
      • Webhook Secret: Generate a random string (minimum 32 characters) - e.g., openssl rand -hex 32
    • Save and activate the workflow
    • Copy the Webhook URL shown in the node (e.g., https://your-n8n.com/webhook/fathom-trigger/webhook)
  2. In Fathom UI:

    • Go to https://app.fathom.video
    • Navigate to SettingsIntegrationsAPI
    • In the Webhook Secret field: Enter the SAME secret you entered in n8n
    • Click "Add Webhook" button
    • Enter the Webhook URL from n8n
    • Save the configuration
  3. Test:

    • Record a test meeting in Fathom
    • Check n8n executions to verify the webhook was received

Note: The webhook secret is used to verify that requests are coming from Fathom using HMAC SHA-256 signature. Keep it secure and use the same value in both n8n and Fathom!

Changelog

v1.2.0 (2025-01-09)

  • NEW: Test Webhook operation - simulate incoming webhook directly in n8n UI
    • No need for external scripts or curl commands
    • Customizable test data: Meeting Title, Recording ID, Transcript, Summary
    • Perfect for testing workflows before production
    • Generates realistic Fathom webhook payload
    • Includes _test_mode: true flag for identification
  • Major feature release

v1.1.2 (2025-01-09)

  • IMPROVED: Cleaner webhook URL - changed from /webhook to /fathom-webhook
  • NEW: Added test script test-webhook.sh for manual webhook testing
  • NEW: Added "Test Webhook" notice in UI with instructions
  • Better webhook URL readability (no random ID suffix)

v1.1.1 (2025-01-09)

  • FIX: Added execution guard for webhook mode - prevents manual execution errors
  • IMPROVED: Subtitle now shows "🔔 Webhook Mode" when Wait for Webhook is enabled
  • Better error messaging when node is in webhook mode

v1.1.0 (2025-01-09)

  • NEW: Wait for Webhook mode in "Get All Meetings" operation
    • Toggle between active fetching (default) and passive webhook listening
    • When enabled, node acts as webhook receiver with HMAC SHA-256 signature verification
    • Webhook Secret parameter for secure webhook validation
    • Manual webhook setup required in Fathom UI (Settings → Integrations → API)
    • Allows trigger-like behavior without separate Fathom Trigger node
  • Updated package description

v1.0.6 (2025-01-09)

  • NEW: Include Transcript option for "Get All Meetings" operation
    • Automatically fetches transcript for each meeting with recording_id
    • Adds transcript_data (raw array) and transcript_formatted (readable text) to output
    • Transcript is returned in original meeting language (Czech meetings = Czech transcript)
  • NEW: Include Summary option for "Get All Meetings" operation
    • Automatically fetches AI-generated summary for each meeting with recording_id
    • Adds summary_data object with template_name and markdown_formatted to output
    • Summary is always in English
  • Updated package description to include "summaries"
  • Improved README documentation with detailed examples

v1.0.5

  • Include Transcript and Summary options added (initial implementation)

Compatibility

Tested with n8n version 1.0.0+

Usage Examples

Example 1: Get Recent Meetings with Transcripts and Summaries (v1.0.6+)

Fathom Node
- Resource: Meeting
- Operation: Get All
- Return All: false
- Limit: 10
- Additional Fields:
  - Start Date: 7 days ago
  - Include Transcript: true
  - Include Summary: true

Output includes:

  • transcript_data - Array of transcript entries with speaker, text, timestamp
  • transcript_formatted - Formatted text version: "[00:00:04] John Doe: Hello world"
  • summary_data - AI summary object with template_name and markdown_formatted

Note: Transcript is returned in the original meeting language (Czech meetings = Czech transcript). Summary is always in English.

Example 2: Get Meeting Transcript

Fathom Node → Fathom Node
1. Get All Meetings (limit 1)
2. Get Transcript
   - Recording ID: {{ $json.recording_id }}

Example 3: Test Webhook (v1.2.0+) - EASIEST WAY TO TEST!

Fathom Node (Test Mode) → Google Docs → Gmail
1. Fathom Node
   - Resource: Meeting
   - Operation: Test Webhook ⭐
   - Meeting Title: "My Test Meeting"
   - Recording ID: 99944153
   - Transcript: "Custom test transcript..."
   - Summary: "Custom test summary..."

2. Click Execute
3. Workflow runs with test data!

Perfect for:

  • 🧪 Testing workflow logic before production
  • 🔍 Debugging data transformations
  • 📝 Creating documentation screenshots
  • ✅ Validating Google Docs/Gmail setup

Example 4: Wait for Webhook Mode (v1.1.0+)

Fathom Node (Webhook Mode) → Google Docs → Gmail
1. Fathom Node
   - Resource: Meeting
   - Operation: Get All
   - Wait for Webhook: ON
   - Webhook Secret: [your-secret-32-chars]

2. Google Docs: Create
   - Title: {{ $json.meeting_title }}
   - Content: {{ $json.transcript }}

3. Gmail: Send
   - To: your@email.com
   - Subject: New Fathom Meeting: {{ $json.meeting_title }}
   - Body: Link to doc

Setup:

  1. Generate webhook secret: openssl rand -hex 32
  2. Copy Webhook URL from Fathom node (e.g., https://n8n.example.com/webhook/fathom-webhook)
  3. In Fathom UI: Settings → Integrations → API
  4. Set same Webhook Secret and add Webhook URL
  5. Activate workflow in n8n

Test Webhook Manually:

Use the included test script:

# Make script executable
chmod +x test-webhook.sh

# Run test
./test-webhook.sh "https://n8n.example.com/webhook/fathom-webhook" "your-secret-here"

Or manually with curl:

# Test webhook with sample data
WEBHOOK_URL="https://n8n.example.com/webhook/fathom-webhook"
WEBHOOK_SECRET="your-secret-here"

# Sample meeting data
DATA='{"event":"new-meeting-content-ready","meeting_id":"abc123","recording_id":"99944153","meeting_title":"Test Meeting","start_time":"2025-01-09T10:00:00Z","transcript":"Test transcript text","summary":"Test summary"}'

# Calculate HMAC signature
SIGNATURE=$(echo -n "$DATA" | openssl dgst -sha256 -hmac "$WEBHOOK_SECRET" | sed 's/^.* //')

# Send webhook
curl -X POST "$WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -H "webhook-signature: $SIGNATURE" \
  -d "$DATA"

Example 4: Using Separate Fathom Trigger Node

Fathom Trigger → Google Docs → Gmail
1. Fathom Trigger
   - Event: New Meeting Content Ready
   - Webhook Secret: [your-secret]

2. Google Docs: Create
   - Title: {{ $json.meeting_title }}
   - Content: {{ $json.transcript }}

3. Gmail: Send
   - To: your@email.com
   - Subject: New Fathom Meeting: {{ $json.meeting_title }}
   - Body: Link to doc

Webhook Payload

When a Fathom webhook triggers, you'll receive data like this:

{
  "event": "new-meeting-content-ready",
  "meeting_id": "abc123",
  "recording_id": "rec456",
  "meeting_title": "Team Standup",
  "start_time": "2025-01-08T10:00:00Z",
  "end_time": "2025-01-08T10:30:00Z",
  "duration_minutes": 30,
  "host_name": "John Doe",
  "host_email": "john@example.com",
  "recording_url": "https://fathom.video/calls/123456",
  "share_url": "https://fathom.video/ABC123",
  "transcript": "Full transcript text...",
  "summary": "AI-generated summary...",
  "has_external_participants": true
}

Resources

Support

For issues or questions:

License

MIT

Development

# Install dependencies
npm install

# Build the node
npm run build

# Watch mode for development
npm run dev

# Lint
npm run lint

# Format code
npm run format

Contributing

Contributions are welcome! Please contact ales.agenda@gmail.com with suggestions or improvements.


Made with ❤️ for the n8n community by PENB Builder Pro

Discussion