> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yuzulabs.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Fireflies

> Connect Fireflies via API key and webhook to import transcripts the moment meetings end.

Fireflies pushes a webhook to Yuzu when a transcript finishes processing. Yuzu then uses your Fireflies API key to fetch the full transcript, summary, and speaker-labeled segments.

**Auth method:** API key + webhook URL.

## Prerequisites

* A Fireflies account on a plan that exposes the Developer settings (Pro or higher).
* Permission to add a webhook in Fireflies workspace settings.
* Fireflies must be set to record and transcribe the meetings you want in Yuzu.

## Setup

<Steps>
  <Step title="Open Yuzu Settings → Integrations">
    In your Yuzu workspace, go to **Settings → Integrations** and click **Connect Notetaker**, then choose **Fireflies**.
  </Step>

  <Step title="Grab your Fireflies API key">
    Open [Fireflies Settings → Developer](https://app.fireflies.ai/integrations/api/webhook). Copy the API key shown there.

    <Frame />
  </Step>

  <Step title="Paste the API key and your account email into Yuzu">
    Yuzu validates the key against the Fireflies GraphQL API before saving it. The email should be the address tied to your Fireflies account.
  </Step>

  <Step title="Copy the webhook URL Yuzu generates">
    After Yuzu saves the key, it shows a unique webhook URL of the form `https://<your-yuzu-host>/webhooks/notetaker/ntk_<token>`. Copy it.

    <Frame />
  </Step>

  <Step title="Add the webhook in Fireflies">
    Back in [Fireflies Settings → Developer](https://app.fireflies.ai/integrations/api/webhook):

    1. Paste the URL into the **Webhook URL** field.
    2. Choose **Meeting Transcribed** as the trigger event.
    3. Save.

    <Frame />
  </Step>

  <Step title="Confirm and finish">
    Tick the **I have added the webhook URL** box in Yuzu and click **Complete Setup**. Yuzu auto-starts a sync of the last 7 days of meetings in the background.
  </Step>
</Steps>

## What gets pulled

For each completed meeting, Yuzu imports:

* The full transcript with speaker-labeled sentences (Fireflies provides high-quality diarization).
* Title, date, duration, host email, organizer email, and participants.
* The Fireflies-generated summary and action items.
* The transcript URL, audio URL, and video URL.

If the meeting is classified as a sales call, it's eligible to trigger a sales recap video flow based on your automation rules.

## Historical sync

After connecting, you can import past meetings from **Settings → Integrations → Sync Meetings**. Choose 7 days, 2 weeks, or 4 weeks. Existing transcripts are not duplicated.

<Note>
  Fireflies' API does not document a public rate limit, so Yuzu paces fetches with a short delay between requests. A 4-week sync of a heavy user typically completes in a few minutes.
</Note>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Webhooks aren't arriving">
    Open the webhook URL row in your Fireflies Developer settings. Make sure the URL starts with `https://` and ends with the `ntk_…` token from Yuzu — a regenerated token in Yuzu invalidates the old one immediately. Trigger a test by recording a short meeting; the activity log under **Settings → Automations** shows webhook arrivals.
  </Accordion>

  <Accordion title="Yuzu rejected my API key">
    The connect dialog tests the key by calling Fireflies' `user` GraphQL query. A failure means either the key is invalid or your Fireflies plan doesn't expose API access. Confirm both, then paste the key again.
  </Accordion>

  <Accordion title="The transcript came in but with no speaker names">
    Fireflies labels speakers using participant emails on the calendar event. If a meeting was recorded outside your calendar or the participant emails didn't resolve, you may see generic `Speaker 1` / `Speaker 2` labels. This is upstream from Yuzu.
  </Accordion>

  <Accordion title="A meeting completed but no video was created">
    Check **Settings → Automations → Activity log** for that meeting. The most common reasons: the meeting wasn't classified as a sales call, your automation rules excluded it (length, attendees, or pillar), or the workspace is out of video quota.
  </Accordion>
</AccordionGroup>
