fireflies-observability
SKILL.md
Fireflies Observability
Overview
Monitor Fireflies.ai meeting transcription quality, bot join reliability, and transcript processing latency.
Prerequisites
- Fireflies Business or Enterprise plan
- API access via GraphQL endpoint
- Calendar integration (Google Calendar or Outlook) connected
Instructions
Step 1: Monitor Bot Join Reliability
set -euo pipefail
# Query recent meetings and check bot join status
curl -X POST https://api.fireflies.ai/graphql \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query": "{ transcripts(limit: 50) { id title date duration bot_joined processing_status speakers { name } } }"}' | \
jq '.data.transcripts[] | {title, date, bot_joined, status: .processing_status, speakers: (.speakers | length)}'
Step 2: Track Transcript Processing Latency
// fireflies-metrics.ts
async function monitorProcessing() {
const res = await firefliesGQL(`{ transcripts(limit: 20) { id date duration processing_status processed_at } }`);
for (const t of res.data.transcripts) {
if (t.processing_status === 'completed' && t.processed_at) {
const meetingEnd = new Date(t.date).getTime() + t.duration * 60000; # 60000: 1 minute in ms
const processedAt = new Date(t.processed_at).getTime();
const processingMinutes = (processedAt - meetingEnd) / 60000; # 1 minute in ms
emitHistogram('fireflies_processing_time_min', processingMinutes);
}
emitCounter('fireflies_transcripts_total', 1, { status: t.processing_status });
}
}
Step 3: Measure Per-Seat Utilization
// Identify seats with low usage to optimize licensing costs
async function seatUtilization() {
const members = await firefliesGQL(`{ teamMembers { id email transcripts_count last_active } }`);
for (const m of members.data.teamMembers) {
emitGauge('fireflies_seat_usage', m.transcripts_count, { user: m.email });
if (m.transcripts_count < 5 && daysSince(m.last_active) > 30) {
console.warn(`Low utilization seat: ${m.email} (${m.transcripts_count} transcripts, inactive ${daysSince(m.last_active)}d)`);
}
}
}
Step 4: Alert on Issues
groups:
- name: fireflies
rules:
- alert: FirefliesBotNotJoining
expr: rate(fireflies_transcripts_total{status="bot_failed"}[6h]) > 2
annotations: { summary: "Fireflies bot failed to join 2+ meetings in 6 hours" }
- alert: FirefliesProcessingSlow
expr: histogram_quantile(0.95, rate(fireflies_processing_time_min_bucket[6h])) > 30
annotations: { summary: "Fireflies transcript processing P95 exceeds 30 minutes" }
- alert: FirefliesLowSeatUtilization
expr: count(fireflies_seat_usage < 2) > 5
annotations: { summary: "5+ Fireflies seats with <2 transcripts (review licensing)" }
Step 5: Dashboard Panels
Track: bot join success rate (pie chart), transcript processing latency distribution, meetings recorded per day, per-seat utilization (table), speaker count distribution, and average meeting duration. Use utilization data to right-size your Fireflies seat count.
Error Handling
| Issue | Cause | Solution |
|---|---|---|
| Bot not joining | Calendar permission revoked | Re-authorize calendar integration |
| Transcript stuck processing | Audio quality too poor | Check meeting audio source, avoid Bluetooth |
| No speakers detected | Single audio channel | Enable speaker diarization in settings |
| High seat cost per transcript | Too many inactive seats | Remove members with <2 transcripts/month |
Examples
Basic usage: Apply fireflies observability to a standard project setup with default configuration options.
Advanced scenario: Customize fireflies observability for production environments with multiple constraints and team-specific requirements.
Output
- Configuration files or code changes applied to the project
- Validation report confirming correct implementation
- Summary of changes made and their rationale
Resources
- Official monitoring documentation
- Community best practices and patterns
- Related skills in this plugin pack
Weekly Installs
15
Repository
jeremylongshore…s-skillsGitHub Stars
1.6K
First Seen
Feb 18, 2026
Security Audits
Installed on
codex15
mcpjam14
claude-code14
junie14
windsurf14
zencoder14