From fireflies-pack
Executes Fireflies.ai production checklist for integrations: API keys, webhooks with signature verification, GraphQL health checks, monitoring, rollback.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin fireflies-packThis skill is limited to using the following tools:
Complete checklist for deploying Fireflies.ai integrations to production. Covers API key management, webhook setup, health checks, and monitoring.
Deploys Fireflies.ai GraphQL clients and webhook receivers to Vercel, Docker, and Cloud Run. Includes Next.js webhook handler with signature verification, TypeScript client, and secret setup.
Provides production deployment checklist for TwinMind integrations, covering authentication, security, data privacy, infrastructure provisioning, and monitoring setup.
Executes Documenso production deployment checklist for integrations: auth/secrets, errors, performance, monitoring, webhooks, compliance, self-hosted PostgreSQL/K8s.
Share bugs, ideas, or general feedback.
Complete checklist for deploying Fireflies.ai integrations to production. Covers API key management, webhook setup, health checks, and monitoring.
FIREFLIES_API_KEY in secret manager (not env file)FIREFLIES_WEBHOOK_SECRET configured (16-32 chars)auth_failed, too_many_requests, require_ai_credits)x-hub-signature header verified on every request// /api/health
export async function GET() {
const checks: Record<string, any> = {};
// Fireflies API connectivity
try {
const start = Date.now();
const res = await fetch("https://api.fireflies.ai/graphql", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.FIREFLIES_API_KEY}`,
},
body: JSON.stringify({ query: "{ user { email } }" }),
signal: AbortSignal.timeout(5000),
});
const json = await res.json();
checks.fireflies = {
status: json.errors ? "error" : "healthy",
latencyMs: Date.now() - start,
error: json.errors?.[0]?.code,
};
} catch (err) {
checks.fireflies = { status: "unreachable", error: (err as Error).message };
}
const allHealthy = Object.values(checks).every((c: any) => c.status === "healthy");
return Response.json(
{ status: allHealthy ? "healthy" : "degraded", checks },
{ status: allHealthy ? 200 : 503 }
);
}
| Alert | Condition | Severity |
|---|---|---|
| Auth failure | Any auth_failed error | P1 -- API key may be revoked |
| Rate limited | 429 errors > 5/min | P2 -- backoff or upgrade plan |
| API unreachable | Health check fails 3x | P1 -- check Fireflies status |
| Webhook backlog | Queue > 100 events | P3 -- scale webhook processor |
set -euo pipefail
# Verify staging passes
curl -f https://staging.example.com/api/health | jq '.checks.fireflies'
# Verify production API key works
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Authorization: Bearer $FIREFLIES_API_KEY_PROD" \
-H "Content-Type: application/json" \
-d '{"query": "{ user { email is_admin } }"}' | jq .
set -euo pipefail
# Deploy with your platform
# Vercel: vercel --prod
# Docker: docker push && kubectl apply
# Fly.io: fly deploy --app production
# Verify health immediately
curl -f https://production.example.com/api/health | jq .
set -euo pipefail
# Verify webhook is registered
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Authorization: Bearer $FIREFLIES_API_KEY_PROD" \
-H "Content-Type: application/json" \
-d '{"query": "{ user { email } }"}' | jq .
# Test webhook delivery (upload a short audio file)
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Authorization: Bearer $FIREFLIES_API_KEY_PROD" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation($input: AudioUploadInput) { uploadAudio(input: $input) { success message } }",
"variables": { "input": { "url": "https://example.com/test.mp3", "title": "Deploy Test" } }
}' | jq .
set -euo pipefail
# Immediate rollback
# Platform-specific: revert deployment to previous version
# Verify rollback
curl -f https://production.example.com/api/health | jq '.checks.fireflies'
| Issue | Cause | Solution |
|---|---|---|
| Auth fails post-deploy | Wrong API key in production secrets | Update secret, redeploy |
| Webhook not firing | URL not saved in Fireflies dashboard | Re-register at app.fireflies.ai/settings |
| Rate limiting in prod | Burst traffic on deploy | Enable request queuing |
| Missing transcripts | Bot not joining meetings | Verify calendar integration is connected |
For version upgrades, see fireflies-upgrade-migration.