Extract meeting action items and decisions with OpenAI, Asana and Sheets

Go to Workflow
0 views
Built by Oneclick AI Squad Oneclick AI Squad
Created on June 10, 2026

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_PAT and YOUR_PROJECT_ID, and verify how assignees should be provided (the workflow sends the extracted owner string as assignee).
Create a Google Sheets OAuth2 credential, replace YOUR_SHEET_ID, and ensure the spreadsheet contains a MeetingLog sheet 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-inbound and configure your meeting source to POST meetingId, title, date, participants, and either audioUrl or transcript.

Nodes Used (4)

AI Agent
@n8n/n8n-nodes-langchain.agent
Code
n8n-nodes-base.code
HTTP Request
n8n-nodes-base.httpRequest
OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi