๐ฌ Transcribe meetings and log action items to Notion with AssemblyAI and Gemini
โก 7 views ยท ๐ฌ Document Extraction & Analysis
Description
Quick overview
This workflow accepts a meeting recording URL via webhook, transcribes the audio with AssemblyAI, uses Google Gemini to extract a summary, action items, decisions, and next steps, then creates a structured Notion page and optionally posts the Notion link to Slack.
How it works
- Receives a POST webhook request containing an
audio_urland an optionalmeeting_title. - Submits the audio URL to AssemblyAI for transcription with speaker labels enabled.
- Polls AssemblyAI every 15 seconds until the transcript status is
completedand the full transcript text is available. - Sends the completed transcript to the Google Gemini API to generate a JSON response with a meeting summary, action items, key decisions, and next steps.
- Creates a new page in a Notion database with the meeting metadata and the extracted sections formatted as headings and paragraphs.
- Posts a Slack message with the meeting title, summary, and the newly created Notion page URL.
Setup
- Create an AssemblyAI account, add your AssemblyAI API key to the Authorization header in the transcription submit and status check HTTP requests.
- Create a Google AI Studio key and replace
YOUR_GEMINI_API_KEYin the Gemini HTTP request URL. - Create a Notion integration, share your target Notion database with it, and replace
YOUR_NOTION_INTEGRATION_TOKENandYOUR_NOTION_DATABASE_IDin the Notion page creation request. - (Optional) Create a Slack app with
chat:write, then replaceYOUR_SLACK_BOT_TOKENandYOUR_SLACK_CHANNEL_IDin the Slack message request. - Copy the production webhook URL from n8n and configure your recording source (or test client) to send a POST body with
audio_url(publicly accessible) andmeeting_title.
Requirements
- AssemblyAI account and API key (free tier at assemblyai.com)
- Google Gemini API key (free tier at aistudio.google.com)
- Notion account with an Integration Token and a Database configured
- Slack Bot Token and Channel ID (optional โ delete the last node if not needed)
- Publicly accessible audio file URL (mp3, mp4, wav, m4a, ogg, or webm)
Customization
- Edit the Gemini prompt in the Post to Gemini node to extract additional fields like risks, blockers, or budget decisions
- Replace the Slack node with a Telegram or Microsoft Teams HTTP request for different notification channels
- Add a Google Calendar node after Notion to auto-schedule follow-up meetings from extracted action items
- Connect HubSpot or Salesforce via HTTP Request to log client meeting notes directly into your CRM
- Adjust the polling interval in the Wait node โ increase for longer recordings, decrease for short ones
๐ Nodes Used
HTTP Request, Webhook
๐ฅ Import
Download workflow.json and import into n8n:
Workflow menu โ Import from File