๐ฌ Extract meeting action items and decisions with OpenAI, Asana and Sheets
โก 81 views ยท ๐ฌ Document Extraction & Analysis
Description
Quick Overview
This workflow ingests meeting audio or transcripts via a webhook or a 30-minute schedule, uses OpenAI (Whisper and GPT-4.1-mini) to extract summaries, decisions, and action items, creates tasks in Asana, logs each meeting to Google Sheets, and emails a recap through SendGrid.
How it works
- Receives meeting data from a webhook request or runs every 30 minutes on a schedule.
- Normalizes meeting metadata (title, date, participants, audio URL, and transcript) and validates that either an audio URL or a sufficiently long transcript is present.
- If only audio is provided, sends the audio URL to OpenAI Whisper to generate a transcript and merges it back into the meeting context.
- Sends the transcript and metadata to OpenAI GPT-4.1-mini to extract a structured JSON summary, key topics, decisions, risks, and action items with owners and due dates.
- Parses the AI JSON safely, adds counts and timestamps, and waits at a review buffer before continuing.
- Splits action items into individual records and creates corresponding tasks in Asana for each one.
- Appends a meeting log row to Google Sheets and sends a summary email via SendGrid, then returns a JSON status response to the webhook caller.
Setup
- Add OpenAI credentials and ensure the workflow can call the Audio Transcriptions API (Whisper) and the Chat model (gpt-4.1-mini).
- Create an Asana personal access token, replace
YOUR_ASANA_PATandYOUR_PROJECT_ID, and verify how assignees should be provided (the workflow sends the extracted owner string asassignee). - Create a Google Sheets OAuth2 credential, replace
YOUR_SHEET_ID, and ensure the spreadsheet contains aMeetingLogsheet with columns matching the appended values. - Create a SendGrid API key, replace
YOUR_SENDGRID_API_KEY, and update the to/from email addresses used in the email payload. - If using the webhook trigger, copy the production webhook URL for
meeting-intelligence-inboundand configure your meeting source to POSTmeetingId,title,date,participants, and eitheraudioUrlortranscript.
๐ Nodes Used
HTTP Request, Webhook, Schedule Trigger, Filter, AI Agent, OpenAI Chat Model
๐ฅ Import
Download workflow.json and import into n8n:
Workflow menu โ Import from File