Intermediate~15 min setupAI & CommunicationVerified April 2026
OpenAI logo
Slack logo

How to Draft email responses with Power Automate

Automatically generate professional email responses using OpenAI when client emails are pasted into Slack channels.

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

Best for

Microsoft 365 teams that need AI-powered email drafts without switching between multiple tools

Not ideal for

Teams wanting complex conversation threading or multi-language response templates

Sync type

real-time

Use case type

notification

Real-World Example

💡

A 12-person consulting firm uses this to draft client responses whenever account managers paste emails into their #client-emails Slack channel. The OpenAI integration analyzes the original email and generates a professional response within 30 seconds. Before automation, drafting responses took 15-20 minutes per email and often sat in drafts for hours.

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 Power Automate

Copy the pre-built Power Automate blueprint and paste it straight into Power Automate. 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 at least $5 credit balance for testing
Slack workspace admin permissions to install Power Automate integration
Power Automate premium license for HTTP connector access
Slack channels where team members will paste client emails

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Original Email Text
Channel ID
System Prompt
Model Selection
3 optional fields▸ show
Thread Timestamp
Max Tokens
Temperature

Step-by-Step Setup

1

My flows > New flow > Instant cloud flow

Create new instant cloud flow

Log into make.powerautomate.com and click My flows in the left sidebar. Click New flow and select Instant cloud flow. Name it 'Email Response Drafter' and choose 'For a selected message' as the trigger. This creates a Slack bot command that team members can trigger on any message.

  1. 1Click 'My flows' in the left navigation
  2. 2Click the 'New flow' button
  3. 3Select 'Instant cloud flow' from the options
  4. 4Name the flow 'Email Response Drafter'
  5. 5Choose 'For a selected message' trigger
What you should see: You should see the flow designer with a purple 'For a selected message' trigger block at the top.
Common mistake — Don't select 'When a message is posted' — you want manual triggering, not every message.
2

Trigger > Search connectors > Slack

Add Slack message trigger

Click the trigger block and search for 'Slack' in the connector list. Select 'Get message' action and authenticate your Slack workspace. You'll need to grant permissions to read messages and channels. The trigger will capture the message content when someone right-clicks and selects your flow.

  1. 1Click the trigger block to expand options
  2. 2Search for 'Slack' in the connector search bar
  3. 3Select 'Get message' from Slack actions
  4. 4Click 'Sign in' to authenticate your workspace
  5. 5Grant message and channel read permissions
What you should see: The trigger shows 'Slack - Get message' with green checkmark and your workspace name.
Common mistake — If authentication fails, your Slack admin may need to approve the Power Automate app first.
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
3

New step > Compose > Data Operations

Parse message content

Add a 'Compose' action to extract the email content from the Slack message. Click New step and search for 'Compose'. In the Inputs field, select 'Text' from the Slack trigger dynamic content. This captures whatever email text was pasted into Slack for processing.

  1. 1Click 'New step' below the Slack trigger
  2. 2Search for 'Compose' in the action list
  3. 3Select 'Compose' from Data Operations
  4. 4Click in the Inputs field
  5. 5Select 'Text' from Slack dynamic content
What you should see: The Compose action shows 'Text' as a blue dynamic content pill in the Inputs field.
Common mistake — Map fields using the variable picker — don't type field names manually. Hand-typed variable names often have invisible spacing errors that produce blank output.
4

New step > HTTP > Premium

Add OpenAI connection

Click New step and search for 'HTTP' since Power Automate doesn't have a native OpenAI connector. Select the HTTP action and set the method to POST. You'll configure this to call OpenAI's chat completions endpoint directly using your API key.

  1. 1Click 'New step' after the Compose action
  2. 2Search for 'HTTP' in the connector list
  3. 3Select 'HTTP' from Premium connectors
  4. 4Set Method to 'POST'
  5. 5Enter URI: https://api.openai.com/v1/chat/completions
What you should see: HTTP action shows POST method with the OpenAI API endpoint in the URI field.
Common mistake — You need a Power Automate premium license to use the HTTP connector.
5

HTTP action > Headers > Body

Configure OpenAI API call

In the HTTP action, add headers for Content-Type and Authorization. Set Content-Type to 'application/json' and Authorization to 'Bearer YOUR_API_KEY'. Replace YOUR_API_KEY with your actual OpenAI API key. In the Body field, you'll structure the JSON request with the system prompt and user message.

  1. 1Click 'Add new parameter' and select 'Headers'
  2. 2Add header: Content-Type = application/json
  3. 3Add header: Authorization = Bearer sk-your-api-key-here
  4. 4Click in the Body field
  5. 5Switch to code view and paste the JSON structure
What you should see: Headers section shows both Content-Type and Authorization entries, Body field contains JSON.
Common mistake — Store your OpenAI API key in Azure Key Vault instead of hardcoding it for production use.
6

HTTP action > Body

Structure the AI prompt

In the Body field, create a JSON structure that tells OpenAI to draft a professional email response. Include a system message defining the assistant's role and a user message containing the original email from Slack. The system prompt should specify tone, length, and response format requirements.

  1. 1Click in the Body field of the HTTP action
  2. 2Select 'Expression' tab in dynamic content
  3. 3Build JSON with system and user message roles
  4. 4Reference the Compose output for email content
  5. 5Set model to 'gpt-3.5-turbo' for cost efficiency
What you should see: Body contains properly formatted JSON with system prompt and dynamic email content reference.
7

New step > Parse JSON > Data Operations

Parse OpenAI response

Add a 'Parse JSON' action to extract the response text from OpenAI's API response. Click New step and search for 'Parse JSON'. In the Content field, select 'body' from the HTTP action dynamic content. You'll need to provide a sample JSON schema that matches OpenAI's response format.

  1. 1Click 'New step' after the HTTP action
  2. 2Search for 'Parse JSON'
  3. 3Select 'Parse JSON' from Data Operations
  4. 4Set Content to HTTP response 'body'
  5. 5Click 'Generate from sample' for schema
What you should see: Parse JSON shows the HTTP body as input and generates schema fields automatically.
Common mistake — If schema generation fails, manually paste a sample OpenAI API response JSON structure.
8

New step > Slack > Post message

Post response to Slack

Add another Slack action to post the drafted response back to the same channel. Search for Slack connectors and select 'Post message'. Set the channel to the original message's channel using dynamic content. Include both the original email and the AI-generated response for easy copying.

  1. 1Click 'New step' after Parse JSON
  2. 2Search for 'Slack' and select 'Post message'
  3. 3Set Channel to the original message channel
  4. 4Format the message with original email and response
  5. 5Add thread_ts to reply to the original message
What you should see: Slack post message action shows channel and formatted message content with dynamic values.
9

Flow designer > Save > Test

Test the workflow

Save the flow and test it by going to your Slack channel and pasting a sample client email. Right-click the message and look for your flow name in the context menu. Select it to trigger the automation. The response should appear as a threaded reply within 10-15 seconds.

  1. 1Click 'Save' in the top right of the flow designer
  2. 2Go to your Slack workspace
  3. 3Paste a test email in a channel
  4. 4Right-click the message and select your flow
  5. 5Wait for the AI response to appear
What you should see: Your flow appears in the Slack message context menu and generates a threaded response.
Common mistake — The flow won't appear in Slack's context menu until you save and enable it in Power Automate.

Add this JSON structure to the HTTP Body field to create more contextual responses that reference the sender's name and specific details from the original email.

Copy this template{
▸ Show code
{
  "model": "gpt-3.5-turbo",
  "messages": [

... expand to see full code

{
  "model": "gpt-3.5-turbo",
  "messages": [
    {
      "role": "system",
      "content": "You are a professional assistant drafting email responses. Be polite, concise, and reference specific details from the original message. Keep responses under 150 words."
    },
    {
      "role": "user",
      "content": concat('Please draft a professional response to this email: ', outputs('Compose'))
    }
  ],
  "max_tokens": 200,
  "temperature": 0.7
}
Power Automate
▶ Test flow
executed
OpenAI
Slack
Slack
🔔 notification
received

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 n8n for this workflow

Use Microsoft Power Automate for this if your team already lives in the Microsoft ecosystem and needs tight integration with Office 365. The instant cloud flow trigger creates native Slack context menu integration that feels built-in rather than bolted-on. Power Automate also handles authentication seamlessly across Microsoft services. Skip this platform if you need complex conversation threading — Make handles multi-step AI workflows better.

Cost

The math works out to roughly $0.002 per response using gpt-3.5-turbo, plus $15/month for Power Automate premium licensing per user. At 200 email responses monthly, you're looking at $15.40 total. Zapier costs $19.99/month for similar volume but includes the HTTP requests. Make is cheaper at $9/month but requires separate OpenAI billing.

Tradeoffs

Zapier's OpenAI integration saves you from manual HTTP setup and JSON parsing — their native connector handles authentication and response formatting automatically. Make offers superior error handling with multiple retry attempts and better debugging tools when API calls fail. n8n gives you complete control over the AI prompt engineering with built-in code nodes. Pipedream provides better logging and monitoring for production deployments. Power Automate wins on Microsoft ecosystem integration and the instant trigger experience in Slack.

You'll hit OpenAI's rate limits faster than expected during busy periods — their free tier allows only 3 requests per minute. The HTTP connector doesn't automatically retry failed calls, so temporary API outages will break your flow until manual restart. Power Automate's JSON parsing gets finicky with OpenAI's occasional format variations, especially when the API returns error messages instead of completions.

Ideas for what to build next

  • Add response templatesCreate different system prompts for various email types like support requests, sales inquiries, or meeting scheduling.
  • Include email sentiment analysisAdd another OpenAI call to analyze email tone and adjust response formality accordingly.
  • Create approval workflowRoute sensitive or high-value client responses through a manager approval step before posting to Slack.

Related guides

Was this guide helpful?
OpenAI + Slack overviewPower Automate profile →