

How to Monitor Slack Feedback for Sentiment with OpenAI and Make
Automatically analyze sentiment in your #feedback Slack channel using GPT to classify each message as positive, neutral, or negative.
Steps and UI details are based on platform versions at time of writing β check each platform for the latest interface.
Best for
Teams that want automated sentiment tracking on feedback without manual tagging.
Not ideal for
High-volume channels with 500+ messages daily due to API costs and rate limits.
Sync type
real-timeUse case type
notificationReal-World Example
A 25-person B2B SaaS company uses this to monitor their #customer-feedback channel where support agents post user complaints and feature requests. Before automation, product managers manually read through 40-50 messages weekly to gauge sentiment trends. Now they get immediate sentiment classification and can spot negative sentiment spikes that indicate product issues.
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 Make
Copy the pre-built Make blueprint and paste it straight into Make. 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 | |
| Message Timestamp | ts | |
| GPT Response | choices[].message.content | |
| Message Type | type | |
1 optional fieldβΈ show
| User Name | user_name |
Step-by-Step Setup
Dashboard > Create scenario > + > Slack
Create New Scenario in Make
Start building your sentiment analysis workflow by creating a new scenario. Make will automatically open the visual editor where you'll connect Slack monitoring to OpenAI analysis.
- 1Log into Make and click 'Create a new scenario' from your dashboard
- 2Click the '+' button in the center of the canvas
- 3Search for 'Slack' and select it from the app list
- 4Choose 'Watch Public Channel Messages' as your trigger
Slack module > Connection > Create connection
Connect Your Slack Workspace
Authenticate Make with your Slack workspace to access channel messages. Make needs permission to read messages from your #feedback channel specifically.
- 1Click 'Create a connection' in the Slack module
- 2Click 'Sign in with Slack' and authorize Make in the popup window
- 3Select your workspace from the dropdown if you have multiple
- 4Click 'Allow' to grant Make read access to channels and messages
Slack module > Configuration
Configure Channel Monitoring
Point the trigger at your specific feedback channel. Make will start watching for new messages and pass each one to your sentiment analysis.
- 1In the 'Channel' dropdown, scroll down and select your #feedback channel
- 2Set 'Limit' to 10 to process up to 10 messages per scenario run
- 3Leave 'Types' as default to capture all message types
- 4Click 'OK' to save the trigger configuration
Canvas > + > OpenAI > Create a Chat Completion
Add OpenAI Module
Connect the OpenAI service to analyze each message that comes through. This module will receive the Slack message text and send it to GPT for sentiment classification.
- 1Click the '+' button to the right of your Slack module
- 2Search for 'OpenAI' and select it from the results
- 3Choose 'Create a Chat Completion' as your OpenAI action
- 4The modules should now be connected with an arrow between them
OpenAI module > Connection > Create connection
Connect OpenAI Account
Authenticate with OpenAI using your API key. Make needs this to send messages to GPT and receive sentiment classifications back.
- 1In the OpenAI module, click 'Create a connection'
- 2Paste your OpenAI API key into the 'API Key' field
- 3Name the connection something like 'OpenAI Sentiment'
- 4Click 'Save' to test and store the connection
OpenAI module > Messages array
Configure GPT Sentiment Prompt
Set up the prompt that will analyze each Slack message for sentiment. GPT needs clear instructions to return consistent positive/neutral/negative classifications.
- 1Set 'Model' to 'gpt-3.5-turbo' for cost efficiency
- 2In the 'Messages' array, click 'Add item' to create the first message
- 3Set 'Role' to 'system' and 'Content' to: 'Analyze the sentiment of the following message and respond with only one word: positive, neutral, or negative'
- 4Click 'Add item' again, set 'Role' to 'user', and map 'Content' to the Slack message text using the data picker
OpenAI module > Advanced settings
Add Response Parsing
Configure OpenAI parameters to get clean, consistent sentiment classifications. These settings ensure GPT returns just the sentiment word without extra explanation.
- 1Set 'Max Tokens' to 10 to limit response length
- 2Set 'Temperature' to 0.1 for consistent responses
- 3Leave 'Top P' and 'Frequency Penalty' at defaults
- 4Set 'Presence Penalty' to 0
Canvas > + > Slack > Create a Message
Add Slack Response Module
Send the sentiment analysis back to Slack so your team can see the results. This creates a thread reply with the classification.
- 1Click '+' after the OpenAI module and search for 'Slack'
- 2Select 'Create a Message' action
- 3Use the same Slack connection you created earlier
- 4Set 'Channel' to map to the original channel from the trigger
Slack response module > Text field
Configure Response Message
Format the sentiment result as a clear message that posts back to the channel. Include the classification and maybe an emoji for visual clarity.
- 1Map 'Text' to combine static text with the OpenAI response: 'Sentiment: [OpenAI response]'
- 2Set 'Thread TS' to the original message timestamp to create a thread reply
- 3Leave 'Username' and 'Icon' empty to use Make's default
- 4Check 'Unfurl links' if you want link previews
π¬ New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Bottom toolbar > Run once
Test the Complete Workflow
Run a test to make sure messages flow correctly from Slack through OpenAI and back. This verifies your API connections and data mapping.
- 1Click 'Run once' at the bottom of the screen
- 2Post a test message in your #feedback channel like 'This feature is amazing!'
- 3Watch the execution log as each module processes
- 4Check Slack for the sentiment reply in a thread under your test message
Bottom left toggle > Schedule settings
Enable Real-time Monitoring
Turn on the scenario to start continuous monitoring of your feedback channel. Make will now analyze every new message automatically.
- 1Click the 'ON' toggle switch in the bottom left of the scenario
- 2Set the scheduling to 'Immediately' for real-time processing
- 3Click 'OK' to confirm the activation
- 4Verify the scenario shows 'Status: Active' in your dashboard
Right-click OpenAI module > Add error handler
Set Up Error Handling
Configure what happens when OpenAI is unavailable or returns unexpected responses. This prevents your scenario from breaking on API errors.
- 1Right-click the OpenAI module and select 'Add error handler'
- 2Choose 'Ignore' as the error handling action
- 3Add a filter to the error handler that catches status code 429 (rate limits)
- 4Connect the error handler to continue the flow without stopping
Drop this into a Make custom function.
Copy this templateAdd this filter between Slack and OpenAI: {{length(1.text) > 10 AND 1.subtype != "bot_message" AND not(contains(1.text; "uploaded a file"))}} This skips short messages, bot posts, and file uploads that waste OpenAI credits.βΈ Show code
Add this filter between Slack and OpenAI: {{length(1.text) > 10 AND 1.subtype != "bot_message" AND not(contains(1.text; "uploaded a file"))}} This skips short messages, bot posts, and file uploads that waste OpenAI credits.... expand to see full code
Add this filter between Slack and OpenAI: {{length(1.text) > 10 AND 1.subtype != "bot_message" AND not(contains(1.text; "uploaded a file"))}} This skips short messages, bot posts, and file uploads that waste OpenAI credits.Scaling Beyond 500+ messages/day+ Records
If your volume exceeds 500+ messages/day records, apply these adjustments.
Batch Processing Setup
Switch from real-time to scheduled runs every 15 minutes. Use Slack's bulk message retrieval to process multiple messages in one scenario run, reducing operation costs.
OpenAI Model Optimization
Upgrade to GPT-3.5-turbo with higher rate limits or switch to a fine-tuned model for sentiment analysis. This costs more per request but handles volume spikes better.
Add Message Filtering
Filter out bot messages, system notifications, and messages under 20 characters before sending to OpenAI. This can reduce API calls by 30-40% in typical channels.
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 Make for this if you want visual debugging and reliable error handling. The scenario builder lets you see exactly where sentiment classification fails, and you can add filters to handle edge cases like empty messages or emoji-only posts. Make's OpenAI integration also handles rate limiting better than Zapier. Skip Make if you're processing more than 1,000 messages daily β N8n becomes much cheaper at that volume.
This workflow costs about 2 operations per message: one for the Slack trigger and one for OpenAI analysis. At 200 messages monthly, that's 400 operations total, which fits Make's free tier (1,000 ops/month). The Core plan at $9/month handles up to 10,000 operations. OpenAI adds roughly $0.0001 per message with GPT-3.5-turbo. Zapier would cost $20/month for the same volume since their OpenAI integration requires a paid plan.
Zapier's OpenAI connector includes built-in sentiment analysis without custom prompts β just map your text and get back positive/negative/neutral scores. N8n offers more advanced text preprocessing with regex and string manipulation nodes before sending to GPT. But Make strikes the right balance here: enough flexibility to customize your prompts without overcomplicating the setup. The visual error handling also beats both alternatives when OpenAI hits rate limits.
You'll hit OpenAI rate limits fast if multiple messages arrive simultaneously β GPT-3.5-turbo allows 3 requests per minute on free tier accounts. Make queues the requests but your responses will be delayed. Slack's message format includes threading data that's easy to miss in the field mapper. Also, emoji reactions and file uploads create different message types that might break your sentiment prompt. Add a filter after the Slack trigger to only process text messages longer than 5 characters.
Ideas for what to build next
- βAdd Sentiment Trend Tracking β Connect a Google Sheets module to log sentiment scores over time. Create weekly reports showing positive vs negative feedback trends.
- βSet Up Alert Notifications β Add a filter that triggers when negative sentiment exceeds 3 messages in an hour. Send alerts to your product team's Slack channel or email.
- βExpand to Multiple Channels β Clone this scenario for #support and #feature-requests channels. Compare sentiment across different feedback sources to identify problem areas.
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