Connect Fireflies to this workflow once and every meeting you record is automatically categorized and logged to Google Sheets the moment transcription finishes. GPT-4o-mini reads the meeting title, keywords, overview, and action items, then assigns one of seven categories — Sales, Client, Internal, HR, Product, Finance, or Other — along with a confidence rating and a one-sentence reason. Each meeting becomes one clean row in your sheet with emoji labels for instant visual scanning. Built for founders, operations managers, and team leads who want a searchable, sortable record of how their time is actually being spent across meeting types.
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 Fireflies Webhook → 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 Google Sheet ID — Open your Google Sheet in a browser → look at the URL → copy the string between /d/ and /edit (e.g. in docs.google.com/spreadsheets/d/1ABC123xyz/edit, the ID is 1ABC123xyz)
Fill in Config Values — Open node Set Config Values → replace the two placeholders:
| Field | What to enter |
|---|---|
YOUR_FIREFLIES_API_KEY |
Your Fireflies API key from step 4 |
YOUR_GOOGLE_SHEET_ID |
Your Google Sheet ID from step 5 |
⚠️ Do NOT change the
meetingIdfield — it is extracted automatically from the Fireflies webhook and must remain as-is.
Create your Google Sheet tab — Open your Google Sheet → add a tab named exactly Meeting Categories → add these 10 column headers in row 1: Date, Meeting Title, Category, Confidence, Reason, Duration (min), Participants, Keywords, Fireflies URL, Logged At
Connect OpenAI — Open node OpenAI Chat Model → click the credential dropdown → add your OpenAI API key → test the connection
Connect Google Sheets — Open node Log to Google Sheets → click the credential dropdown → add Google Sheets OAuth2 → sign in with your Google account → authorize access
Activate the workflow — Confirm the workflow is Active — Fireflies will now fire it automatically after every recorded meeting
Step 1 — Webhook: Fireflies Webhook
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 and event type. 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, Google Sheet ID, sheet tab name, 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 Transcript from Fireflies
A request is sent to the Fireflies API using your API key and the meeting ID. It retrieves the meeting title, date, duration, participants, transcript URL, keywords, overview, and action items. Only lightweight summary fields are fetched — no full sentence-by-sentence transcript — keeping the response fast and small.
Step 4 — Code: Extract Meeting Data
The Fireflies response is processed into clean, usable fields. Keywords are limited to the top 12, the overview is capped at 600 characters, and action items are limited to the top 5. The meeting date is formatted as a readable date string. If the transcript is not found or not yet ready, the step throws an error and the workflow stops cleanly without creating a blank row in your sheet.
Step 5 — AI Agent: Categorize Meeting
GPT-4o-mini receives the meeting title, keywords, overview, action items, participants, and duration. It assigns exactly one category from the seven options and returns three structured fields: the category name, a confidence level (High, Medium, or Low), and a one-sentence plain-text reason for the choice. The model runs at temperature 0.1 for highly consistent, repeatable categorization.
Step 6 — OpenAI Chat Model
This is the language model powering the categorization step. It uses GPT-4o-mini at temperature 0.1 and is capped at 150 tokens — only three short fields are needed per meeting, making this extremely cost-efficient at approximately $0.0002 per meeting.
Step 7 — Structured Output Parser
This step enforces the exact three-field schema GPT-4o-mini must return. It validates that category, confidence, and reason are all present and correctly typed before the results move forward, preventing any malformed AI output from reaching your sheet.
Step 8 — Code: Prepare Sheet Row
The AI output is read and emoji labels are added based on category and confidence. Category emojis: 💰 Sales, 🤝 Client, 🏢 Internal, 👥 HR, 🛠️ Product, 📊 Finance, 📋 Other. Confidence emojis: ✅ High, 🟡 Medium, ⚠️ Low. All meeting metadata from step 4 is combined with the AI output into one complete row ready for logging.
Step 9 — Google Sheets: Log to Google Sheets
One row is appended to your Meeting Categories tab with all 10 columns populated: date, meeting title, category with emoji, confidence with emoji, reason, duration in minutes, participants, keywords, Fireflies transcript URL, and the logged-at timestamp.
The final result: every meeting ends with a new row in your Google Sheet — categorized, confidence-rated, and ready to filter or sort by meeting type.
✅ Fires automatically on every meeting — No manual input ever needed after the one-time webhook setup in Fireflies
✅ Seven category options cover all meeting types — Sales, Client, Internal, HR, Product, Finance, and Other handle virtually every business meeting scenario
✅ Confidence rating per classification — High, Medium, and Low ratings tell you exactly how certain the AI was so you can spot which rows to review manually
✅ Emoji-coded for instant visual scanning — Category and confidence columns use emojis so you can read your sheet at a glance without needing to filter
✅ Direct Fireflies link in every row — Each row includes a clickable link back to the full Fireflies transcript so you can open the original meeting in one click
✅ Ultra-low cost per meeting — GPT-4o-mini at temperature 0.1 with a 150-token cap costs approximately $0.0002 per meeting — a full year of daily meetings costs less than a dollar
✅ Structured output enforced — A schema parser validates all three AI fields before anything reaches your sheet — no broken or incomplete rows
✅ Lightweight API call — Only summary fields are fetched from Fireflies (not full sentences), keeping each API call fast and the response small
Add your own custom categories — In node AI Agent — Categorize Meeting, edit the category list in the prompt to replace or add categories that match your business (e.g. replace "Finance" with "Investor" or add "Partnership" as an eighth option) — also update the schema in Structured Output Parser to match.
Add a Slack notification for Sales meetings — After node Log to Google Sheets, add an IF check that reads the category field — if it contains "Sales", post a Slack message to your #sales-team channel with the meeting title, participants, and Fireflies link for immediate team visibility.
Filter out internal meetings from the sheet — In node Prepare Sheet Row, add a condition: if the category is "Internal" and confidence is "High", set a skipLog flag to true — then add an IF check before Log to Google Sheets to bypass logging for confirmed internal meetings and keep your sheet focused on client-facing activity.
Add a weekly category summary email — Add a separate Schedule trigger that fires every Monday morning, reads the Meeting Categories sheet via a Google Sheets read step, counts rows by category from the past 7 days, and sends a summary email showing how many Sales, Client, and Internal meetings happened that week.
Use a different sheet per category — In node Prepare Sheet Row, add logic that maps each category to a different sheetName value — then Log to Google Sheets will route each meeting to its own dedicated tab (e.g. all Sales calls on a Sales tab, all Client calls on a Client tab).
Workflow not triggering when a meeting ends:
Fireflies API key error or transcript not found:
YOUR_FIREFLIES_API_KEY in node Set Config Values is replaced with your actual key — not the placeholder textOpenAI not categorizing correctly:
Google Sheets not logging rows:
YOUR_GOOGLE_SHEET_ID in node Set Config Values is the ID from the sheet URL, not the full URLsheetName value in Set Config ValuesDate, Meeting Title, Category, Confidence, Reason, Duration (min), Participants, Keywords, Fireflies URL, Logged AtAI returning a category not in the list:
Need help setting this up or want a custom version built for your team or agency?
📧 Email: [email protected]
🌐 Website: https://isawow.com/