Skip to content

Add five conversation-source API modules (Gong, Fireflies, Fathom, Otter, Quo) - #99

Merged
seanspeaks merged 3 commits into
nextfrom
claude/reevo-conversation-modules
Aug 19, 2026
Merged

Add five conversation-source API modules (Gong, Fireflies, Fathom, Otter, Quo)#99
seanspeaks merged 3 commits into
nextfrom
claude/reevo-conversation-modules

Conversation

@seanspeaks

@seanspeaks seanspeaks commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

What

Five reusable Frigg api-modules for the meeting-intelligence / telephony class, each built to the same bar as the Reevo module — canonical spec + spec-sync test + offline tests + README + LICENSE + .env.example.

Module Auth Notes Tests
gong Basic (Access Key/Secret) calls/extensive for party emails; OpenAPI + spec-sync 22
fireflies GraphQL (Bearer) transcripts/summaries/attendees; operations manifest + sync test (GraphQL, so a JSON manifest replaces OpenAPI) 24
fathom REST (X-Api-Key) + webhooks meetings/transcripts/summaries; OpenAPI + spec-sync 25
otter Otter.ai Enterprise Public API (Bearer) conversations/transcripts; OpenAPI + spec-sync 25
quo Quo/OpenPhone (raw Authorization, no Bearer) calls/recordings/transcripts; OpenAPI + spec-sync 19

Quality

  • Every spec is 1:1 with its client and mutation-tested (rename a client method → spec-sync fails).
  • Real API grounding with cited docs; no fabricated endpoints.
  • A live bug was caught and fixed during finalize: Fathom's client called /team-members but the real path is /team_members (would've 404'd every call).
  • Root package-lock.json regenerated so npm ci stays in sync (npm ci --dry-run clean) — the same EUSAGE class that broke a sibling PR.

Context

Built as the connector set for a Reevo (AI-native CRM) integration demo, but they're general-purpose modules. Consumed by ReevoConversationIntegration subclasses in the demo app; useful to any Frigg app needing conversation-intelligence or telephony sources.

🤖 Generated with Claude Code


Generated by Claude Code

📦 Published PR as canary version: Canary Versions

✨ Test out this PR locally via:

npm install @friggframework/api-module-fathom@1.0.1-canary.99.886f794.0
npm install @friggframework/api-module-fireflies@1.0.1-canary.99.886f794.0
npm install @friggframework/api-module-gong@1.0.1-canary.99.886f794.0
npm install @friggframework/api-module-otter@1.0.1-canary.99.886f794.0
npm install @friggframework/api-module-quo@1.0.1-canary.99.886f794.0
npm install @friggframework/api-module-reevo@1.0.1-canary.99.886f794.0
# or 
yarn add @friggframework/api-module-fathom@1.0.1-canary.99.886f794.0
yarn add @friggframework/api-module-fireflies@1.0.1-canary.99.886f794.0
yarn add @friggframework/api-module-gong@1.0.1-canary.99.886f794.0
yarn add @friggframework/api-module-otter@1.0.1-canary.99.886f794.0
yarn add @friggframework/api-module-quo@1.0.1-canary.99.886f794.0
yarn add @friggframework/api-module-reevo@1.0.1-canary.99.886f794.0

Version

Published prerelease version: @friggframework/api-module-fathom@1.0.1-next.0
@friggframework/api-module-fireflies@1.0.1-next.0
@friggframework/api-module-gong@1.0.1-next.0
@friggframework/api-module-otter@1.0.1-next.0
@friggframework/api-module-quo@1.0.1-next.0

Changelog

🐛 Bug Fix

  • @friggframework/api-module-fathom, @friggframework/api-module-fireflies, @friggframework/api-module-gong, @friggframework/api-module-otter, @friggframework/api-module-quo
    • Add five conversation-source API modules (Gong, Fireflies, Fathom, Otter, Quo) #99 (@seanspeaks)
  • @friggframework/api-module-microsoft-teams, @friggframework/api-module-slack, @friggframework/api-module-42matters, @friggframework/api-module-asana, @friggframework/api-module-attio, @friggframework/api-module-clio, @friggframework/api-module-connectwise, @friggframework/api-module-contentful, @friggframework/api-module-contentstack, @friggframework/api-module-crossbeam, @friggframework/api-module-deel, @friggframework/api-module-frigg-scale-test, @friggframework/api-module-frontify, @friggframework/api-module-google-calendar, @friggframework/api-module-google-drive, @friggframework/api-module-helpscout, @friggframework/api-module-hubspot, @friggframework/api-module-ironclad, @friggframework/api-module-linear, @friggframework/api-module-pipedrive, @friggframework/api-module-reevo, @friggframework/api-module-salesforce, @friggframework/api-module-stripe, @friggframework/api-module-unbabel-projects, @friggframework/api-module-unbabel, @friggframework/api-module-zoho-crm, @friggframework/api-module-zoom
    • Add Reevo API module (@friggframework/api-module-reevo) #97 (@seanspeaks)
  • @friggframework/api-module-microsoft-teams, @friggframework/api-module-slack, @friggframework/api-module-42matters, @friggframework/api-module-asana, @friggframework/api-module-attio, @friggframework/api-module-clio, @friggframework/api-module-connectwise, @friggframework/api-module-contentful, @friggframework/api-module-contentstack, @friggframework/api-module-crossbeam, @friggframework/api-module-deel, @friggframework/api-module-frigg-scale-test, @friggframework/api-module-frontify, @friggframework/api-module-google-calendar, @friggframework/api-module-google-drive, @friggframework/api-module-helpscout, @friggframework/api-module-hubspot, @friggframework/api-module-ironclad, @friggframework/api-module-linear, @friggframework/api-module-pipedrive, @friggframework/api-module-salesforce, @friggframework/api-module-stripe, @friggframework/api-module-unbabel-projects, @friggframework/api-module-unbabel, @friggframework/api-module-zoho-crm, @friggframework/api-module-zoom
    • fix(attio): assert the token is active in testAuthRequest #96 (@d-klotz)

Authors: 2

seanspeaks and others added 3 commits August 19, 2026 06:24
…ter, Quo)

Reusable Frigg api-modules for the meeting-intelligence / telephony class,
built to the same bar as the Reevo module (canonical spec + spec-sync test +
offline tests + README + LICENSE):

- gong — Basic auth (Access Key/Secret); calls/extensive for party emails. OpenAPI + spec-sync. 22 tests.
- fireflies — GraphQL (Bearer); transcripts/summaries/attendees. Operations manifest + sync test. 24 tests.
- fathom — REST (X-Api-Key) + webhooks; meetings/transcripts/summaries. OpenAPI + spec-sync. 25 tests.
  (Fixed a real bug found during finalize: /team-members → /team_members.)
- otter — Otter.ai Enterprise Public API (Bearer); conversations/transcripts. OpenAPI + spec-sync. 25 tests.
- quo — Quo/OpenPhone (raw Authorization, NO Bearer); calls/recordings/transcripts. OpenAPI + spec-sync. 19 tests.

Every spec is 1:1 with its client (mutation-tested). Root lockfile regenerated
so `npm ci` stays in sync (npm ci --dry-run clean).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JDh45c1vm91ySYtvVv9Z65
… identity

Fixes from three independent adversarial reviewers (issues masked by green tests):

- fireflies: add setAuthParams (apiKey module had only getToken → core's callback
  threw TypeError in prod); migrate deprecated organizer_email/participant_email
  GraphQL args → organizers/participants arrays.
- gong: implement setAuthParams (was a no-op that dropped form-entered Access
  Key/Secret); expose getAuthorizationRequirements in requiredAuthMethods (CLI form).
- otter: implement setAuthParams (dropped form token); getConversationTranscript now
  delegates to getConversation(include:'transcript') and the fabricated standalone
  /transcript + /audio paths are removed; expose getAuthorizationRequirements.
- fathom: replace constant externalId fallback ('fathom-account') with a sha256
  api-key fingerprint (was colliding across accounts).
- quo: replace unstable phone-id / 'quo-workspace' externalId with a sha256 key
  fingerprint; add real request-wiring test coverage for all 22 endpoint methods
  (was 2).

All suites green after fixes (gong 27, fireflies 29, fathom 30, otter 29, quo 43);
no dependency changes (lockfile unaffected).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JDh45c1vm91ySYtvVv9Z65
…tion-modules

# Conflicts:
#	package-lock.json
@seanspeaks seanspeaks added prerelease This change is available in a prerelease. release labels Aug 19, 2026 — with Claude
@seanspeaks
seanspeaks merged commit f222c51 into next Aug 19, 2026
4 checks passed
seanspeaks added a commit that referenced this pull request Aug 20, 2026
Node 20 reached end-of-life on 2026-04-30, and `.node-version` was pinned to
the long-stale 16.15.0 while the release workflow ran Node 18. Bump both to the
current Active LTS line (Node 24; 22 is in maintenance, 26 is Current-not-yet-LTS):

- `.node-version`: 16.15.0 → 24
- `.github/workflows/release.yml`: setup-node 18 → 24

`engines.node` in package.json is already `>=18`, which permits 24, so it's left
unchanged. Scope is CI-Node-only: the lockfile-sync that originally rode along in
this PR is dropped — `next`'s lockfile was already regenerated by the #97/#99
merges, so re-applying the old copy would regress it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JDh45c1vm91ySYtvVv9Z65
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

prerelease This change is available in a prerelease. release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant