Connect Fireflies to this workflow once and every meeting you record automatically generates a complete talk-time breakdown delivered to your Telegram. The moment transcription finishes, the workflow fetches per-speaker analytics from Fireflies, builds a visual bar chart showing exactly how much each person spoke, and checks whether anyone crossed your dominance threshold. You receive a formatted report on your phone within seconds of the meeting ending — no AI cost, no spreadsheets, no manual review. Built for managers, coaches, and team leads who want to know if their meetings are balanced or dominated by one voice.
Estimated Setup Time: 10–15 minutes
Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import
Activate the workflow and copy the webhook URL — Toggle the workflow to Active → click on node 1. Webhook — Fireflies Transcript Done → copy the Production URL shown
Register the webhook in Fireflies — Log in to app.fireflies.ai → Settings → Developer Settings → Webhooks → paste the webhook URL → save
Get your Fireflies API key — In Fireflies, go to Settings → Integrations → Fireflies API → copy your API key
Get your Telegram Chat ID — Open Telegram → search for @userinfobot → send /start → it replies with your chat ID number
Fill in Config Values — Open node 2. Set — Config Values → replace the placeholders:
| Field | What to enter |
|---|---|
YOUR_FIREFLIES_API_KEY |
Your Fireflies API key from step 4 |
YOUR_TELEGRAM_CHAT_ID |
Your Telegram chat ID number from step 5 |
dominanceThreshold |
Leave as 70 or change to your preferred percentage (e.g. 60 for stricter flagging) |
⚠️ Do NOT change the
meetingIdfield — it is extracted automatically from the Fireflies webhook payload.
Connect Telegram — Open node 5. Telegram — Send Talk-Time Report → click the credential dropdown → add your Telegram Bot API credential (paste the bot token from @BotFather) → save
Send /start to your bot — Open Telegram → find your bot → send /start — this is required before the bot can message you for the first time
Activate the workflow — Confirm the workflow is Active — Fireflies will now fire it automatically after every recorded meeting
Step 1 — Webhook: Fireflies Transcript Done
This step listens for a signal from Fireflies. Every time a meeting finishes transcribing, Fireflies sends a POST request to this webhook URL containing the meeting ID. No manual trigger is needed — it fires automatically after every recorded call where you are the organizer.
Step 2 — Set: Config Values
Your Fireflies API key, Telegram chat ID, dominance threshold, and the meeting ID from the webhook are stored here. The meeting ID is extracted automatically from all possible Fireflies payload formats — you never need to enter it manually.
Step 3 — HTTP: Fetch Speaker Analytics
A request is sent to the Fireflies API using your API key and the meeting ID. It retrieves the per-speaker analytics Fireflies computed for this meeting: each speaker's name, talk time percentage, total duration, word count, words per minute, questions asked, longest single speech in seconds, number of speaking turns, and filler word count. If no transcript is found, the workflow stops with an error.
Step 4 — Code: Analyze Speaker Data
This is where all the analysis happens. Speakers are sorted from highest to lowest talk time percentage. For each speaker, a 10-block visual bar is built — each filled block (█) represents 10% of talk time and empty blocks (░) fill the rest. So a speaker at 70% talk time shows as ███████░░░ 70%. The dominance threshold from your config is checked — if any speaker's percentage meets or exceeds it, they are flagged as DOMINANT in the report and an alert line is added. Total questions across all speakers are also summed. The complete Telegram message is assembled with the meeting title, date, duration, total questions, the dominance alert or balance confirmation, and the full speaker breakdown. If no speaker analytics are available for the meeting, the workflow stops with an error rather than sending an empty message.
Step 5 — Telegram: Send Talk-Time Report
The formatted report is sent to your Telegram chat. The message shows the meeting title, date, duration, total questions asked, a dominance alert or balance confirmation, and one block per speaker showing their bar chart, talk percentage, minutes, word count, pace, questions, longest speech, speaking turns, and filler words. A direct Fireflies link is included at the bottom.
✅ Zero AI cost — This workflow uses only Fireflies built-in speaker analytics — no OpenAI or any other AI API is called, making it completely free to run beyond Fireflies
✅ Visual bar chart per speaker — Each speaker gets a 10-block ASCII bar so you can read the balance distribution without looking at numbers
✅ Configurable dominance threshold — Change one number in Config Values to set your own standard for what counts as dominating a meeting
✅ Seven metrics per speaker — Talk percentage, word count, speaking pace, questions asked, longest speech, speaking turns, and filler words — all from one Fireflies API call
✅ Instant phone delivery — Telegram delivers the report to your phone the moment the meeting transcript is ready — no email, no dashboard login
✅ Dominance detection with name — The alert names the specific speaker who dominated, not just a generic warning, so you know exactly who to address
✅ Total questions surfaced — The combined question count across all speakers gives you a quick read on how engaged and interactive the meeting was
✅ No spreadsheet or dashboard needed — The entire report arrives formatted in a single Telegram message — nothing to open, nothing to export
Lower the dominance threshold for stricter flagging — In node 2. Set — Config Values, change dominanceThreshold from 70 to 60 or 55 to flag meetings where one person spoke for more than that percentage — useful for highly collaborative teams where even 60% is too much.
Add a Slack alert for dominant meetings — After node 4. Code — Analyze Speaker Data, add an IF check that reads the hasDominance flag — if true, post a Slack message to a #meeting-health channel with the speaker name and percentage so the team lead is notified immediately.
Log every meeting to Google Sheets — After node 4. Code — Analyze Speaker Data, add a Google Sheets append step to record the meeting title, date, total speakers, dominant speaker name (if any), and each speaker's talk percentage — building a long-term dataset of meeting balance over time.
Send to multiple Telegram chats — In node 2. Set — Config Values, you can only store one telegramChatId. To send to multiple recipients, duplicate node 5. Telegram — Send Talk-Time Report, change the chatId in each copy to a different ID, and connect all copies after step 4.
Filter out very short meetings — In node 4. Code — Analyze Speaker Data, add a check at the top: if meetingDurationMin is less than 5, return a simple message saying the meeting was too short to analyze and skip the full report — avoiding noise from brief check-in calls.
Workflow not triggering when a meeting ends:
Fireflies API key error or transcript not found:
YOUR_FIREFLIES_API_KEY in node 2. Set — Config Values is replaced with your actual key — not the placeholder textNo speaker data in the report:
Telegram message not arriving:
YOUR_TELEGRAM_CHAT_ID in node 2. Set — Config Values is your numeric chat ID — get it from @userinfobot in Telegram/start to your bot in Telegram before the first message can be delivered — bots cannot initiate conversations without this stepDominance alert not firing when expected:
dominanceThreshold in node 2. Set — Config Values is stored as a string number (e.g. "70") and matches what you expect — the code converts it to an integer automaticallyhasDominance value and the sorted speaker percentages to confirm which speaker's percentage the threshold was compared againstNeed help setting this up or want a custom version built for your team or agency?
📧 Email: [email protected]
🌐 Website: https://www.incrementors.com/