Package Information
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)
- Go to Settings → Community Nodes
- Click Install
- Enter
n8n-nodes-fathomin the npm Package Name field - 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:
- Log in to your Fathom account
- Go to Settings → Integrations → API
- Click Generate API Key
- Copy the API key
- 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
- NEW v1.1.0: Wait for Webhook - Toggle to receive webhooks instead of actively fetching
- 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:
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)
In Fathom UI:
- Go to https://app.fathom.video
- Navigate to Settings → Integrations → API
- 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
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: trueflag for identification
- Major feature release
v1.1.2 (2025-01-09)
- IMPROVED: Cleaner webhook URL - changed from
/webhookto/fathom-webhook - NEW: Added test script
test-webhook.shfor 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) andtranscript_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_dataobject 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, timestamptranscript_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:
- Generate webhook secret:
openssl rand -hex 32 - Copy Webhook URL from Fathom node (e.g.,
https://n8n.example.com/webhook/fathom-webhook) - In Fathom UI: Settings → Integrations → API
- Set same Webhook Secret and add Webhook URL
- 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
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