Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Fireflies

Scalekit connector
Open markdown

The Fireflies connector lets your AI agent act in each user's Fireflies account. Each user connects their own Fireflies access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 36 tools.

Tools
36
What they doRead · write · destructive
18 · 14 · 418 read14 write4 destructive
Users sign in with

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Fireflies connection

    In AgentKit > Connections, create a Fireflies connection. The name you give it is the connection_name your code passes. See Configure connections.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'fireflies'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Fireflies:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'fireflies_active_meetings_list',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their Fireflies credentials there. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • fireflies_active_meetings_listList the meetings the Fireflies bot is currently in (in progress, either recording or paused), optionally for one user's email or only those in the active or paused state.Read-only

    List Active Meetings

    List the meetings the Fireflies bot is currently in (in progress, either recording or paused), optionally for one user's email or only those in the active or paused state. Returns each meeting's id, title, organizer email, meeting link, start time, scheduled end time, privacy setting, and state (active or paused). Use this to find the meeting ID that fireflies_live_action_items_list, fireflies_live_action_item_create, fireflies_live_soundbite_create, and fireflies_meeting_state_update need. Use fireflies_transcripts_list for finished meetings, and fireflies_live_meeting_add to send the bot into a call it is not yet in. Regular users can only list their own meetings; listing another user's meetings needs admin privileges and a user in the same team. Fireflies can answer HTTP 200 with an errors array next to partial data, so use whatever data is present instead of treating the call as failed.

    Inputs

    emailstring
    Email address of the team member whose in-progress meetings to list. Omit it to list the connected user's own meetings. Regular users can only pass their own email; admins can pass the email of any user in their team. The email must belong to a user in the same team as the connected user. Example: rep@company.com
    statesarray
    Only return meetings in these states. active means the Fireflies bot is in the meeting and actively recording; paused means the bot is still in the meeting but recording is temporarily stopped. Omit it to return meetings in both states; an empty list is treated the same as omitting it. Example: ["active"]
  • fireflies_analytics_getGet Fireflies conversation and meeting analytics for the team and for each user, optionally limited to a date range.Read-only

    Get Analytics

    Get Fireflies conversation and meeting analytics for the team and for each user, optionally limited to a date range. Returns team-level meeting counts and durations, averages and totals for filler words, questions, monologues, silence, talk-to-listen ratio, words per minute and average sentiment percentages, plus a per-user breakdown of speaking time, word counts, questions, filler words, monologues and meeting counts, each with its change versus the previous period where Fireflies provides one. Durations are in minutes, except the longest-monologue fields, which are in seconds. Use this for team or per-user talk-time and meeting-volume metrics over a period. Use fireflies_transcripts_list to find the individual meetings behind the numbers, fireflies_transcript_get for one meeting's content, and fireflies_users_list for the team roster without metrics. Requires a Business or higher plan (without it Fireflies returns paid_required: "You need to be subscribed to a business or higher plan to perform this action"), and start_time and end_time must be at most 30 days apart (a longer range returns invalid_arguments) and admin privileges (without them Fireflies returns require_elevated_privilege: "The user does not have admin privileges to view analytics for team."). Fireflies can answer HTTP 200 with an errors array next to partial data, so use whatever data is present instead of treating the call as failed.

    Inputs

    end_timestring
    End of the reporting period as an ISO 8601 datetime; analytics are limited to activity up to this moment. Pair it with start_time for a closed range. Leave empty to send no end filter. Example: 2025-01-31T23:59:59.000Z
    start_timestring
    Start of the reporting period as an ISO 8601 datetime; analytics are limited to activity from this moment onward. Pair it with end_time for a closed range. Leave empty to send no start filter. Example: 2025-01-01T00:00:00.000Z
  • fireflies_apps_listList the outputs that Fireflies AI Apps generated for meetings, optionally filtered by AI App ID or by transcript ID.Read-only

    List AI App Outputs

    List the outputs that Fireflies AI Apps generated for meetings, optionally filtered by AI App ID or by transcript ID. Returns each output's transcript_id, user_id (the owner of the AI App), app_id, title, prompt, response, and created_at as Unix time in milliseconds. Page with limit (max 10) and skip. Use this to read what an AI App produced for a meeting or across meetings. Use fireflies_transcript_get for a meeting's own summary and sentences, and fireflies_transcripts_list to find transcript IDs. To filter by meeting, take the transcript ID from fireflies_transcripts_list first; AI App IDs come from the app_id field of earlier results. An unknown transcript_id can make Fireflies answer HTTP 200 with an INTERNAL_SERVER_ERROR entry in the errors array instead of an empty list, so check the ID before retrying. Fireflies can answer HTTP 200 with an errors array next to partial data, so use whatever data is present instead of treating the call as failed.

    Inputs

    app_idstring
    Return only the outputs produced by this AI App, identified by its app ID (the app_id field of an earlier result). Leave empty to include every AI App. Example: 01JABCDEF3GHJKMNPQRSTVWXYA
    limitinteger
    Maximum number of AI App outputs to return in one call, from 1 to 10. Fireflies returns 10 records by default, which is also the maximum for a single request, so use skip to page through more. Defaults to 10.default 10
    skipinteger
    Number of AI App outputs to skip before returning results, used with limit for paging. Add the previous limit to the previous skip to get the next page, for example skip 10 with limit 10 for the second page. Leave empty or use 0 to start at the first output.
    transcript_idstring
    Return only the AI App outputs generated for this meeting, using the id field from fireflies_transcripts_list. Leave empty to include outputs from every meeting. Example: 01HZX2ABCDEF3GHJKMNPQRSTVW
  • fireflies_askfred_thread_getFetch one AskFred conversation thread by its ID, including every question and answer in it.Read-only

    Get AskFred Thread

    Fetch one AskFred conversation thread by its ID, including every question and answer in it. Returns the thread's id, title, linked transcript_id, owner user_id, and created_at, plus each message's id, thread_id, query (the question), answer, suggested_queries (follow-up questions), status (processing, completed, or failed), created_at, and updated_at. Use this to read or review a thread's history. Use fireflies_askfred_threads_list to find thread IDs without loading the messages, and fireflies_askfred_thread_continue to ask another question inside the thread. Requires a thread ID from fireflies_askfred_threads_list or from the thread_id of a fireflies_askfred_thread_create result. A message with status processing is still being answered, so call again later for its final answer. Fireflies can answer HTTP 200 with an errors array next to partial data, so use whatever data is present instead of treating the call as failed.

    Inputs

    thread_idstringrequired
    ID of the AskFred thread to fetch, taken from the id field returned by fireflies_askfred_threads_list or from the thread_id on the message returned by fireflies_askfred_thread_create. Example: thread_abc123
  • fireflies_askfred_threads_listList the AskFred conversation threads owned by the connected Fireflies user, optionally only those linked to one transcript.Read-only

    List AskFred Threads

    List the AskFred conversation threads owned by the connected Fireflies user, optionally only those linked to one transcript. Returns a summary of each thread with its id, title, linked transcript_id (when it is tied to one meeting), owner user_id, and created_at timestamp; the messages are left out and the query takes no limit or paging arguments. Use this to find thread IDs. Use fireflies_askfred_thread_get for the full questions and answers of one thread, fireflies_askfred_thread_create to start a new conversation, and fireflies_askfred_thread_continue to add a follow-up question to a thread. Lists only threads that belong to the user who owns the API key. Fireflies can answer HTTP 200 with an errors array next to partial data, so use whatever data is present instead of treating the call as failed.

    Inputs

    transcript_idstring
    Return only the AskFred threads linked to this Fireflies transcript, using the id returned by fireflies_transcripts_list. Leave blank to return all of your threads. Example: 01HZX2ABCDEF3GHJKMNPQRSTVW
  • fireflies_audit_events_listList audit events (Beta) for the connected Fireflies team within one category, optionally narrowed to one action, a date range, or the person who performed it.Read-only

    List Audit Events

    List audit events (Beta) for the connected Fireflies team within one category, optionally narrowed to one action, a date range, or the person who performed it. Returns each event's id, time, category, action, severity, status, message, the actor (user_id, email, full_name, ip_address, any of which can be null), the affected resource (type and id), the OCSF class_uid, activity_id, and type_uid, and a metadata JSON string whose keys depend on the action, plus has_more and next_cursor for paging. Use this to see who deleted, viewed, shared, downloaded, or changed meetings, teammates, roles, and settings, and who logged in or out. Use fireflies_rule_executions_list for what Fireflies automation rules did to meetings, and fireflies_users_list to resolve actor user IDs and emails. Requires an Enterprise plan and an API key that belongs to a team admin (otherwise Fireflies returns paid_required or require_elevated_privilege). category is required. Page with limit (1 to 50) and the next_cursor value of the previous page while has_more is true. Fireflies can answer HTTP 200 with an errors array next to partial data, so use whatever data is present instead of treating the call as failed.

    Inputs

    categorystringrequired
    Group of audit events to return. Required. MEETING_OPERATIONS covers meeting deleted, privacy updated, viewed, shared, access revoked, downloaded, title updated, moved to a channel, and soundbite created. TEAM_OPERATIONS covers teammate added or removed and user group members added or removed. USER_OPERATIONS covers user role changes and team settings updates. AUTHENTICATION covers user login and logout. Example: MEETING_OPERATIONSone of MEETING_OPERATIONSTEAM_OPERATIONSUSER_OPERATIONSAUTHENTICATION
    actionstring
    Return only events of this specific action, which must belong to the chosen category. MEETING_OPERATIONS actions: MEETING_DELETED, MEETING_PRIVACY_UPDATED, MEETING_VIEWED (a meeting summary was viewed), MEETING_SHARED, MEETING_ACCESS_REVOKED, MEETING_DOWNLOADED (a transcript or recording was downloaded), MEETING_TITLE_UPDATED, MEETING_MOVED_TO_CHANNEL, SOUNDBITE_CREATED. TEAM_OPERATIONS actions: TEAMMATE_ADDED, TEAMMATE_REMOVED, USER_GROUP_MEMBER_ADDED, USER_GROUP_MEMBER_REMOVED. USER_OPERATIONS actions: USER_ROLE_CHANGED, SETTINGS_UPDATED. AUTHENTICATION actions: LOGIN, LOGOUT. Leave empty to return every action in the category. Example: MEETING_DELETEDone of MEETING_DELETEDMEETING_PRIVACY_UPDATEDMEETING_VIEWEDMEETING_SHAREDMEETING_ACCESS_REVOKEDMEETING_DOWNLOADEDMEETING_TITLE_UPDATEDMEETING_MOVED_TO_CHANNELSOUNDBITE_CREATEDTEAMMATE_ADDEDTEAMMATE_REMOVEDUSER_ROLE_CHANGEDUSER_GROUP_MEMBER_ADDEDUSER_GROUP_MEMBER_REMOVEDSETTINGS_UPDATEDLOGINLOGOUT
    actor_emailstring
    Return only events performed by the Fireflies user with this email address. Fireflies resolves the email to a user ID, and it takes precedence over actor_user_id when both are set. Example: alice@example.com
    actor_user_idstring
    Return only events performed by the Fireflies user with this user ID, as returned in user_id by fireflies_users_list or in an earlier event's actor. If actor_email is also set, actor_email takes precedence and this value is ignored. Example: user_abc123
    cursorstring
    Paging cursor. Pass the next_cursor value from the previous response to fetch the next page, and keep the same category and filters. Omit it for the first page. Example: eyJpZCI6IjdhMWM0ZDVlIn0=
    date_fromstring
    Return only events that occurred from this date, as an ISO 8601 timestamp. Example: 2026-10-01T00:00:00.000Z
    date_tostring
    Return only events that occurred up to this date, as an ISO 8601 timestamp. Example: 2026-10-14T23:59:59.000Z
    limitinteger
    Maximum number of events to return, from 1 to 50. Defaults to 20. Use next_cursor to fetch further pages. Example: 20default 20
  • fireflies_bite_getGet one Fireflies bite, a short clip (also called a soundbite) cut from a meeting recording, by its ID.Read-only

    Get Bite

    Get one Fireflies bite, a short clip (also called a soundbite) cut from a meeting recording, by its ID. Returns the bite's name, AI summary and summary status, processing status (pending, processing, ready, or error), media type, start and end time, privacies (who can open it), creation date, source meeting, creator, thumbnail and preview links, media sources, and the caption lines with speaker name, text, and start and end time. Use this for the full detail and captions of one bite, or to check whether a new bite has finished processing. Use fireflies_bites_list to find bite IDs (it omits captions), fireflies_bite_create to clip a new bite, and fireflies_transcript_get for the full sentences of the whole meeting. Requires a bite ID from fireflies_bites_list or fireflies_bite_create; an unknown ID returns a null bite with no errors array, not an object_not_found error. Fireflies can answer HTTP 200 with an errors array next to partial data, so use whatever data is present instead of treating the call as failed.

    Inputs

    bite_idstringrequired
    ID of the Fireflies bite to fetch, taken from the id field returned by fireflies_bites_list or fireflies_bite_create. This is the bite ID, not the transcript ID of the meeting it was cut from. Example: 01JABCDEF2GHJKMNPQRSTVWXYZ
  • fireflies_bites_listList Fireflies bites, short clips (also called soundbites) cut from meeting recordings, for the owner of the connected API key (mine or my_team) or for one transcript (transcript_id).Read-only

    List Bites

    List Fireflies bites, short clips (also called soundbites) cut from meeting recordings, for the owner of the connected API key (mine or my_team) or for one transcript (transcript_id). Returns each bite's id, name, AI summary, summary status, processing status (pending, processing, ready, or error), media type, start and end time, privacies, creation date, transcript_id, creator, source meeting, thumbnail and preview links, and media sources, without caption lines. Page with limit (max 50) and skip. Use this to find bite IDs or to see which clips exist for a meeting. Use fireflies_bite_get for one bite's captions, fireflies_bite_create to clip a new bite, and fireflies_transcripts_list to find transcript IDs. Requires at least one of mine, my_team, or transcript_id; with none of them Fireflies returns the args_required error. Fireflies can answer HTTP 200 with an errors array next to partial data, so use whatever data is present instead of treating the call as failed.

    Inputs

    limitinteger
    Maximum number of bites to return in one call, up to 50 (Fireflies' documented maximum). Fireflies does not document a default page size, so pass an explicit limit such as 25. Example: 25
    mineboolean
    Set to true to return only the bites that belong to the owner of the connected API key. At least one of mine, my_team, or transcript_id must be provided. Example: true
    my_teamboolean
    Set to true to request the my_team result set. Fireflies documents it only as fetching results for the owner of the API key, so how it differs from mine is not specified; use transcript_id when you need every bite of one meeting. At least one of mine, my_team, or transcript_id must be provided. Example: true
    skipinteger
    Number of bites to skip before returning results, used with limit for paging. Add the previous limit to the previous skip to get the next page. Use 0 or leave blank for the first page. Example: 25
    transcript_idstring
    Return only the bites cut from this transcript (meeting), using the id field from fireflies_transcripts_list. At least one of mine, my_team, or transcript_id must be provided. Example: 01HZX2ABCDEF3GHJKMNPQRSTVW