

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-timeUse case type
notificationReal-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.
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 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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Original Email Text | ||
| Channel ID | ||
| System Prompt | ||
| Model Selection | ||
3 optional fields▸ show
| Thread Timestamp | |
| Max Tokens | |
| Temperature |
Step-by-Step Setup
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.
- 1Click 'My flows' in the left navigation
- 2Click the 'New flow' button
- 3Select 'Instant cloud flow' from the options
- 4Name the flow 'Email Response Drafter'
- 5Choose 'For a selected message' trigger
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.
- 1Click the trigger block to expand options
- 2Search for 'Slack' in the connector search bar
- 3Select 'Get message' from Slack actions
- 4Click 'Sign in' to authenticate your workspace
- 5Grant message and channel read permissions
usage.prompt_tokens: {{usage.prompt_tokens}}
usage.completion_tokens: {{usage.completion_tokens}}
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.
- 1Click 'New step' below the Slack trigger
- 2Search for 'Compose' in the action list
- 3Select 'Compose' from Data Operations
- 4Click in the Inputs field
- 5Select 'Text' from Slack dynamic content
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.
- 1Click 'New step' after the Compose action
- 2Search for 'HTTP' in the connector list
- 3Select 'HTTP' from Premium connectors
- 4Set Method to 'POST'
- 5Enter URI: https://api.openai.com/v1/chat/completions
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.
- 1Click 'Add new parameter' and select 'Headers'
- 2Add header: Content-Type = application/json
- 3Add header: Authorization = Bearer sk-your-api-key-here
- 4Click in the Body field
- 5Switch to code view and paste the JSON structure
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.
- 1Click in the Body field of the HTTP action
- 2Select 'Expression' tab in dynamic content
- 3Build JSON with system and user message roles
- 4Reference the Compose output for email content
- 5Set model to 'gpt-3.5-turbo' for cost efficiency
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.
- 1Click 'New step' after the HTTP action
- 2Search for 'Parse JSON'
- 3Select 'Parse JSON' from Data Operations
- 4Set Content to HTTP response 'body'
- 5Click 'Generate from sample' for schema
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.
- 1Click 'New step' after Parse JSON
- 2Search for 'Slack' and select 'Post message'
- 3Set Channel to the original message channel
- 4Format the message with original email and response
- 5Add thread_ts to reply to the original message
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.
- 1Click 'Save' in the top right of the flow designer
- 2Go to your Slack workspace
- 3Paste a test email in a channel
- 4Right-click the message and select your flow
- 5Wait for the AI response to appear
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
}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 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.
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.
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 templates — Create different system prompts for various email types like support requests, sales inquiries, or meeting scheduling.
- →Include email sentiment analysis — Add another OpenAI call to analyze email tone and adjust response formality accordingly.
- →Create approval workflow — Route sensitive or high-value client responses through a manager approval step before posting to Slack.
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