

How to Clean Up Meeting Notes with Pipedream
Paste raw meeting notes into Slack and get AI-formatted structured notes with action items instantly.
Steps and UI details are based on platform versions at time of writing ā check each platform for the latest interface.
Best for
Remote teams who take messy meeting notes and need consistent formatting with extracted action items
Not ideal for
Teams that already use dedicated meeting note tools like Notion or Obsidian with built-in templates
Sync type
real-timeUse case type
enrichmentReal-World Example
A 12-person marketing agency uses this to clean up client meeting notes. Team members paste raw notes into #client-meetings and get back formatted summaries with action items, deadlines, and next steps within 15 seconds. Before automation, someone spent 20 minutes after each meeting reformatting notes and often missed action items buried in rambling paragraphs.
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 Pipedream
Copy the pre-built Pipedream blueprint and paste it straight into Pipedream. 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 | ||
| Channel ID | ||
| Thread Timestamp | ||
| System Prompt | ||
| Model Name | ||
| Temperature | ||
| Max Tokens | ||
1 optional fieldāø show
| User ID |
Step-by-Step Setup
Dashboard > New Workflow
Create New Workflow
Go to pipedream.com and click New Workflow in the top right. You'll land on the workflow builder with an empty canvas. The interface shows Sources on the left for triggers and Steps below for actions.
- 1Click the blue 'New Workflow' button
- 2Select 'Start from scratch' option
- 3Name your workflow 'Meeting Notes Cleanup'
Workflow > Add Trigger > Slack
Add Slack Message Trigger
Click Add a trigger and select Slack. Choose the New Message trigger type. This fires instantly when someone posts in your designated channel. You'll need to connect your Slack workspace and select the specific channel.
- 1Click 'Add a trigger'
- 2Search for 'Slack' in the apps list
- 3Select 'New Message' from trigger options
- 4Connect your Slack account
usage.prompt_tokens: {{usage.prompt_tokens}}
usage.completion_tokens: {{usage.completion_tokens}}
Trigger Configuration > Channel Selection
Configure Channel and Filter
Select your meeting notes channel from the dropdown. Add a filter condition to only process messages that start with a specific keyword like 'notes:' or contain more than 50 characters. This prevents the workflow from running on short messages or reactions.
- 1Choose your target channel from the dropdown
- 2Set 'Message Length' condition to greater than 50 characters
- 3Add text filter for messages starting with 'Meeting:' or 'Notes:'
Workflow > Add Step > Code
Add Node.js Code Step
Click Add Step below the trigger and select Code. Choose Node.js runtime. This step will extract the message text and prepare it for OpenAI formatting. You'll write code to clean up the raw text and remove any Slack formatting artifacts.
- 1Click the '+' button to add a step
- 2Select 'Code' from the step types
- 3Choose 'Run Node.js code'
- 4Name the step 'Format Message Text'
This Node.js code cleans up Slack message formatting artifacts and extracts key meeting details before sending to OpenAI. Paste it in the code step between Slack trigger and OpenAI.
JavaScript ā Code Stepexport default defineComponent({āø Show code
export default defineComponent({
async run({ steps, $ }) {
const message = steps.trigger.event;... expand to see full code
export default defineComponent({
async run({ steps, $ }) {
const message = steps.trigger.event;
// Clean up Slack formatting
let cleanText = message.text
.replace(/<@U[A-Z0-9]+>/g, '') // Remove user mentions
.replace(/<#C[A-Z0-9]+\|[^>]+>/g, '') // Remove channel links
.replace(/[\s\S]*?/g, '') // Remove code blocks
.replace(/`([^`]+)`/g, '$1') // Remove inline code
.replace(/\s+/g, ' ') // Collapse whitespace
.trim();
// Extract meeting metadata
const meetingMatch = cleanText.match(/^Meeting:\s*(.+?)\./i);
const meetingTitle = meetingMatch ? meetingMatch[1] : 'Team Meeting';
// Remove common filler words for cleaner AI processing
const fillerWords = /\b(um|uh|like|you know|basically|actually)\b/gi;
cleanText = cleanText.replace(fillerWords, '');
return {
cleaned_text: cleanText,
meeting_title: meetingTitle,
original_user: message.user,
message_length: cleanText.length,
timestamp: message.ts
};
}
});Workflow > Add Step > OpenAI
Add OpenAI Chat Completion Step
Add another step and search for OpenAI. Select the Chat Completions action. This sends your cleaned meeting notes to GPT-4 with specific formatting instructions. You'll configure the model, temperature, and system prompt for consistent output.
- 1Click '+' to add another step
- 2Search for 'OpenAI' in the apps list
- 3Select 'Chat Completions' action
- 4Connect your OpenAI account with API key
OpenAI Configuration > Messages
Configure AI Prompt
Set up the system message to format notes consistently. Use a temperature of 0.3 for predictable output. The prompt should specify exact formatting rules: bullet points for key discussion items, numbered action items with owners, and a next steps section.
- 1Set Model to 'gpt-4-turbo-preview'
- 2Set Temperature to 0.3
- 3Add system message with formatting instructions
- 4Reference the cleaned text from step 4 in user message
Workflow > Add Step > Slack > Send Message
Add Slack Reply Step
Add a final Slack step to post the formatted notes back to the channel. Select Send Message and configure it to reply in the same thread as the original message. This keeps conversations organized and shows the before/after clearly.
- 1Add another Slack step
- 2Choose 'Send Message' action
- 3Set Channel to same as trigger channel
- 4Set Thread TS to original message timestamp
Send Message > Message Configuration
Map OpenAI Response to Message
In the message content field, reference the OpenAI response text. Add a prefix like 'Formatted Notes:' and include the AI-generated content. Test the mapping by expanding the data panel to see the exact field path from the OpenAI step.
- 1Click in the Message Text field
- 2Add prefix text 'Formatted Meeting Notes:'
- 3Reference the OpenAI completion content
- 4Add emoji or formatting for visual separation
Workflow > Test
Test the Workflow
Click Test in the top right to run the workflow with sample data. If you don't have test data, go to your Slack channel and post a sample meeting note to trigger the workflow. Check each step's output to verify data flows correctly.
- 1Click the green 'Test' button
- 2Check trigger data appears correctly
- 3Verify code step cleans text properly
- 4Confirm OpenAI returns formatted notes
Workflow > Deploy
Deploy Workflow
Click Deploy to make the workflow live. It now runs automatically when new messages appear in your configured channel. The workflow processes messages in real-time with typical response times under 10 seconds for standard meeting notes.
- 1Click the blue 'Deploy' button
- 2Confirm deployment in the popup
- 3Test with a real message in Slack
- 4Monitor the execution log for any errors
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 Pipedream for this if you need instant processing and want to customize the text cleaning logic with real Node.js code. The webhook triggers fire within seconds of posting to Slack, and you can handle complex message parsing that other platforms struggle with. Skip this approach if your team is non-technical and just wants basic formatting - Zapier's built-in text formatters might be simpler.
Each workflow run costs about 2-3 Pipedream credits plus OpenAI API usage. At $0.01 per 1K tokens, a typical meeting note cleanup costs $0.02-0.05 in OpenAI fees. With 20 meetings per month, you're looking at $1-2 monthly plus Pipedream's $19 developer plan. Make's GPT-4 integration costs the same but includes 10K operations, making it cheaper for high-volume teams.
Make handles this workflow better if you need complex conditional logic - their visual flow builder makes it easier to add meeting type detection or route different note formats to different channels. Zapier's OpenAI integration is solid but their code steps are limited compared to Pipedream's full Node.js runtime. n8n gives you similar coding flexibility but requires self-hosting. Power Automate works if you're in the Microsoft ecosystem, but their AI Builder credits are expensive compared to direct OpenAI API access. Pipedream wins on developer experience and webhook reliability.
You'll hit OpenAI rate limits if multiple people post notes simultaneously - add a 2-3 second delay before the API call. Slack's message formatting is inconsistent, especially with mobile users who include weird line breaks and autocorrect artifacts. The AI sometimes creates action items from casual conversation rather than actual commitments, so your prompts need to be very specific about what constitutes a real task versus discussion points.
Ideas for what to build next
- āAdd Meeting Attendee Tags ā Extract @mentions from notes and automatically tag attendees in the formatted output for better accountability.
- āCreate Action Item Tracking ā Send action items to a project management tool like Asana or Notion with due dates and assignees automatically populated.
- āBuild Meeting Summary Digest ā Collect all weekly meeting notes and send a formatted digest to leadership every Friday with key decisions and action item status.
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