FI

fireflies-upgrade-migration

Helps developers migrate from deprecated Fireflies.ai API patterns to current, supported query structures.

Install

mkdir -p .claude/skills/fireflies-upgrade-migration && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6909" && unzip -o skill.zip -d .claude/skills/fireflies-upgrade-migration && rm skill.zip

Installs to .claude/skills/fireflies-upgrade-migration

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Handle Fireflies.ai API deprecations and migrate to current query patterns.
75 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Scan codebase for deprecated GraphQL query parameters
  • Update transcript query patterns to array-based filters
  • Introspect GraphQL schema for field changes
  • Test updated queries with automated scripts
  • Monitor API changelogs for breaking changes

How it works

The skill identifies deprecated GraphQL fields and parameters, providing a mapping to current API patterns and tools to introspect the schema for real-time validation.

Inputs & outputs

You give it
Deprecated GraphQL query string
You get back
Updated GraphQL query string with current parameters

When to use fireflies-upgrade-migration

  • Updating deprecated GraphQL query parameters
  • Migrating from single email filters to array-based filters
  • Aligning integration code with API changelog updates
  • Removing deprecated title search patterns

About this skill

Fireflies.ai Upgrade & Migration

Current State

!npm list graphql graphql-request 2>/dev/null || echo 'No graphql packages'

Overview

Fireflies.ai uses a GraphQL API (no versioned SDK). Breaking changes come as field deprecations and new query parameter patterns. This skill covers all known deprecations and migration paths.

Known Deprecations

Transcript Query Parameter Changes

// DEPRECATED: Single organizer email string
const OLD = `{ transcripts(organizer_email: "[email protected]") { id } }`;

// CURRENT: Array of organizer emails
const NEW = `{ transcripts(organizers: ["[email protected]"]) { id } }`;
// DEPRECATED: Single participant email string
const OLD = `{ transcripts(participant_email: "[email protected]") { id } }`;

// CURRENT: Array of participant emails
const NEW = `{ transcripts(participants: ["[email protected]"]) { id } }`;
// DEPRECATED: title parameter for search
const OLD = `{ transcripts(title: "standup") { id } }`;

// CURRENT: keyword with scope
const NEW = `{ transcripts(keyword: "standup") { id } }`;
// DEPRECATED: date parameter (single date)
const OLD = `{ transcripts(date: "2026-03-01") { id } }`;

// CURRENT: fromDate/toDate range
const NEW = `{
  transcripts(
    fromDate: "2026-03-01T00:00:00Z"
    toDate: "2026-03-31T23:59:59Z"
  ) { id }
}`;

Field-Level Deprecations

// DEPRECATED
transcript.host_email

// CURRENT
transcript.organizer_email

Migration Procedure

Step 1: Scan Codebase for Deprecated Patterns

set -euo pipefail
echo "=== Scanning for deprecated Fireflies patterns ==="

# Deprecated query parameters
grep -rn 'organizer_email:' --include='*.ts' --include='*.js' --include='*.py' . || echo "No organizer_email (good)"
grep -rn 'participant_email:' --include='*.ts' --include='*.js' --include='*.py' . || echo "No participant_email (good)"
grep -rn 'host_email' --include='*.ts' --include='*.js' --include='*.py' . || echo "No host_email (good)"
grep -rn 'transcripts(.*title:' --include='*.ts' --include='*.js' --include='*.py' . || echo "No title param (good)"
grep -rn 'transcripts(.*date:' --include='*.ts' --include='*.js' --include='*.py' . || echo "No date param (good)"

Step 2: Update Query Patterns

Create a migration helper:

// migrations/fireflies-deprecations.ts

/**
 * Maps old query parameter names to new ones.
 * Update your GraphQL queries to use the new parameter names.
 */
const PARAM_MIGRATIONS: Record<string, string> = {
  "organizer_email": "organizers (now an array)",
  "participant_email": "participants (now an array)",
  "title": "keyword",
  "date": "fromDate + toDate",
  "host_email": "organizer_email",
};

export function checkForDeprecations(query: string): string[] {
  const warnings: string[] = [];
  for (const [old, replacement] of Object.entries(PARAM_MIGRATIONS)) {
    if (query.includes(old)) {
      warnings.push(`Deprecated: "${old}" → use "${replacement}"`);
    }
  }
  return warnings;
}

Step 3: Introspect Schema for Changes

set -euo pipefail
# Discover all available query fields
curl -s -X POST https://api.fireflies.ai/graphql \
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "{ __schema { queryType { fields { name args { name type { name kind } } } } } }"
  }' | jq '.data.__schema.queryType.fields[] | {name, args: [.args[] | .name]}'

# Discover transcript fields
curl -s -X POST https://api.fireflies.ai/graphql \
  -H "Authorization: Bearer $FIREFLIES_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "{ __type(name: \"Transcript\") { fields { name type { name kind } } } }"
  }' | jq '.data.__type.fields[] | .name'

Step 4: Test Updated Queries

import { describe, it, expect } from "vitest";
import { checkForDeprecations } from "../migrations/fireflies-deprecations";

describe("Deprecation Check", () => {
  it("should flag deprecated parameters", () => {
    const warnings = checkForDeprecations(
      '{ transcripts(organizer_email: "test") { id } }'
    );
    expect(warnings.length).toBeGreaterThan(0);
    expect(warnings[0]).toContain("organizers");
  });

  it("should pass clean queries", () => {
    const warnings = checkForDeprecations(
      '{ transcripts(organizers: ["test"]) { id } }'
    );
    expect(warnings.length).toBe(0);
  });
});

Step 5: Monitor Fireflies Changelog

# Check for API updates
set -euo pipefail
curl -s https://docs.fireflies.ai/additional-info/change-log | head -100
# Or visit: https://docs.fireflies.ai/getting-started/whats-new

Error Handling

IssueCauseSolution
Field not foundUsing removed fieldIntrospect schema, update query
Unexpected nullField renamedCheck deprecation list above
Query validation errorOld parameter nameUpdate to array-based params
Type mismatchString vs array paramWrap single value in array

Output

  • Codebase scanned for deprecated patterns
  • All queries updated to current API patterns
  • Schema introspection results for reference
  • Tests verifying updated queries work

Resources

Next Steps

For CI integration during upgrades, see fireflies-ci-integration.

When not to use it

  • Using single email strings for organizer or participant filters
  • Relying on deprecated host_email fields

Limitations

  • Requires manual update of GraphQL queries
  • Type mismatches occur if single values are not wrapped in arrays

How it compares

This workflow automates the detection of specific Fireflies API deprecations rather than relying on manual changelog review.

Compared to similar skills

fireflies-upgrade-migration side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
fireflies-upgrade-migration (this skill)127dReviewIntermediate
api-contract-sync-manager110moNo flagsIntermediate
endpoint-validator19moReviewIntermediate
exa-upgrade-migration127dReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by jeremylongshore

View all by jeremylongshore

analyzing-logs

jeremylongshore

Analyze application logs to detect performance issues, identify error patterns, and improve stability by extracting key insights.

14123

ollama-setup

jeremylongshore

Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs. Trigger phrases: "install ollama", "local AI", "free LLM", "self-hosted AI", "replace OpenAI", "no API costs". Use when appropriate context detected. Trigger with relevant phrases based on skill purpose.

1167

backtesting-trading-strategies

jeremylongshore

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

1071

generating-database-seed-data

jeremylongshore

Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u... Use when working with databases or data models. Trigger with phrases like 'database', 'query', or 'schema'.

1033

cursor-codebase-indexing

jeremylongshore

Execute set up and optimize Cursor codebase indexing. Triggers on "cursor index setup", "codebase indexing", "index codebase", "cursor semantic search". Use when working with cursor codebase indexing functionality. Trigger with phrases like "cursor codebase indexing", "cursor indexing", "cursor".

885

testing-mobile-apps

jeremylongshore

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

810

You might also like

api-contract-sync-manager

ananddtyagi

Validate OpenAPI, Swagger, and GraphQL schemas match backend implementation. Detect breaking changes, generate TypeScript clients, and ensure API documentation stays synchronized. Use when working with API spec files (.yaml, .json, .graphql), reviewing API changes, generating frontend types, or validating endpoint implementations.

18

endpoint-validator

mikopbx

Валидация REST API эндпоинтов на соответствие OpenAPI схеме и консистентность параметров. Использовать при реализации эндпоинтов, ревью кода или перед слиянием изменений API.

14

exa-upgrade-migration

jeremylongshore

Analyze, plan, and execute Exa SDK upgrades with breaking change detection. Use when upgrading Exa SDK versions, detecting deprecations, or migrating to new API versions. Trigger with phrases like "upgrade exa", "exa migration", "exa breaking changes", "update exa SDK", "analyze exa version".

14

obsidian-upgrade-migration

jeremylongshore

Migrate Obsidian plugins between API versions and handle breaking changes. Use when upgrading to new Obsidian versions, handling API deprecations, or migrating plugin code to new patterns. Trigger with phrases like "obsidian upgrade", "obsidian migration", "obsidian API changes", "update obsidian plugin".

04

instantly-sdk-patterns

jeremylongshore

Apply production-ready Instantly SDK patterns for TypeScript and Python. Use when implementing Instantly integrations, refactoring SDK usage, or establishing team coding standards for Instantly. Trigger with phrases like "instantly SDK patterns", "instantly best practices", "instantly code patterns", "idiomatic instantly".

12

juicebox-sdk-patterns

jeremylongshore

Apply production-ready Juicebox SDK patterns. Use when implementing robust error handling, retry logic, or enterprise-grade Juicebox integrations. Trigger with phrases like "juicebox best practices", "juicebox patterns", "production juicebox", "juicebox SDK architecture".

11

Search skills

Search the agent skills registry