Fireflies
Fireflies node reference - all 32 operations, the credential it needs, and a worked example.
Fireflies.ai GraphQL API (Recruiting & Meetings). 32 operations: transcripts (search, read, summary, analytics), audio upload, meeting title, privacy, channel and sharing management, deletion; live meetings (list active, send the notetaker, pause/resume, action items); soundbites; channels; users, user groups and contacts; team analytics; AI App outputs; and AskFred question-and-answer threads.
Credential: Fireflies API key - see Credentials.
Plan or roles
Each operation below lists the plan or role it needs. Plan or roles are held by the Fireflies account that issued the API key. Fireflies has NO scopes and no consent screen - a key is one opaque string minted by one user, and it carries that user's role and that workspace's plan. So a refusal is never a missing checkbox: forbidden means the key's owner does not own the meeting (or is not a team admin), and paid_required means the account is on the wrong tier. Narrow the blast radius by minting the key under a non-admin user. If a run fails with a permission error, the node names the missing plan or role in the error - grant it and re-run; you do not need to rebuild the workflow.
Operations (32)
Transcripts & meetings
| Operation | What it does | Plan or role |
|---|---|---|
listTranscripts | List transcripts | (any valid API key — results are limited to the meetings its owner can already see) |
getTranscript | Get transcript | (any valid API key — plus a Pro plan or above if you tick Include media URLs, which are Pro-gated) |
getTranscriptSummary | Get meeting summary | (any valid API key — results are limited to the meetings its owner can already see) |
getTranscriptAnalytics | Get meeting analytics | (a Pro plan or above — conversation analytics is plan-gated and a Free key gets paid_required) |
uploadAudio | Upload audio or video for transcription | (a Pro plan or above — the docs name this operation as the example of paid_required with tier pro_or_higher) |
updateMeetingTitle | Rename meeting | (the meeting's owner, or a team admin) |
updateMeetingPrivacy | Set meeting privacy | (the meeting's owner, or a team admin) |
updateMeetingChannel | Move meetings into a channel | (the meetings' owner, or a team admin) |
shareMeeting | Share meeting by email | (the meeting's owner, or a team admin) |
revokeSharedMeetingAccess | Revoke a shared meeting | (the meeting's owner, or a team admin) |
deleteTranscript | Delete transcript | (the meeting's owner — deleting a teammate's meeting needs a team admin) |
Live meetings
| Operation | What it does | Plan or role |
|---|---|---|
listActiveMeetings | List active meetings | (any valid API key for your own live meetings — a team admin to pass another user's email) |
addToLiveMeeting | Send the notetaker to a live meeting | (any valid API key) |
updateMeetingState | Pause / resume recording | (any valid API key — its owner must be able to control that live meeting) |
listLiveActionItems | List live action items | (any valid API key that can see the live meeting) |
createLiveActionItem | Create a live action item | (AI credits on the account — Fred writes the action item from your prompt) |
Soundbites
| Operation | What it does | Plan or role |
|---|---|---|
listBites | List soundbites | (any valid API key — soundbites you own, or your team's) |
getBite | Get soundbite | (any valid API key that can see the soundbite) |
createBite | Create soundbite | (write access to the meeting the clip is cut from) |
Channels
| Operation | What it does | Plan or role |
|---|---|---|
listChannels | List channels | (any valid API key — public channels in your team, plus private ones you are a member of) |
getChannel | Get channel | (any valid API key — the channel must be public in your team, or you a member of it) |
Users & team
| Operation | What it does | Plan or role |
|---|---|---|
getUser | Get user (or the key owner) | (any valid API key — omit the user ID to read the key owner's own profile) |
listUsers | List team users | (a team admin to see the full team roster) |
listUserGroups | List user groups | (any valid API key) |
listContacts | List contacts | (any valid API key — the key owner's own contacts) |
Analytics & AI Apps
| Operation | What it does | Plan or role |
|---|---|---|
getAnalytics | Get team analytics | (a Pro plan or above, and a team admin for the team-level figures) |
listAppOutputs | List AI App outputs | (any valid API key — AI App outputs the key owner can see) |
AskFred
| Operation | What it does | Plan or role |
|---|---|---|
askFred | Ask Fred about your meetings | (AI credits on the account) |
continueAskFredThread | Ask a follow-up | (AI credits on the account) |
listAskFredThreads | List AskFred threads | (any valid API key — the key owner's own threads) |
getAskFredThread | Get AskFred thread | (any valid API key — the key owner's own threads) |
deleteAskFredThread | Delete AskFred thread | (the thread's owner) |
Example
Pull the summary of a meeting that just ended
The reason to connect Fireflies at all: turn a call into text a workflow can route. The summary is a separate read from the transcript, and it is the cheaper one — take it when you want action items and an overview rather than the full utterance-by-utterance record.
Set Operation to getTranscriptSummary, then fill in:
| Field | Value | Notes |
|---|---|---|
transcriptId | {{ myTrigger.transcriptId }} | From a listTranscripts node, or from the Fireflies notification that started the run |
Sets {{summary.summary}} (overview, action items and keywords) and {{summary.transcriptId}}. Feed it into an AI node or straight into Slack.