Beginner~12 min setupAI & CommunicationVerified April 2026
OpenAI logo
Slack logo

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

Use case type

notification

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

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

Admin access to a Slack workspace where you can install apps
OpenAI API account with available credits (minimum $5 balance recommended)
A dedicated #feedback channel in Slack for testing
Make account with available operations (free tier works for testing)
Permission to read messages in your target Slack channels

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Message Texttext
Channel IDchannel
Message Timestampts
GPT Responsechoices[].message.content
Message Typetype
1 optional fieldβ–Έ show
User Nameuser_name

Step-by-Step Setup

1

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.

  1. 1Log into Make and click 'Create a new scenario' from your dashboard
  2. 2Click the '+' button in the center of the canvas
  3. 3Search for 'Slack' and select it from the app list
  4. 4Choose 'Watch Public Channel Messages' as your trigger
βœ“ What you should see: You should see a Slack module on your canvas with 'Watch Public Channel Messages' selected as the trigger type.
2

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.

  1. 1Click 'Create a connection' in the Slack module
  2. 2Click 'Sign in with Slack' and authorize Make in the popup window
  3. 3Select your workspace from the dropdown if you have multiple
  4. 4Click 'Allow' to grant Make read access to channels and messages
βœ“ What you should see: The connection field should show 'Connected' with your workspace name, and a green checkmark should appear next to the connection dropdown.
⚠
Common mistake β€” Make sure you have admin permissions in the Slack workspace β€” regular users can't install apps that read channel messages.
Make settings
Connection
Choose a connection…Add
click Add
OpenAI
Log in to authorize
Authorize Make
popup window
βœ“
Connected
green checkmark
3

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.

  1. 1In the 'Channel' dropdown, scroll down and select your #feedback channel
  2. 2Set 'Limit' to 10 to process up to 10 messages per scenario run
  3. 3Leave 'Types' as default to capture all message types
  4. 4Click 'OK' to save the trigger configuration
βœ“ What you should see: The Slack module should display your channel name and show 'Limit: 10' in the module summary.
⚠
Common mistake β€” Don't pick a high-traffic channel for testing β€” you'll burn through Make operations fast. Start with a dedicated feedback channel.
4

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.

  1. 1Click the '+' button to the right of your Slack module
  2. 2Search for 'OpenAI' and select it from the results
  3. 3Choose 'Create a Chat Completion' as your OpenAI action
  4. 4The modules should now be connected with an arrow between them
βœ“ What you should see: Your scenario should show Slack connected to OpenAI with a flow arrow, and the OpenAI module should display 'Create a Chat Completion'.
5

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.

  1. 1In the OpenAI module, click 'Create a connection'
  2. 2Paste your OpenAI API key into the 'API Key' field
  3. 3Name the connection something like 'OpenAI Sentiment'
  4. 4Click 'Save' to test and store the connection
βœ“ What you should see: The connection dropdown should show your connection name with a green checkmark indicating successful authentication.
⚠
Common mistake β€” Your API key starts with 'sk-' β€” don't paste your organization ID by mistake. Get the key from platform.openai.com/api-keys.
6

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.

  1. 1Set 'Model' to 'gpt-3.5-turbo' for cost efficiency
  2. 2In the 'Messages' array, click 'Add item' to create the first message
  3. 3Set 'Role' to 'system' and 'Content' to: 'Analyze the sentiment of the following message and respond with only one word: positive, neutral, or negative'
  4. 4Click 'Add item' again, set 'Role' to 'user', and map 'Content' to the Slack message text using the data picker
βœ“ What you should see: The Messages array should show two items: a system message with your prompt and a user message mapped to Slack's message content.
⚠
Common mistake β€” Keep the system prompt simple β€” complex instructions make GPT responses inconsistent. Stick to the three-word output format.
7

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.

  1. 1Set 'Max Tokens' to 10 to limit response length
  2. 2Set 'Temperature' to 0.1 for consistent responses
  3. 3Leave 'Top P' and 'Frequency Penalty' at defaults
  4. 4Set 'Presence Penalty' to 0
βœ“ What you should see: The OpenAI module configuration should show Max Tokens: 10 and Temperature: 0.1 in the module summary.
⚠
Common mistake β€” Don't set Temperature to 0 β€” OpenAI sometimes returns errors. Use 0.1 for near-deterministic results.
8

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.

  1. 1Click '+' after the OpenAI module and search for 'Slack'
  2. 2Select 'Create a Message' action
  3. 3Use the same Slack connection you created earlier
  4. 4Set 'Channel' to map to the original channel from the trigger
βœ“ What you should see: You should see three connected modules: Slack trigger β†’ OpenAI β†’ Slack response, with the response module showing 'Create a Message'.
9

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.

  1. 1Map 'Text' to combine static text with the OpenAI response: 'Sentiment: [OpenAI response]'
  2. 2Set 'Thread TS' to the original message timestamp to create a thread reply
  3. 3Leave 'Username' and 'Icon' empty to use Make's default
  4. 4Check 'Unfurl links' if you want link previews
βœ“ What you should see: The message preview should show your formatted text with the OpenAI response mapped as dynamic content.
⚠
Common mistake β€” Map to 'Thread TS' not 'TS' β€” otherwise you'll create new messages instead of thread replies.
Message template
πŸ“¬ New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
10

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.

  1. 1Click 'Run once' at the bottom of the screen
  2. 2Post a test message in your #feedback channel like 'This feature is amazing!'
  3. 3Watch the execution log as each module processes
  4. 4Check Slack for the sentiment reply in a thread under your test message
βœ“ What you should see: The execution should show green checkmarks on all modules, and you should see a thread reply in Slack showing 'Sentiment: positive'.
⚠
Common mistake β€” If no data flows, check that your Slack channel has recent messages β€” the trigger only picks up messages posted after activation.
Make
β–Ά Run once
executed
βœ“
OpenAI
βœ“
Slack
Slack
πŸ”” notification
received
11

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.

  1. 1Click the 'ON' toggle switch in the bottom left of the scenario
  2. 2Set the scheduling to 'Immediately' for real-time processing
  3. 3Click 'OK' to confirm the activation
  4. 4Verify the scenario shows 'Status: Active' in your dashboard
βœ“ What you should see: The scenario should show 'ON' with a green indicator, and your dashboard should list it as 'Active' with the current timestamp.
⚠
Common mistake β€” Real-time scenarios consume operations quickly on busy channels. Monitor your usage in the first few days to avoid overage charges.
12

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.

  1. 1Right-click the OpenAI module and select 'Add error handler'
  2. 2Choose 'Ignore' as the error handling action
  3. 3Add a filter to the error handler that catches status code 429 (rate limits)
  4. 4Connect the error handler to continue the flow without stopping
βœ“ What you should see: You should see a small error handler route branching from your OpenAI module with 'Ignore' configured.
⚠
Common mistake β€” Don't use 'Break' error handling in production β€” one API timeout will stop your entire scenario until you manually restart it.

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.

1

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.

2

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.

3

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

VerdictWhy Make for this workflow

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.

Cost

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.

Tradeoffs

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

Was this guide helpful?
← OpenAI + Slack overviewMake profile β†’