Quick overview
This workflow watches a Gmail label for new meeting transcript emails, extracts the transcript, uses OpenAI to generate a summary and action items, routes urgent items to the right Slack channel, and logs the meeting and action items to Google Sheets.
How it works
- Triggers every minute when an unread email arrives in Gmail with the label
Transcripts.
- Applies your configured Google Sheets and Slack settings, then extracts meeting metadata and transcript text from the email body.
- Reads the existing meeting log from Google Sheets and skips processing if the email matches a previously logged message ID or meeting hash.
- Sends the transcript to OpenAI to produce a JSON analysis including summary, decisions, risks, and structured action items.
- Parses and normalizes the action items, then routes the result as urgent, standard, or FYI based on priority and due date threshold.
- Posts a formatted message to the appropriate Slack channel when action items exist, otherwise marks the run as FYI.
- Appends the meeting record to the
Meetings sheet and writes each extracted action item as a separate row in the ActionItems sheet.
Setup
- Connect credentials for Gmail OAuth2, Google Sheets OAuth2, OpenAI, and Slack OAuth2.
- Create a Google Sheets spreadsheet with two tabs named
Meetings and ActionItems (or update the sheet names in the settings code).
- Update the settings in the workflow code with your Google Sheet ID, Slack channel names/IDs, and the urgent due-date threshold in hours.
- Create and apply a Gmail label named
Transcripts (or update the Gmail trigger query) and ensure transcript emails land there as unread.
Requirements
- n8n Cloud or self-hosted n8n instance (v1.50+)
- Gmail account with OAuth2 credentials configured in n8n
- Google Sheets account with OAuth2 credentials configured in n8n
- OpenAI API key configured in n8n
- Slack workspace with OAuth2 credentials configured in n8n
- A Google Sheet with Meetings and ActionItems tabs
Customization
- Change the Gmail label filter on When Email with Transcript Arrives
- Edit Slack channel names and URGENT_HOURS_THRESHOLD in Setup Meeting Configuration
- Tune email parsing patterns in Extract Email Transcript for your transcript tool
- Adjust routing rules in Parse Analysis Results
- Modify the AI prompt or model in OpenAI Meeting Analysis
Additional info
This template targets the "meeting transcript to action items" use case: AI-powered extraction with duplicate protection, priority routing, and a two-tab audit log. Works with transcript emails from Otter.ai, Fireflies, Zoom, Google Meet, and similar tools. Unlike a basic email forwarder, it assigns owners, detects urgency, and creates a searchable task tracker in Google Sheets. FYI-only meetings are logged without Slack noise.