

How to Clean Up Meeting Notes with AI Using N8n
Paste raw meeting notes into Slack and N8n triggers OpenAI to reformat them into structured notes with action items.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Teams who want customizable AI formatting and don't mind writing JavaScript for text preprocessing.
Not ideal for
Non-technical teams who need instant setup without code nodes or prompt engineering.
Sync type
real-timeUse case type
notificationReal-World Example
A 12-person product team at a B2B startup uses this to clean up daily standup notes posted in #product-updates. Before automation, someone spent 15 minutes after each meeting reformatting scattered updates into action items and owners. Now they paste raw notes with 'cleanup:' and get structured summaries with assigned next steps in under 30 seconds.
What Will This Cost?
Drag the slider to your expected monthly volume.
Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.





Prices shown for annual billing. Based on published pricing as of April 2026.
Estimated ROI
1000
min saved/mo
$583
labor value/mo
Free
no platform cost
Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.
Implementation
Import this workflow directly into n8n
Copy the pre-built n8n blueprint and paste it straight into n8n. All modules, filters, and field mappings are already configured — you just need to connect your accounts.
Before You Start
Make sure you have everything ready.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Message Text | text | |
| Channel ID | channel | |
| User ID | user | |
| Message Timestamp | ts | |
| AI Response | choices[0].message.content | |
1 optional field▸ show
| Token Usage | usage.total_tokens |
Step-by-Step Setup
Workflows > New Workflow
Create New Workflow
Start a fresh N8n workflow for the meeting notes automation. You'll build a chain that captures Slack messages, processes them through OpenAI, and posts the cleaned results back.
- 1Click 'New Workflow' from the N8n dashboard
- 2Name it 'Meeting Notes Cleanup'
- 3Click 'Save' to create the workflow
Add Node > Trigger > Slack Trigger
Add Slack Trigger
Replace the manual trigger with a Slack message trigger. This will fire whenever someone posts a message containing your cleanup keyword in a designated channel.
- 1Delete the default trigger node
- 2Click the '+' button to add a new node
- 3Search for 'Slack' and select 'Slack Trigger'
- 4Choose 'On Message' from the trigger options
Slack Trigger > Credentials > Create New
Configure Slack Connection
Connect N8n to your Slack workspace with proper bot permissions. The bot needs to read messages and post replies in your designated channels.
- 1Click 'Create New' under Slack credentials
- 2Paste your Slack Bot Token (starts with xoxb-)
- 3Test the connection
- 4Select your target channel from the dropdown
- 5Set 'Trigger on' to 'Mention' or specific keyword like 'cleanup:'
Add Node > Logic > IF
Add Message Filter
Filter incoming messages to only process ones that contain meeting notes. This prevents the workflow from running on every casual message.
- 1Add an 'IF' node after the Slack trigger
- 2Set condition to 'String' contains
- 3Use expression: {{ $json.text.includes('cleanup:') }}
- 4Connect the 'true' output to continue the workflow
Add Node > Data > Code
Extract Meeting Notes
Parse the raw meeting notes from the Slack message text. Strip out the trigger keyword and any Slack formatting to send clean text to OpenAI.
- 1Add a 'Code' node after the IF true branch
- 2Set language to JavaScript
- 3Write code to extract text after 'cleanup:' keyword
- 4Remove Slack user mentions and channel references
- 5Return cleaned text as 'meeting_notes' field
Add Node > AI > OpenAI
Configure OpenAI Node
Add OpenAI to process the raw notes into structured format. You'll use GPT-4 with a specific prompt that formats notes consistently every time.
- 1Add 'OpenAI' node from the AI section
- 2Select 'Chat' operation
- 3Choose 'gpt-4' model (not gpt-3.5-turbo for better formatting)
- 4Create new OpenAI credentials with your API key
OpenAI > Messages > Add Message
Write Formatting Prompt
Create a detailed prompt that tells GPT-4 exactly how to structure the meeting notes. Include examples of the output format you want.
- 1In the OpenAI messages field, add a system message
- 2Write prompt: 'Format these meeting notes into: ## Summary (2-3 sentences), ## Key Points (bullet list), ## Action Items (with owner and due date), ## Next Steps. Use markdown formatting.'
- 3Add user message with: {{ $json.meeting_notes }}
- 4Set max_tokens to 1000
Add Node > Communication > Slack
Add Slack Reply Node
Post the formatted notes back to Slack in the same channel or thread. This creates a clean, structured version right where your team can see it.
- 1Add another Slack node after OpenAI
- 2Select 'Send Message' operation
- 3Use same Slack credentials as the trigger
- 4Set channel to {{ $node['Slack Trigger'].json['channel'] }}
- 5Set text to {{ $json.choices[0].message.content }}
Node Settings > Continue on Fail
Add Error Handling
Handle cases where OpenAI fails or returns malformed responses. This prevents the workflow from silently breaking when the API has issues.
- 1Click the OpenAI node settings gear icon
- 2Enable 'Continue on Fail'
- 3Add an IF node after OpenAI to check for errors
- 4Route failures to a Slack message: 'Notes cleanup failed - please try again'
Workflow > Execute
Test with Real Notes
Run a complete test using actual messy meeting notes. This reveals formatting issues and prompt problems before you go live.
- 1Post 'cleanup: [paste real meeting notes]' in your test Slack channel
- 2Watch the workflow execution in N8n
- 3Check that formatted notes appear in Slack within 30 seconds
- 4Verify action items and formatting look correct
Drop this into an n8n Code node.
JavaScript — Code Node// Clean Slack formatting before OpenAI▸ Show code
// Clean Slack formatting before OpenAI const rawText = $json.text || ''; const cleanText = rawText
... expand to see full code
// Clean Slack formatting before OpenAI
const rawText = $json.text || '';
const cleanText = rawText
.replace(/<@U\w+>/g, '[User]') // Remove user mentions
.replace(/<#C\w+\|[^>]+>/g, '[Channel]') // Remove channel links
.replace(/cleanup:\s*/i, '') // Remove trigger keyword
.trim();
return [{ json: { meeting_notes: cleanText } }];Scaling Beyond 50+ cleanup requests/day+ Records
If your volume exceeds 50+ cleanup requests/day records, apply these adjustments.
Batch Processing
Group multiple cleanup requests into single OpenAI calls using array aggregation. This reduces API calls by 60-70% and cuts token overhead from repeated system prompts.
Model Optimization
Switch to gpt-3.5-turbo-16k for routine notes and reserve GPT-4 for complex technical meetings. The quality difference is minimal for standard formatting tasks but costs 10x less.
Caching Strategy
Add Redis or webhook caching for similar meeting patterns. Teams repeat standup formats - cache and reuse structured templates instead of full AI processing every time.
Going live
Production Checklist
Before you turn this on for real, confirm each item.
Troubleshooting
Common errors and how to fix them.
Frequently Asked Questions
Common questions about this workflow.
Analysis
Use N8n for this if you want full control over the AI prompt and response handling. The code nodes let you clean Slack's messy message formatting before sending to OpenAI, and you can customize the structured output format without platform limitations. Pick Zapier instead if your team needs this running in 10 minutes - their OpenAI integration handles prompt templates more simply.
This workflow costs about 2,000 N8n executions monthly for a 20-person team doing daily standups (4 cleanup requests × 5 days × 4 weeks × 25 execution steps). That's $20/month on N8n's Starter plan, plus $15-30 in OpenAI API costs depending on note length. Zapier would run $45/month for the same volume with their Professional plan. Make sits in between at $29/month but caps OpenAI characters.
Zapier's ChatGPT integration includes built-in prompt templates for meeting notes that work immediately. Make's OpenAI connector handles response streaming better, so you get partial results faster on long notes. But N8n wins here because you need custom text preprocessing - Slack sends user mentions as <@U123456> tags that confuse AI models. Only N8n's code nodes let you clean this properly before the API call.
You'll hit OpenAI's context window limits with 90+ minute meeting transcripts. GPT-4 maxes out around 8,000 tokens input, so marathon planning sessions need chunking logic in your code node. Also, Slack's event API occasionally delivers duplicate message events during network hiccups - add deduplication based on message timestamp or your cleanup will run twice on the same notes.
Ideas for what to build next
- →Archive to Google Docs — Add a Google Docs node that saves formatted meeting notes to a shared folder organized by date and meeting type for permanent record keeping.
- →Action Item Reminders — Extract assigned tasks from formatted notes and create Slack reminders or calendar events for people mentioned in action items with due dates.
- →Meeting Analytics Dashboard — Send structured note data to Airtable or Google Sheets to track recurring action items, meeting frequency by team, and completion rates over time.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup