Skip to main content

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

Workflow preview

Workflow preview
100%
Extract meeting action items and decisions with OpenAI, Asana and Sheets preview
Open on n8n.io

1. Workflow Overview

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, cr...

Best for

  • Document Extraction automation workflows
  • AI Summarization automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.stickynote, n8n-nodes-base.webhook, n8n-nodes-base.scheduletrigger, n8n-nodes-base.set, n8n-nodes-base.code, n8n-nodes-base.filter, n8n-nodes-base.httprequest, @n8n/n8n-nodes-langchain.agent

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Oneclick AI Squad.

Original n8n.io source

1.1 Workflow description

Title
Extract meeting action items and decisions with OpenAI, Asana and Sheets
Workflow name
Extract meeting action items and decisions with OpenAI, Asana and Sheets

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

  1. Receives meeting data from a webhook request or runs every 30 minutes on a schedule.
  2. Normalizes meeting metadata (title, date, participants, audio URL, and transcript) and validates that either an audio URL or a sufficiently long transcript is present.
  3. If only audio is provided, sends the audio URL to OpenAI Whisper to generate a transcript and merges it back into the meeting context.
  4. 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.
  5. Parses the AI JSON safely, adds counts and timestamps, and waits at a review buffer before continuing.
  6. Splits action items into individual records and creates corresponding tasks in Asana for each one.
  7. 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

  1. Add OpenAI credentials and ensure the workflow can call the Audio Transcriptions API (Whisper) and the Chat model (gpt-4.1-mini).
  2. 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).
  3. Create a Google Sheets OAuth2 credential, replace YOUR_SHEET_ID, and ensure the spreadsheet contains a MeetingLog sheet with columns matching the appended values.
  4. Create a SendGrid API key, replace YOUR_SENDGRID_API_KEY, and update the to/from email addresses used in the email payload.
  5. 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.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Sticky Note - Overview

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 2 - Sticky Note - Section 1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 3 - Sticky Note - Section 2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 4 - Sticky Note - Section 3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 5 - Sticky Note - Section 4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 6 - Webhook - New Meeting Upload

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 1.1

Block 7 - Poll Scheduled Meetings

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.2

Block 8 - Normalise Meeting Context

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 9 - Python - Validate & Route

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 10 - Filter Valid Meetings

Type / Role
n8n-nodes-base.filter - filter
Config choices
Version 2.2

Block 11 - Route - Audio or Text

Type / Role
n8n-nodes-base.filter - filter
Config choices
Version 2.2

Block 12 - Whisper - Transcribe Audio

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 13 - Merge Transcript into Context

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 14 - AI - Extract Meeting Intelligence

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 1.6

Block 15 - OpenAI Chat Model

Type / Role
@n8n/n8n-nodes-langchain.lmChatOpenAi - lmChatOpenAi
Config choices
Version 1.3

Block 16 - JS - Parse & Structure Output

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 17 - JS - Split Action Items

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 18 - Filter Has Action Items

Type / Role
n8n-nodes-base.filter - filter
Config choices
Version 2.2

Block 19 - Asana - Create Task

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 20 - Google Sheets - Log Meeting

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 21 - Send Summary Notification

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 22 - Respond to Webhook

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

Block 23 - Wait - Review Buffer

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1

3. Summary Table

Workflow Extract meeting action items and decisions with OpenAI, Asana and Sheets
Complexity advanced
Nodes 23
Categories Document Extraction, AI Summarization
Author Oneclick AI Squad
Published 10 Jun 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/16227/16227.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Extract meeting action items and decisions with OpenAI, Asana and Sheets do?

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, cr...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Document Extraction, AI Summarization use case.