Skip to main content

Overview

Connect Fireflies webhooks to Zapier to automatically fetch transcripts when meetings are processed. This guide creates a two-step Zap:
  1. Trigger — receive a webhook notification when a meeting is transcribed
  2. Action — use the meetingId from the webhook to fetch the transcript via the GraphQL API

Prerequisites

  • A Fireflies.ai account with webhook access
  • A Zapier paid plan (Professional or above — Webhooks by Zapier is not available on the free tier)
  • Your Fireflies API key

Step 1: Create the Zapier webhook trigger

1

Create a new Zap

Log in to Zapier and click Create.
2

Select trigger

Search for Webhooks by Zapier → choose Catch Hook.
3

Skip Configure

Leave the Pick off a Child Key field blank and click Continue.
4

Copy the webhook URL

On the Test tab, copy the generated URL (e.g. https://hooks.zapier.com/hooks/catch/123456/abcdef/). You’ll paste this into Fireflies next.

Step 2: Add the webhook URL in Fireflies

1

Open Developer settings

Go to Fireflies settingsDeveloper settings in the left sidebar.
2

Configure the webhook

Under Webhook, click Configure and fill in:
  • Webhook URL — paste the Zapier URL from Step 1
  • Trigger when transcription is completed — check this box
3

Save

Click Save.

Step 3: Test the connection

1

Listen for a test event

In Zapier, click Test trigger. Then upload a short audio file in Fireflies to generate a webhook event.
2

Verify the payload

Zapier should receive a payload like:
{
  "meetingId": "ASxwZxCstx",
  "eventType": "Transcription completed"
}
The meetingId is the transcript ID you’ll use next.

Step 4: Fetch the transcript

Add a second step to your Zap that calls the Fireflies GraphQL API with the meetingId.
1

Add action

Click + → search Webhooks by Zapier → select Custom Request.
2

Configure the request

  • Method: POST
  • URL: https://api.fireflies.ai/graphql
  • Headers:
KeyValue
Content-Typeapplication/json
AuthorizationBearer YOUR_API_KEY
3

Set the request body

In the Data field, enter:
{
  "query": "query Transcript($transcriptId: String!) { transcript(id: $transcriptId) { id title date organizer_email participants transcript_url duration summary { overview action_items shorthand_bullet short_summary } sentences { speaker_name text start_time end_time } } }",
  "variables": {
    "transcriptId": "{{meetingId}}"
  }
}
Do not type {{meetingId}} literally. Use Zapier’s Insert Data picker to select Meeting Id from the trigger step — the field should show a data pill, not raw text.
4

Test

Click Test step. You should see the transcript data in the response.

Step 5: Extend your Zap

With transcript data flowing into Zapier, add more steps to automate your workflow:
  • Slack — post meeting summaries to a channel
  • Google Sheets — log meeting details in a spreadsheet
  • Asana / Jira / Trello — create tasks from action items
  • Email — send recaps to attendees
  • Salesforce / HubSpot — push notes to your CRM

Customizing the query

Modify the GraphQL query in Step 4 to fetch only the fields you need. See the Transcript schema for all available fields. Example with speaker analytics and AI filters:
query Transcript($transcriptId: String!) {
  transcript(id: $transcriptId) {
    id
    title
    summary {
      overview
      action_items
    }
    analytics {
      speakers {
        name
        duration
        words_per_minute
      }
    }
    sentences {
      speaker_name
      text
      ai_filters {
        task
        question
        sentiment
      }
    }
  }
}

Troubleshooting

  • Verify you’re using the correct meetingId from the webhook
  • Check your API key hasn’t expired
  • Ensure the header is Bearer YOUR_API_KEY (with a space after Bearer)
  • The API key must belong to the account that owns the webhook

Resources