ClientsFlow · Fireflies recording
Bot-free stays the default; the visible Fred bot is now a deliberate fallback you summon from Slack · 2026-06-25 · build 4b42b63+v108
state: active — recording confirmed live,
end-to-end. The mechanism works 10/10 provided the bot is admitted from the waiting room (see the loop below).
There is no 100%-reliable fully-automatic way to detect "a meeting started, record it":
the bot-free Google Meet SDK only auto-records meetings Fireflies synced from your calendar ahead of time — so
an early join (before the scheduled start) or a last-minute meeting is missed (exactly what you saw:
active_meetings: []). The Google Workspace Events API can't help either — it only delivers join-events for
meetings your own account owns. So the robust answer is: keep bot-free as the default, confirm it in Slack,
and give you a one-line manual fallback for the cases it misses.
#meetings → Fred joins
| Mechanism | What it does | Bot visible? | When it fires |
|---|---|---|---|
| Bot-free auto-record default |
Fireflies records calendar-synced meetings silently via the Meet SDK. | No | Scheduled calls that Fireflies synced ahead of time. |
| Slack "🔴 Recording in progress" new |
A 3-minute background sweep watches Fireflies' live meetings and posts one confirmation to
#meetings — tagged (bot-free auto) or (forced via #meetings). This is your "is REC running?" proof. |
No | Within ~3 min of any recording going live. |
| #meetings force-start fallback |
Paste a Meet link in #meetings → the Fireflies bot is dispatched to that live call. Use it only
when no "🔴 Recording in progress" message arrived. |
Yes — you admit "Fireflies.ai Notetaker" | On demand, when bot-free missed it. |
| bot_joined ping new |
When Fred joins, Fireflies fires a webhook → instant "🔴 Fred joined — recording in progress" in Slack. | n/a | The instant the bot is admitted (optional webhook). |
#meetings: "🔴 Recording in progress (bot-free auto)"?#meetingsThe code is live in production (build 4b42b63+v108). Two small config steps in Slack switch it on.
The endpoint already answers Slack's verification handshake (tested ✅).
https://matyas--clientsflow-pipeline-web.modal.run/slack/eventsmessage.channels → Save Changes.chat:write, channels:history, channels:read. If Slack asks, click Reinstall.#meetings. Make a public channel named #meetings (or your choice),
then in it type /invite @ClientsFlow (your bot's name). Posting a Meet link there now triggers the recorder.
(If you use a different channel name, tell me and I'll set MEETINGS_CHANNEL.)meeting.bot_joined pointing at
https://matyas--clientsflow-pipeline-web.modal.run/fireflies/transcription. This makes the "🔴 Fred joined"
Slack ping instant instead of waiting for the 3-min sweep. Skip-able — the sweep already covers it.meet.google.com/… link into #meetings.
You should see "⏳ Force-starting Fireflies bot (fallback)…", then admit Fred, then "🔴 Recording confirmed live". For the
default path, just start a calendar-scheduled Meet and watch for the "(bot-free auto)" confirmation within ~3 min.