Skip to main content

Fireflies.ai Integration

Cync integrates with Fireflies.ai to fetch and analyze meeting transcripts.

Overview

Fireflies.ai is a meeting transcription service that:

  • Joins meetings via bot (Zoom, Teams, Meet)
  • Transcribes audio to text
  • Provides speaker identification
  • Generates meeting summaries

Setup

1. Get API Key

  1. Go to Fireflies Integrations
  2. Generate a new API key
  3. Copy the key

2. Configure Environment

# .env.local
FIREFLIES_API_KEY=your-api-key-here

API Usage

GraphQL Endpoint

Fireflies uses GraphQL:

https://api.fireflies.ai/graphql

Fetching Transcripts

const query = `
query Transcripts($limit: Int) {
transcripts(limit: $limit) {
id
title
dateString
duration
participants
transcript_url
summary {
overview
shorthand_bullet
action_items
}
}
}
`;

const response = await fetch('https://api.fireflies.ai/graphql', {
method: 'POST',
headers: {
'Authorization': `Bearer ${FIREFLIES_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ query, variables: { limit: 20 } })
});

Transcript Object

FieldTypeDescription
idstringUnique identifier
titlestringMeeting title
dateStringstringMeeting date
durationnumberDuration in seconds
participantsstring[]Attendee list
transcript_urlstringFull transcript URL
summary.overviewstringAI-generated overview
summary.action_itemsstring[]Extracted action items

Cync Implementation

Fireflies Client

// lib/services/fireflies.ts
export async function fetchTranscripts(limit = 20) {
const response = await firefliesClient.query({
query: TRANSCRIPTS_QUERY,
variables: { limit }
});

return response.data.transcripts;
}

API Route

// app/api/fireflies/route.ts
export async function GET() {
const transcripts = await fetchTranscripts();
return Response.json(transcripts);
}

Rate Limits

Fireflies has rate limits on API calls:

  • Check current limits in Fireflies dashboard
  • Implement caching for frequently accessed transcripts
  • Handle 429 (rate limit) errors gracefully

Data Flow

Fireflies API ──▶ /api/fireflies ──▶ UI Component


Local caching (future)

Troubleshooting

Authentication Errors

Error: 401 Unauthorized
  • Verify API key is correct
  • Check key hasn't been revoked
  • Ensure no extra whitespace in .env

Empty Transcripts

  • Meeting may still be processing
  • Bot may not have joined successfully
  • Check Fireflies dashboard for status