Intermediate~20 min setupAI & CommunicationVerified April 2026
OpenAI logo
Slack logo

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-time

Use case type

notification

Real-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.

/mo
505005K50K

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

Skip the setup

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.

Slack workspace admin access to create bot tokens
OpenAI API key with GPT-4 access and available credits
N8n instance running (cloud or self-hosted)
Designated Slack channel for meeting notes cleanup
Team agreement on the trigger keyword format

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Message Texttext
Channel IDchannel
User IDuser
Message Timestampts
AI Responsechoices[0].message.content
1 optional field▸ show
Token Usageusage.total_tokens

Step-by-Step Setup

1

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.

  1. 1Click 'New Workflow' from the N8n dashboard
  2. 2Name it 'Meeting Notes Cleanup'
  3. 3Click 'Save' to create the workflow
What you should see: Empty workflow canvas with a single 'When clicking 'Test workflow'' trigger node visible.
2

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.

  1. 1Delete the default trigger node
  2. 2Click the '+' button to add a new node
  3. 3Search for 'Slack' and select 'Slack Trigger'
  4. 4Choose 'On Message' from the trigger options
What you should see: Slack trigger node appears with configuration panel showing message event options.
Common mistake — Don't select 'On Channel Message' - that fires on every message and will spam your API limits.
n8n
+
click +
search apps
OpenAI
OP
OpenAI
Add Slack Trigger
OpenAI
OP
module added
3

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.

  1. 1Click 'Create New' under Slack credentials
  2. 2Paste your Slack Bot Token (starts with xoxb-)
  3. 3Test the connection
  4. 4Select your target channel from the dropdown
  5. 5Set 'Trigger on' to 'Mention' or specific keyword like 'cleanup:'
What you should see: Green checkmark next to Slack connection and channel dropdown populated with your workspace channels.
Common mistake — Bot token needs channels:read and chat:write permissions - app tokens won't work here.
4

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.

  1. 1Add an 'IF' node after the Slack trigger
  2. 2Set condition to 'String' contains
  3. 3Use expression: {{ $json.text.includes('cleanup:') }}
  4. 4Connect the 'true' output to continue the workflow
What you should see: IF node showing two output paths - 'true' continues workflow, 'false' stops execution.
Common mistake — Test with actual message text - Slack formats mentions and links differently than plain text.
OpenAI
OP
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Slack
SL
notified
5

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.

  1. 1Add a 'Code' node after the IF true branch
  2. 2Set language to JavaScript
  3. 3Write code to extract text after 'cleanup:' keyword
  4. 4Remove Slack user mentions and channel references
  5. 5Return cleaned text as 'meeting_notes' field
What you should see: Code node output showing cleaned meeting notes text without Slack formatting or trigger keywords.
Common mistake — Slack sends HTML entities like < and > - decode these or OpenAI gets confused by the formatting.
6

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.

  1. 1Add 'OpenAI' node from the AI section
  2. 2Select 'Chat' operation
  3. 3Choose 'gpt-4' model (not gpt-3.5-turbo for better formatting)
  4. 4Create new OpenAI credentials with your API key
What you should see: OpenAI node configured with GPT-4 model selected and green credential indicator.
Common mistake — GPT-3.5-turbo often ignores formatting instructions - spend the extra tokens on GPT-4 for consistent results.
7

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.

  1. 1In the OpenAI messages field, add a system message
  2. 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.'
  3. 3Add user message with: {{ $json.meeting_notes }}
  4. 4Set max_tokens to 1000
What you should see: OpenAI node showing system prompt and user message fields populated with your formatting instructions.
Common mistake — Keep max_tokens under 1000 or long meetings will get cut off mid-sentence in the action items section.
8

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.

  1. 1Add another Slack node after OpenAI
  2. 2Select 'Send Message' operation
  3. 3Use same Slack credentials as the trigger
  4. 4Set channel to {{ $node['Slack Trigger'].json['channel'] }}
  5. 5Set text to {{ $json.choices[0].message.content }}
What you should see: Slack send node configured to reply in the same channel where the original messy notes were posted.
Common mistake — Use the channel ID from the trigger, not channel name - names can change but IDs stay constant.
9

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.

  1. 1Click the OpenAI node settings gear icon
  2. 2Enable 'Continue on Fail'
  3. 3Add an IF node after OpenAI to check for errors
  4. 4Route failures to a Slack message: 'Notes cleanup failed - please try again'
What you should see: Error handling path that sends a failure message to Slack if OpenAI processing fails.
Common mistake — Without error handling, failed API calls leave your team wondering why nothing happened to their notes.
10

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.

  1. 1Post 'cleanup: [paste real meeting notes]' in your test Slack channel
  2. 2Watch the workflow execution in N8n
  3. 3Check that formatted notes appear in Slack within 30 seconds
  4. 4Verify action items and formatting look correct
What you should see: Structured meeting notes posted to Slack with clear sections for summary, action items, and next steps.
Common mistake — Test with messy, real notes - not clean example text. Real meetings have typos, interruptions, and unclear references.

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 } }];
n8n
▶ Run once
executed
OpenAI
Slack
Slack
🔔 notification
received

Scaling Beyond 50+ cleanup requests/day+ Records

If your volume exceeds 50+ cleanup requests/day records, apply these adjustments.

1

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.

2

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.

3

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

VerdictWhy n8n for this workflow

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.

Cost

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.

Tradeoffs

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 DocsAdd 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 RemindersExtract assigned tasks from formatted notes and create Slack reminders or calendar events for people mentioned in action items with due dates.
  • Meeting Analytics DashboardSend structured note data to Airtable or Google Sheets to track recurring action items, meeting frequency by team, and completion rates over time.

Related guides

Was this guide helpful?
OpenAI + Slack overviewn8n profile →