fireflies

star 0

Manage Fireflies.ai meeting transcripts, summaries, and action items via GraphQL API.

6missedcalls By 6missedcalls schedule Updated 2/27/2026

name: fireflies description: Manage Fireflies.ai meeting transcripts, summaries, and action items via GraphQL API. license: MIT metadata: author: 6missedcalls version: "1.0.0"

Fireflies.ai Integration Skill

Manage Fireflies.ai meeting transcripts, summaries, and action items via GraphQL API.

Prerequisites

Quick Reference

Endpoint: https://api.fireflies.ai/graphql Auth: Bearer token in Authorization header

Core Capabilities

1. List Recent Meetings

./scripts/fireflies.sh transcripts --limit 10 --mine true

2. Get Single Meeting Details

./scripts/fireflies.sh transcript --id "TRANSCRIPT_ID"

3. Search Meetings

./scripts/fireflies.sh transcripts --keyword "budget" --scope all

4. Ask Questions About Meetings (AskFred)

./scripts/fireflies.sh askfred --query "What action items were assigned?" --transcript_id "ID"

5. Get Meeting Summary

./scripts/fireflies.sh summary --id "TRANSCRIPT_ID"

Natural Language → GraphQL Translation

When the user asks about meetings in natural language, translate to GraphQL queries.

For full API documentation, read: docs/llms-full.txt

Common Translations

User Request GraphQL Query
"Show my recent meetings" transcripts(mine: true, limit: 10)
"Meetings from last week" transcripts(fromDate: "...", toDate: "...")
"Search for budget discussions" transcripts(keyword: "budget", scope: all)
"Get action items from meeting X" transcript(id: "X") { summary { action_items } }
"Who attended meeting X?" transcript(id: "X") { participants meeting_attendees { ... } }
"What was discussed about Y?" AskFred: createAskFredThread(input: { query: "...", transcript_id: "..." })

GraphQL Query Templates

List Transcripts

query Transcripts($limit: Int, $mine: Boolean, $fromDate: DateTime, $toDate: DateTime, $keyword: String, $scope: TranscriptsQueryScope) {
  transcripts(limit: $limit, mine: $mine, fromDate: $fromDate, toDate: $toDate, keyword: $keyword, scope: $scope) {
    id
    title
    date
    duration
    participants
    organizer_email
    summary {
      overview
      action_items
    }
  }
}

Get Full Transcript

query Transcript($id: String!) {
  transcript(id: $id) {
    id
    title
    date
    duration
    participants
    organizer_email
    speakers { id name }
    sentences { speaker_name text start_time end_time }
    summary {
      keywords
      action_items
      overview
      short_summary
      topics_discussed
    }
    analytics {
      sentiments { positive_pct neutral_pct negative_pct }
      categories { tasks questions }
    }
    meeting_attendees { displayName email }
    transcript_url
    audio_url
    video_url
  }
}

AskFred - Question Answering

mutation CreateThread($input: CreateAskFredThreadInput!) {
  createAskFredThread(input: $input) {
    message {
      id
      thread_id
      answer
      suggested_queries
    }
  }
}

# Variables:
{
  "input": {
    "query": "What were the main discussion points?",
    "transcript_id": "YOUR_TRANSCRIPT_ID",
    "response_language": "en",
    "format_mode": "markdown"
  }
}

Cross-Meeting Analysis

mutation CrossMeetingQuery($input: CreateAskFredThreadInput!) {
  createAskFredThread(input: $input) {
    message { answer suggested_queries }
  }
}

# Variables (filter by date range and participants):
{
  "input": {
    "query": "What recurring issues have been raised?",
    "filters": {
      "start_time": "2024-01-01T00:00:00Z",
      "end_time": "2024-03-31T23:59:59Z",
      "participants": ["client@example.com"]
    }
  }
}

Jira Task Generation

When user asks to create Jira tasks from meetings:

  1. Get meeting summary:

    transcript(id: "...") {
      summary { action_items }
      participants
      meeting_attendees { displayName email }
    }
    
  2. Parse action items - Each item typically contains:

    • Task description
    • Assignee (match against meeting_attendees)
    • Due date (if mentioned)
  3. Create Jira issues using the Jira skill/API:

    • Map attendee emails to Jira accounts
    • Set appropriate project/board
    • Link back to Fireflies transcript URL

Webhooks

Fireflies can push meeting data via webhooks when transcripts are ready.

Webhook events:

  • Transcription complete - Full transcript available
  • Includes: meeting_id, title, date, participants, duration

Rate Limits

Plan Limit
Free/Pro 50 requests/day
Business/Enterprise 60 requests/min
Add to Live 3 requests/20 min

Error Handling

Common errors:

  • auth_failed - Invalid or missing API key
  • object_not_found - Transcript ID doesn't exist or no access
  • rate_limit_exceeded - Too many requests
  • too_many_requests (HTTP 429) - Back off and retry

Script Usage

The fireflies.sh script wraps common operations:

# List recent meetings
./scripts/fireflies.sh list [--limit N] [--days N]

# Get meeting details
./scripts/fireflies.sh get <transcript_id>

# Get meeting summary
./scripts/fireflies.sh summary <transcript_id>

# Search meetings
./scripts/fireflies.sh search <keyword> [--scope title|sentences|all]

# Ask a question
./scripts/fireflies.sh ask "<question>" [--transcript_id ID]

# Export meeting to JSON
./scripts/fireflies.sh export <transcript_id> [--output file.json]

Full Documentation

For complete schema, all queries/mutations, and advanced features: Read: docs/llms-full.txt (12K+ lines of LLM-optimized API docs)

This includes:

  • All GraphQL types and schemas
  • Authentication details
  • Webhook setup
  • AskFred (AI Q&A) full API
  • Real-time API
  • Error codes
  • Code examples in curl, JavaScript, Python, Java
Install via CLI
npx skills add https://github.com/6missedcalls/fireflies-skill --skill fireflies
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator
6missedcalls
6missedcalls Explore all skills →