2.6k★by daniil-ctrl
fireflies – OpenClaw Skill
fireflies is an OpenClaw Skills integration for data analytics workflows. Access Fireflies.ai meeting transcripts, summaries, action items, and analytics via GraphQL API
Skill Snapshot
| name | fireflies |
| description | Access Fireflies.ai meeting transcripts, summaries, action items, and analytics via GraphQL API OpenClaw Skills integration. |
| owner | daniil-ctrl |
| repository | daniil-ctrl/fireflies |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @daniil-ctrl/fireflies |
| last updated | Feb 7, 2026 |
Maintainer

name: fireflies description: Access Fireflies.ai meeting transcripts, summaries, action items, and analytics via GraphQL API metadata: {"clawdbot":{"secrets":["FIREFLIES_API_KEY"]}}
Fireflies.ai Skill
Query meeting transcripts, summaries, action items, and analytics from Fireflies.ai.
Setup
Set your Fireflies API key:
FIREFLIES_API_KEY=your_api_key_here
Get your API key from: https://app.fireflies.ai/integrations (scroll to Fireflies API section)
API Base
GraphQL Endpoint: https://api.fireflies.ai/graphql
Authorization header: Bearer $FIREFLIES_API_KEY
Core Queries
Get Current User
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"{ user { user_id name email is_admin minutes_consumed num_transcripts recent_meeting } }"}' | jq
Get Single Transcript
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($id:String!){transcript(id:$id){id title date duration participants fireflies_users summary{keywords action_items overview topics_discussed} speakers{name duration} sentences{speaker_name text start_time}}}","variables":{"id":"TRANSCRIPT_ID"}}' | jq
Search Transcripts by Date Range
# ISO 8601 format: YYYY-MM-DDTHH:mm:ss.sssZ
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($from:DateTime,$to:DateTime,$limit:Int){transcripts(fromDate:$from,toDate:$to,limit:$limit){id title date duration organizer_email participants summary{keywords action_items overview}}}","variables":{"from":"2024-01-01T00:00:00.000Z","to":"2024-01-31T23:59:59.999Z","limit":50}}' | jq
Search Transcripts by Participant
# Search meetings where specific people participated
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($participants:[String],$limit:Int){transcripts(participants:$participants,limit:$limit){id title date participants organizer_email summary{action_items}}}","variables":{"participants":["john@example.com","jane@example.com"],"limit":20}}' | jq
Search Transcripts by Organizer
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($organizers:[String],$limit:Int){transcripts(organizers:$organizers,limit:$limit){id title date organizer_email participants}}","variables":{"organizers":["sales@example.com"],"limit":25}}' | jq
Search by Keyword (Title and/or Transcript)
# scope: "TITLE", "SENTENCES", or "ALL"
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($keyword:String,$scope:String){transcripts(keyword:$keyword,scope:$scope,limit:10){id title date summary{overview}}}","variables":{"keyword":"pricing","scope":"ALL"}}' | jq
Get My Recent Transcripts
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"{ transcripts(mine:true,limit:10) { id title date duration summary { action_items keywords } } }"}' | jq
Advanced Queries
Get Full Transcript with Summary & Action Items
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($id:String!){transcript(id:$id){id title date duration organizer_email participants fireflies_users workspace_users meeting_attendees{displayName email} summary{keywords action_items outline overview bullet_gist topics_discussed meeting_type} speakers{name duration word_count} sentences{speaker_name text start_time end_time}}}","variables":{"id":"TRANSCRIPT_ID"}}' | jq
Get Transcript with Analytics
# Requires Pro plan or higher
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"query($id:String!){transcript(id:$id){id title analytics{sentiments{positive_pct neutral_pct negative_pct} speakers{name duration word_count filler_words questions longest_monologue words_per_minute}}}}","variables":{"id":"TRANSCRIPT_ID"}}' | jq
Get Contacts
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"{ contacts { email name picture last_meeting_date } }"}' | jq
Get Active Meetings
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query":"{ active_meetings { id title organizer_email meeting_link start_time state } }"}' | jq
Pipeline Review Example
Get all meetings from last 7 days with specific participants:
FROM_DATE=$(date -u -v-7d +"%Y-%m-%dT00:00:00.000Z") # macOS
TO_DATE=$(date -u +"%Y-%m-%dT23:59:59.999Z")
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d "{\"query\":\"query(\$from:DateTime,\$to:DateTime,\$participants:[String]){transcripts(fromDate:\\\"\$FROM_DATE\\\",toDate:\\\"\$TO_DATE\\\",participants:\$participants,limit:50){id title date duration organizer_email participants summary{keywords action_items topics_discussed meeting_type}}}\",\"variables\":{\"from\":\"$FROM_DATE\",\"to\":\"$TO_DATE\",\"participants\":[\"prospect@company.com\"]}}" | jq
Key Schema Fields
Transcript Fields
id- Unique identifiertitle- Meeting titledate- Unix timestamp (milliseconds)dateString- ISO 8601 datetimeduration- Duration in minutesorganizer_email- Meeting organizerparticipants- All participant emailsfireflies_users- Fireflies users who participatedworkspace_users- Team members who participatedmeeting_attendees- Detailed attendee info (displayName, email)transcript_url- View in dashboardaudio_url- Download audio (Pro+, expires 24h)video_url- Download video (Business+, expires 24h)
Summary Fields
keywords- Key topicsaction_items- Extracted action itemsoverview- Meeting overviewtopics_discussed- Main topicsmeeting_type- Meeting categoryoutline- Structured outlinebullet_gist- Bullet point summary
Sentence Fields
text- Sentence textspeaker_name- Who said itstart_time- Timestamp (seconds)end_time- End timestampai_filters- Filters (task, question, pricing, etc.)
Speaker Fields
name- Speaker nameduration- Speaking timeword_count- Words spokenfiller_words- Filler word countquestions- Questions askedlongest_monologue- Longest uninterrupted speechwords_per_minute- Speaking pace
Filter Examples
By Date Range (ISO 8601)
{
"fromDate": "2024-01-01T00:00:00.000Z",
"toDate": "2024-01-31T23:59:59.999Z"
}
By Multiple Participants
{
"participants": ["user1@example.com", "user2@example.com"]
}
By Channel
{
"channel_id": "channel_id_here"
}
Combined Filters
{
"fromDate": "2024-01-01T00:00:00.000Z",
"toDate": "2024-01-31T23:59:59.999Z",
"participants": ["sales@example.com"],
"keyword": "pricing",
"scope": "ALL",
"limit": 50
}
PowerShell Examples
$headers = @{
"Authorization" = "Bearer $env:FIREFLIES_API_KEY"
"Content-Type" = "application/json"
}
# Get recent transcripts
$body = @{
query = "{ transcripts(mine:true,limit:10) { id title date } }"
} | ConvertTo-Json
Invoke-RestMethod -Uri "https://api.fireflies.ai/graphql" -Method POST -Headers $headers -Body $body
Notes
- Rate Limits: Check with Fireflies support for current limits
- Pagination: Use
limit(max 50) andskipfor large result sets - Date Format: Always use ISO 8601 format:
YYYY-MM-DDTHH:mm:ss.sssZ - Audio/Video URLs: Expire after 24 hours, regenerate as needed
- Analytics: Requires Pro plan or higher
- Video Recording: Must be enabled in dashboard settings
Common Use Cases
- Weekly Pipeline Review: Search transcripts by date + participants
- Follow-up Tasks: Extract action items from recent meetings
- Competitor Mentions: Search keyword in sentences
- Speaking Analytics: Analyze talk time, questions asked
- Meeting Insights: Get summaries and key topics
No README available.
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
FAQ
How do I install fireflies?
Run openclaw add @daniil-ctrl/fireflies in your terminal. This installs fireflies into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/daniil-ctrl/fireflies. Review commits and README documentation before installing.
