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.zipInstalls 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.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
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
| Issue | Cause | Solution |
|---|---|---|
| Field not found | Using removed field | Introspect schema, update query |
| Unexpected null | Field renamed | Check deprecation list above |
| Query validation error | Old parameter name | Update to array-based params |
| Type mismatch | String vs array param | Wrap 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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| fireflies-upgrade-migration (this skill) | 1 | 27d | Review | Intermediate |
| api-contract-sync-manager | 1 | 10mo | No flags | Intermediate |
| endpoint-validator | 1 | 9mo | Review | Intermediate |
| exa-upgrade-migration | 1 | 27d | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →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.
endpoint-validator
mikopbx
Валидация REST API эндпоинтов на соответствие OpenAPI схеме и консистентность параметров. Использовать при реализации эндпоинтов, ревью кода или перед слиянием изменений API.
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".
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".
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".
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".