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

How to Draft Email Responses from Slack with Make

Paste a client email into a Slack channel and automatically generate a professional response using OpenAI's GPT-4.

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

Best for

Teams that regularly draft email responses and want AI assistance with professional tone

Not ideal for

High-volume customer service (use dedicated tools like Intercom) or personal email management

Sync type

real-time

Use case type

notification

Real-World Example

πŸ’‘

A 12-person B2B consulting firm uses this to draft client email responses in their #client-emails Slack channel. Account managers paste incoming client emails and get professional AI-drafted responses within 30 seconds. Before automation, junior staff spent 15-20 minutes crafting each response and senior partners had to review every outbound email for tone and accuracy.

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 account with billing enabled (free tier has severe rate limits)
Slack workspace admin access or pre-approved Make app installation
Dedicated Slack channel for email content (avoid high-traffic channels)
Make account (free tier works but has operation limits)

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Message Texttext
Channel IDchannel
Message Timestampts
AI Response Textchoices[0].text
Thread Timestampthread_ts
1 optional fieldβ–Έ show
User IDuser

Step-by-Step Setup

1

Scenarios > Create new scenario > Slack

Create New Scenario

Start a new Make scenario to connect Slack message triggers with OpenAI response generation. This scenario will watch for new messages in a specific Slack channel.

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

Slack module > Connection > Add

Connect Slack Account

Link your Slack workspace to Make so the scenario can access your channels and messages. You'll need admin permissions or pre-approval from your workspace admin.

  1. 1Click 'Add' next to the Connection field
  2. 2Select 'OAuth 2.0' connection type
  3. 3Click 'Continue' and authorize Make to access Slack
  4. 4Choose your workspace from the dropdown
βœ“ What you should see: Green 'Connected' status appears next to your Slack workspace name.
⚠
Common mistake β€” If you see a 'missing_scope' error, your admin needs to approve the Make app in Slack's app directory first.
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

Set which Slack channel to monitor for email content. Pick a dedicated channel like #email-drafts to avoid triggering on unrelated messages.

  1. 1Select your workspace from the Team dropdown
  2. 2Choose the target channel from the Channel dropdown
  3. 3Set 'Limit' to 1 to process one message at a time
  4. 4Leave 'Only messages from bots' unchecked
βœ“ What you should see: The channel name displays in the Channel field, and test data shows recent channel messages.
⚠
Common mistake β€” Don't use a high-traffic channel like #general β€” you'll waste operations on irrelevant messages.
4

Add module > OpenAI > Create a Completion

Add OpenAI Module

Connect OpenAI's API to generate the email response. The GPT-4 model works best for professional email drafting compared to GPT-3.5.

  1. 1Click the + button to the right of your Slack module
  2. 2Search for 'OpenAI' and select it
  3. 3Choose 'Create a Completion' action
  4. 4Select 'GPT-4' from the Model dropdown
βœ“ What you should see: An OpenAI module appears connected to your Slack trigger with GPT-4 selected.
5

OpenAI module > Connection > Add

Connect OpenAI API

Add your OpenAI API key to authenticate requests. You'll need a paid OpenAI account since the free tier has strict rate limits.

  1. 1Click 'Add' next to the Connection field
  2. 2Paste your OpenAI API key in the API Key field
  3. 3Click 'Save' to test the connection
  4. 4Verify the green connection status appears
βœ“ What you should see: Green 'Connected' badge shows next to your OpenAI connection name.
⚠
Common mistake β€” API keys starting with 'sk-' are secret keys β€” never share these or commit them to code repositories.
6

OpenAI module > Prompt field

Build the Prompt Template

Create a structured prompt that tells GPT-4 to draft a professional email response. The prompt should include the original email content from Slack.

  1. 1Click in the Prompt field to open the mapping panel
  2. 2Type: 'Draft a professional email response to the following:'
  3. 3Press Enter twice and click 'Text' under Slack data
  4. 4Select the message text field to insert the Slack message content
βœ“ What you should see: The prompt field shows your template text with a purple data pill representing the Slack message.
⚠
Common mistake β€” Don't make the prompt too long β€” OpenAI charges by token and long prompts eat into your response budget.
Message template
πŸ“¬ New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
message template
πŸ”” New Record: {{choices[0].message.content}} {{model}}
usage.prompt_tokens: {{usage.prompt_tokens}}
usage.completion_tokens: {{usage.completion_tokens}}
#sales
πŸ”” New Record: Jane Smith
Company: Acme Corp
7

OpenAI module > Parameters section

Configure Response Parameters

Set OpenAI parameters to generate appropriate email responses. Lower temperature gives more consistent professional tone.

  1. 1Set Max Tokens to 300 for typical email length
  2. 2Set Temperature to 0.3 for consistent professional responses
  3. 3Leave Top P at default value of 1
  4. 4Set Frequency Penalty to 0.2 to avoid repetition
βœ“ What you should see: All parameter fields show your configured values with no validation errors.
⚠
Common mistake β€” Max Tokens includes both prompt and response β€” if your prompt is 200 tokens, you only get 100 tokens for the actual response.
8

Add module > Slack > Create a Message

Add Slack Response Module

Send the AI-generated response back to Slack so your team can review and use it. This creates a thread reply under the original message.

  1. 1Click + after the OpenAI module
  2. 2Search for 'Slack' and add another Slack module
  3. 3Choose 'Create a Message' action
  4. 4Use the same connection from step 2
βœ“ What you should see: A second Slack module appears connected to OpenAI with 'Create a Message' selected.
9

Slack module > Message configuration

Configure Response Message

Set up the Slack message to post the generated response. Using a thread keeps the original email and response together.

  1. 1Select the same channel as your trigger
  2. 2Click in the Text field and select the OpenAI 'Text' output
  3. 3Enable 'Reply in thread' toggle
  4. 4Map the Thread TS field to the original message timestamp
βœ“ What you should see: The message configuration shows the AI response text and thread settings properly mapped.
⚠
Common mistake β€” If you skip the thread timestamp mapping, responses will post as new messages instead of replies, cluttering your channel.
Message template
πŸ“¬ New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
10

Scenario controls > Run once

Test the Scenario

Run a test to verify the complete workflow processes a message correctly. This checks all connections and data mapping.

  1. 1Click 'Run once' at the bottom of the scenario
  2. 2Go to your Slack channel and post a sample email
  3. 3Return to Make and wait for the execution to complete
  4. 4Check that a response appeared as a thread reply in Slack
βœ“ What you should see: Make shows green checkmarks on all modules and your Slack channel displays the AI-generated response.
⚠
Common mistake β€” Test messages should contain realistic email content β€” short messages like 'test' won't generate useful responses.
Make
β–Ά Run once
executed
βœ“
OpenAI
βœ“
Slack
Slack
πŸ”” notification
received
11

OpenAI module > Right-click > Add error handler

Set Up Error Handling

Configure what happens when OpenAI is down or rate-limited. This prevents the scenario from breaking on temporary issues.

  1. 1Right-click the OpenAI module and select 'Add error handler'
  2. 2Choose 'Break' as the error handling directive
  3. 3Add a filter to catch HTTP 429 (rate limit) errors specifically
  4. 4Set a 2-minute delay before retry for rate limit errors
βœ“ What you should see: A small error handler route appears below your OpenAI module with the configured settings.
⚠
Common mistake β€” Don't use 'Ignore' for error handling β€” you'll lose messages without knowing why the scenario failed.
12

Scenario controls > Activate toggle

Activate the Scenario

Turn on the scenario to start monitoring your Slack channel continuously. Make will check for new messages every few minutes.

  1. 1Click the toggle switch in the bottom left corner
  2. 2Confirm activation in the popup dialog
  3. 3Set the scheduling to run every 5 minutes
  4. 4Save the scenario with a descriptive name like 'Email Response Drafter'
βœ“ What you should see: The scenario shows 'ON' status and begins monitoring your Slack channel for new messages.
⚠
Common mistake β€” Make's free tier includes only 1,000 operations per month β€” monitor your usage if you're on the free plan.

Drop this into a Make custom function.

Copy this templateAdd this filter between Slack and OpenAI modules to only process messages that look like emails:
β–Έ Show code
Add this filter between Slack and OpenAI modules to only process messages that look like emails:
{{contains(1.text; "@")}} AND {{contains(1.text; "Subject:")}} OR {{contains(1.text; "From:")}}

... expand to see full code

Add this filter between Slack and OpenAI modules to only process messages that look like emails:

{{contains(1.text; "@")}} AND {{contains(1.text; "Subject:")}} OR {{contains(1.text; "From:")}}

Scaling Beyond 50+ emails/day+ Records

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

1

Switch to N8n Self-Hosted

At 1,500+ operations monthly, N8n's $50 cloud plan or $0 self-hosted option beats Make's $29 Pro plan. You'll need Docker knowledge for self-hosting.

2

Implement Response Caching

Add a Google Sheets module to cache similar email patterns and responses. Check for existing responses before calling OpenAI to reduce API costs by 30-40%.

3

Use GPT-3.5-Turbo Instead

Switch from GPT-4 to GPT-3.5-turbo to cut API costs from $0.03 to $0.002 per 1K tokens. Response quality drops slightly but cost savings are massive at scale.

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 workflow building without coding and need reliable OpenAI API handling. Make's built-in error handling and retry logic works better than Zapier for API-heavy workflows like this one. The visual interface makes it easy to add filters and conditions later. Skip Make if you're processing 50+ emails daily β€” N8n's self-hosted option becomes more cost-effective at that volume.

Cost

This workflow uses 3 operations per email: Slack trigger, OpenAI completion, and Slack response. At 100 emails monthly, that's 300 operations total. Make's Core plan at $9/month includes 10,000 operations, so you're well covered. Zapier would cost $20/month for their Professional plan to get the same OpenAI integration features. N8n cloud costs $50/month but includes unlimited operations.

Tradeoffs

Zapier's OpenAI integration includes built-in prompt templates for common email scenarios, which saves setup time compared to Make's blank prompt field. N8n offers better debugging with detailed execution logs and the ability to replay failed runs with modified data. But Make's error handling is more sophisticated β€” you can set different retry strategies for different error types, while Zapier just retries everything the same way.

OpenAI's GPT-4 API costs $0.03 per 1K tokens, and typical email responses use 200-400 tokens including the prompt. At 100 emails monthly, expect $6-12 in OpenAI costs on top of Make's fees. The API occasionally returns rate limit errors during peak hours β€” Make's built-in 429 handling retries automatically, but you'll see 2-3 minute delays. Long email chains can hit the 4K token context limit, causing truncated responses that miss important context from the original message.

Ideas for what to build next

  • β†’
    Add Response Approval Workflow β€” Create a second scenario that waits for emoji reactions on AI responses before forwarding them to your actual email client like Gmail or Outlook.
  • β†’
    Build Client-Specific Tone Templates β€” Use Make's router module to detect client names or channel patterns and apply different response templates (formal, casual, technical) based on the recipient.
  • β†’
    Create Response Performance Tracking β€” Log all generated responses to Google Sheets with timestamps and user feedback to analyze which types of emails need the most human editing.

Related guides

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