140 lines
3.6 KiB
Markdown
140 lines
3.6 KiB
Markdown
# Fathom API Integration for tldraw Canvas
|
|
|
|
This integration allows you to import Fathom meeting transcripts directly into your tldraw canvas at jeffemmett.com/board/test.
|
|
|
|
## Features
|
|
|
|
- 🎥 **Import Fathom Meetings**: Browse and import your Fathom meeting recordings
|
|
- 📝 **Rich Transcript Display**: View full transcripts with speaker identification and timestamps
|
|
- ✅ **Action Items**: See extracted action items from meetings
|
|
- 📋 **AI Summaries**: Display AI-generated meeting summaries
|
|
- 🔗 **Direct Links**: Click to view meetings in Fathom
|
|
- 🎨 **Customizable Display**: Toggle between compact and expanded views
|
|
|
|
## Setup Instructions
|
|
|
|
### 1. Get Your Fathom API Key
|
|
|
|
1. Go to your [Fathom User Settings](https://app.usefathom.com/settings/integrations)
|
|
2. Navigate to the "Integrations" section
|
|
3. Generate an API key
|
|
4. Copy the API key for use in the canvas
|
|
|
|
### 2. Using the Integration
|
|
|
|
1. **Open the Canvas**: Navigate to `jeffemmett.com/board/test`
|
|
2. **Access Fathom Meetings**: Click the "Fathom Meetings" button in the toolbar (calendar icon)
|
|
3. **Enter API Key**: When prompted, enter your Fathom API key
|
|
4. **Browse Meetings**: The panel will load your recent Fathom meetings
|
|
5. **Add to Canvas**: Click "Add to Canvas" on any meeting to create a transcript shape
|
|
|
|
### 3. Customizing Transcript Shapes
|
|
|
|
Once added to the canvas, you can:
|
|
|
|
- **Toggle Transcript View**: Click the "📝 Transcript" button to show/hide the full transcript
|
|
- **Toggle Action Items**: Click the "✅ Actions" button to show/hide action items
|
|
- **Expand/Collapse**: Click the "📄 Expanded/Compact" button to change the view
|
|
- **Resize**: Drag the corners to resize the shape
|
|
- **Move**: Click and drag to reposition the shape
|
|
|
|
## API Endpoints
|
|
|
|
The integration includes these backend endpoints:
|
|
|
|
- `GET /api/fathom/meetings` - List all meetings
|
|
- `GET /api/fathom/meetings/:id` - Get specific meeting details
|
|
- `POST /api/fathom/webhook` - Receive webhook notifications (for future real-time updates)
|
|
|
|
## Webhook Setup (Optional)
|
|
|
|
For real-time updates when new meetings are recorded:
|
|
|
|
1. **Get Webhook URL**: Your webhook endpoint is `https://jeffemmett-canvas.jeffemmett.workers.dev/api/fathom/webhook`
|
|
2. **Configure in Fathom**: Add this URL in your Fathom webhook settings
|
|
3. **Enable Notifications**: Turn on webhook notifications for new meetings
|
|
|
|
## Data Structure
|
|
|
|
The Fathom transcript shape includes:
|
|
|
|
```typescript
|
|
{
|
|
meetingId: string
|
|
meetingTitle: string
|
|
meetingUrl: string
|
|
summary: string
|
|
transcript: Array<{
|
|
speaker: string
|
|
text: string
|
|
timestamp: string
|
|
}>
|
|
actionItems: Array<{
|
|
text: string
|
|
assignee?: string
|
|
dueDate?: string
|
|
}>
|
|
}
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
1. **"No API key provided"**: Make sure you've entered your Fathom API key correctly
|
|
2. **"Failed to fetch meetings"**: Check that your API key is valid and has the correct permissions
|
|
3. **Empty transcript**: Some meetings may not have transcripts if they were recorded without transcription enabled
|
|
|
|
### Getting Help
|
|
|
|
- Check the browser console for error messages
|
|
- Verify your Fathom API key is correct
|
|
- Ensure you have recorded meetings in Fathom
|
|
- Contact support if issues persist
|
|
|
|
## Security Notes
|
|
|
|
- API keys are stored locally in your browser
|
|
- Webhook endpoints are currently not signature-verified (TODO for production)
|
|
- All data is processed client-side for privacy
|
|
|
|
## Future Enhancements
|
|
|
|
- [ ] Real-time webhook notifications
|
|
- [ ] Search and filter meetings
|
|
- [ ] Export transcript data
|
|
- [ ] Integration with other meeting tools
|
|
- [ ] Advanced transcript formatting options
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|