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

How to Build an AI-Powered Q&A Bot with Make

Automatically send Slack mentions to GPT-4 and post AI responses as thread replies.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for

Teams wanting a reliable AI bot that handles errors gracefully and works across all Slack channels

Not ideal for

Use cases requiring instant responses or advanced AI features like function calling

Sync type

polling

Use case type

notification

Real-World Example

💡

A 25-person marketing agency uses this to answer client questions in shared Slack channels. Before automation, senior staff interrupted deep work 8-10 times daily to answer routine questions about project status, pricing, and processes. Now GPT-4 handles 70% of questions instantly, and complex queries still get human attention.

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.

OpenAI API key with GPT-4 access and billing set up
Slack bot app created in your workspace with app_mention event permissions
Slack bot invited to channels where you want Q&A functionality
Make account with sufficient operations for your expected question volume
Admin access to install and configure the Slack bot in your workspace

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Channel IDchannel
Message Texttext
Message Timestampts
AI Responsechoices[0].message.content
2 optional fields▸ show
User IDuser
Bot User IDbot_id

Step-by-Step Setup

1

Dashboard > Create Scenario > Slack

Create New Scenario

Start a new Make scenario to handle the Slack mention trigger. This will be your automation's foundation.

  1. 1Click 'Create a new scenario' from the Make dashboard
  2. 2Search for 'Slack' in the app selector
  3. 3Select 'Watch Events' trigger module
  4. 4Connect your Slack workspace by clicking 'Add' and following OAuth
What you should see: You should see a purple Slack module with 'Watch Events' selected and a green connection indicator.
2

Slack Module > Settings

Configure Slack Event Trigger

Set up the trigger to fire when your bot gets mentioned in any channel or thread. This filters for actual bot mentions, not all messages.

  1. 1Select 'app_mention' from the Event Type dropdown
  2. 2Choose the Slack team from the Team dropdown
  3. 3Leave Channel field empty to monitor all channels
  4. 4Click 'OK' to save the trigger settings
What you should see: The trigger shows 'app_mention' as the event type and your connected workspace name.
Common mistake — Don't select 'message' event type — that triggers on every message and will burn through your operations instantly
Make
+
click +
search apps
OpenAI
OP
OpenAI
Configure Slack Event Trigger
OpenAI
OP
module added
3

Scenario > Add Module > OpenAI

Add OpenAI Chat Module

Connect OpenAI's GPT-4 API to process the question from Slack. This module sends the user's message and returns the AI response.

  1. 1Click the '+' button to add a module after Slack
  2. 2Search for 'OpenAI' and select it
  3. 3Choose 'Create a Chat Completion' action
  4. 4Add your OpenAI API key in the connection field
What you should see: A green OpenAI module appears connected to your Slack trigger with 'Create a Chat Completion' selected.
Common mistake — Make sure you have GPT-4 API access — the free OpenAI tier only includes GPT-3.5
4

OpenAI Module > Configuration

Map Question to OpenAI

Configure the OpenAI module to send the Slack message text to GPT-4. The model field determines which AI version processes your questions.

  1. 1Set Model to 'gpt-4' from the dropdown
  2. 2In the Messages array, add a new item
  3. 3Set Role to 'user'
  4. 4Map Content to the Slack event text field
  5. 5Set Max Tokens to 500
What you should see: The OpenAI module shows gpt-4 model selected and the message content mapped from Slack's text field.
Common mistake — Don't exceed 1000 max tokens unless you need long responses — higher token counts cost significantly more per API call
OpenAI fields
choices[0].message.content
model
usage.prompt_tokens
usage.completion_tokens
finish_reason
available as variables:
1.props.choices[0].message.content
1.props.model
1.props.usage.prompt_tokens
1.props.usage.completion_tokens
1.props.finish_reason
5

Scenario > Add Module > Slack > Create Message

Add Slack Reply Module

Set up a second Slack module to post the AI response back as a thread reply. This keeps conversations organized under the original question.

  1. 1Click '+' to add another module after OpenAI
  2. 2Select Slack again, then 'Create a Message'
  3. 3Connect to the same Slack workspace
  4. 4Choose 'Channel' as the destination type
What you should see: A second purple Slack module appears showing 'Create a Message' with your workspace connected.
6

Slack Reply Module > Message Settings

Configure Thread Reply

Map the AI response to post as a threaded reply to the original mention. The thread_ts parameter makes this a reply, not a new message.

  1. 1Map Channel from the original Slack event channel field
  2. 2Map Text to the OpenAI response content
  3. 3Set Thread TS to the original message timestamp
  4. 4Enable 'As User' to post as your bot
What you should see: The reply module shows channel and thread_ts mapped from the trigger, with text from OpenAI response.
Common mistake — Missing the thread_ts mapping will post responses as new messages instead of replies, cluttering your channels
7

Right-click Module > Add Error Handler

Add Error Handling

Set up error handling for API failures or rate limits. Without this, failed requests break the entire scenario.

  1. 1Right-click the OpenAI module and select 'Add error handler'
  2. 2Choose 'Break' directive from the options
  3. 3Add a filter for HTTP 429 errors (rate limits)
  4. 4Set resume execution after 60 seconds
What you should see: An error handling route appears with a break directive and rate limit filter configured.
Common mistake — Don't use 'Ignore' directive — you'll lose questions when OpenAI is down and users won't get responses
8

Scenario > Run Once

Test the Scenario

Run a test to verify the complete flow works correctly. Testing catches field mapping issues before you go live.

  1. 1Click 'Run once' at the bottom of the scenario
  2. 2Go to Slack and mention your bot with a test question
  3. 3Return to Make and check the execution log
  4. 4Verify the AI response posted as a thread reply
What you should see: The execution log shows all three modules completed successfully, and you see the AI response in your Slack thread.
Common mistake — Test with a real mention, not the sample data — OpenAI formatting can differ between test and live data
Make
▶ Run once
executed
OpenAI
Slack
Slack
🔔 notification
received
9

Scenario > Scheduling Settings

Schedule the Scenario

Turn on the scenario to run automatically. The polling interval determines how quickly your bot responds to mentions.

  1. 1Click the 'Scheduling' toggle to ON
  2. 2Set interval to 'Every 2 minutes'
  3. 3Click 'OK' to save the schedule
  4. 4Click 'Save' to activate the scenario
What you should see: The scenario shows 'ON' status with 'Every 2 minutes' scheduling displayed.
Common mistake — Don't set polling under 1 minute — Slack's API has rate limits and you'll hit them quickly with frequent checks

Drop this into a Make custom function.

JavaScript — Custom Function{{if(contains(1.text, "urgent") or contains(1.text, "ASAP"), "gpt-4", "gpt-3.5-turbo")}}
▸ Show code
{{if(contains(1.text, "urgent") or contains(1.text, "ASAP"), "gpt-4", "gpt-3.5-turbo")}}

... expand to see full code

{{if(contains(1.text, "urgent") or contains(1.text, "ASAP"), "gpt-4", "gpt-3.5-turbo")}}

Scaling Beyond 200+ questions/day+ Records

If your volume exceeds 200+ questions/day records, apply these adjustments.

1

Batch API calls

Switch to OpenAI's batch API for non-urgent questions. Responses take 10-60 minutes but cost 50% less than real-time API calls.

2

Add response caching

Store common questions and answers in Make's data store. Check for existing answers before calling OpenAI to reduce API usage and speed up responses.

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 need reliable error handling and complex message formatting. Make's visual builder makes it easy to add filters for specific channels or question types, and the error handling prevents lost questions when OpenAI goes down. The polling trigger responds within 2 minutes of mentions. Skip Make if you need instant responses — Slack's real-time API works better through custom code.

Cost

This workflow burns 3 operations per question: Slack trigger, OpenAI API call, and Slack reply. At 200 questions per month, that's 600 operations total. The Core plan at $9/month includes 10,000 operations, so you're well covered. Zapier would cost $20/month for the same volume on their Professional plan. N8n self-hosted is free but requires server management.

Tradeoffs

Zapier handles Slack's real-time events better — their trigger fires instantly instead of Make's 2-minute polling. N8n's OpenAI integration includes function calling and vision models that Make doesn't support yet. But Make wins on error handling and data transformation. When OpenAI hits rate limits, Make's retry logic keeps working while Zapier often drops requests.

You'll hit OpenAI's rate limits at 50+ questions per hour — the API allows 3 requests per minute on free tier, 3,500 per minute on paid. Make's error handler manages this, but your bot will be slow during high usage. Slack's app_mention events sometimes duplicate during network issues, so add a filter to check message timestamps and avoid processing the same question twice.

Ideas for what to build next

  • Add conversation memoryStore recent questions in Make's data store so the bot remembers context from previous messages in the same thread.
  • Create knowledge base integrationConnect your company's documentation or FAQ database to provide more accurate, specific answers than GPT-4's general training.
  • Build usage analyticsSend bot interaction data to Google Sheets or your analytics platform to track which questions are most common and optimize responses.

Related guides

Was this guide helpful?
OpenAI + Slack overviewMake profile →