Beginner~8 min setupCRM & CommunicationVerified April 2026
Salesforce logo
Slack logo

How to Send Salesforce Opportunity Stage Changes to Slack with Zapier

Automatically send a Slack DM to the deal owner when a Salesforce opportunity moves to a new stage, including deal name, value, probability, and close date.

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

Slack for Salesforce exists as a native integration, but it limited to record notifications without custom logic. This guide uses an automation platform for full control. View native option →

Best for

Sales teams wanting instant Slack notifications when Salesforce opportunities change stages without any coding required.

Not ideal for

High-volume sales orgs with 500+ monthly stage changes where per-task pricing becomes expensive compared to unlimited plans.

Sync type

polling

Use case type

notification

Real-World Example

💡

A 25-person B2B SaaS sales team uses this to notify deal owners instantly when opportunities move to 'Negotiation' or 'Closed Won' stages. Before automation, reps checked Salesforce manually every few hours and often missed urgent stage changes that needed immediate follow-up. Now they respond to hot deals within minutes instead of 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

Before You Start

Make sure you have everything ready.

Admin access to Salesforce with API permissions enabled
Member of the target Slack workspace with permission to install apps
Salesforce opportunity owners must have email addresses matching their Slack user emails
Zapier account with sufficient task quota for your expected opportunity volume

Optional

Active opportunities in Salesforce with recent stage change activity for testing

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Opportunity NameName
Stage NameStageName
AmountAmount
ProbabilityProbability
Close DateCloseDate
Owner EmailOwner.Email

Step-by-Step Setup

1

Dashboard > Create Zap

Create New Zap

Start building your automation by creating a new Zap in Zapier. This will be the container for your Salesforce-to-Slack workflow.

  1. 1Click the orange 'Create Zap' button from your dashboard
  2. 2You'll be taken to the Zap editor with Step 1 already selected
What you should see: You should see the Zap editor with 'Choose App & Event' displayed for Step 1.
2

Zap Editor > Step 1 > Choose App & Event

Set Up Salesforce Trigger

Configure Salesforce as your trigger app. You'll use the Updated Record trigger to catch when opportunities change stages.

  1. 1Type 'Salesforce' in the app search box
  2. 2Select 'Salesforce' from the dropdown results
  3. 3Choose 'Updated Record' as the trigger event
  4. 4Click 'Continue'
What you should see: The trigger setup shows 'Salesforce' selected with 'Updated Record' as the event type.
Common mistake — Don't pick 'New Record' — that only fires on opportunity creation, not stage changes.
Zapier
+
click +
search apps
Salesforce
SA
Salesforce
Set Up Salesforce Trigger
Salesforce
SA
module added
3

Zap Editor > Step 1 > Choose Account

Connect Salesforce Account

Link your Salesforce org to Zapier so it can monitor opportunity changes. You'll need admin permissions or API access.

  1. 1Click 'Sign in to Salesforce'
  2. 2Enter your Salesforce username and password
  3. 3Click 'Allow' when prompted for API access
  4. 4Click 'Continue' once connected
What you should see: You should see your Salesforce org name with a green 'Connected' status.
Common mistake — If using a sandbox, make sure you're logging into the correct Salesforce environment — production vs sandbox URLs are different.
Zapier settings
Connection
Choose a connection…Add
click Add
Salesforce
Log in to authorize
Authorize Zapier
popup window
Connected
green checkmark
4

Zap Editor > Step 1 > Set up trigger

Configure Object and Fields

Tell Zapier to monitor the Opportunity object and specify which field changes should trigger the Zap.

  1. 1Select 'Opportunity' from the Object dropdown
  2. 2In the 'Updated Fields' section, choose 'StageName'
  3. 3Leave other fields blank to monitor all stage changes
  4. 4Click 'Continue'
What you should see: The configuration shows Object: Opportunity and Updated Fields: StageName selected.
Common mistake — Adding too many fields in 'Updated Fields' will trigger on any field change — stick to just StageName for stage-specific alerts.
Salesforce fields
FirstName
LastName
Email
Company
LeadStatus
available as variables:
1.sobject.FirstName
1.sobject.LastName
1.sobject.Email
1.sobject.Company
1.sobject.LeadStatus
5

Zap Editor > Step 1 > Test

Test Salesforce Trigger

Zapier will pull a recent opportunity update to use as sample data for building your Slack message.

  1. 1Click 'Test trigger'
  2. 2Wait for Zapier to find recent opportunity updates
  3. 3Review the sample data to confirm it includes StageName, Amount, Probability, and CloseDate
  4. 4Click 'Continue with selected record'
What you should see: You should see opportunity data like Name: 'Acme Corp Deal', StageName: 'Negotiation', Amount: 50000.
Common mistake — If no test data appears, update an opportunity stage in Salesforce first — Zapier needs recent activity to pull sample records.
Zapier
▶ Turn on & test
executed
Salesforce
Slack
Slack
🔔 notification
received
6

Zap Editor > + > Step 2

Add Slack Action Step

Add Slack as your action app to send the DM notification to the deal owner.

  1. 1Click the '+' button to add Step 2
  2. 2Type 'Slack' in the app search box
  3. 3Select 'Slack' from the results
  4. 4Choose 'Send Direct Message' as the action event
  5. 5Click 'Continue'
What you should see: Step 2 now shows 'Slack' with 'Send Direct Message' selected as the action.
Common mistake — Don't choose 'Send Channel Message' — you want DMs to individual deal owners, not public channel posts.
7

Zap Editor > Step 2 > Choose Account

Connect Slack Account

Authorize Zapier to send messages through your Slack workspace on behalf of your connected user.

  1. 1Click 'Sign in to Slack'
  2. 2Select your workspace from the dropdown
  3. 3Click 'Allow' to grant Zapier permissions
  4. 4Verify the correct workspace appears as connected
What you should see: Your Slack workspace name appears with a green 'Connected' badge.
Common mistake — Make sure you're connecting to the right workspace — if you're in multiple Slack workspaces, double-check the URL.
8

Zap Editor > Step 2 > Set up action

Configure Message Recipient

Set up the message to go to the opportunity owner by mapping the Salesforce Owner field to Slack's To field.

  1. 1In the 'To' field, click the data picker icon
  2. 2Select 'Owner Email' from the Salesforce trigger data
  3. 3If Owner Email isn't available, use 'Owner: Name' instead
What you should see: The To field shows 'Owner Email' or 'Owner: Name' with a purple Salesforce data tag.
Common mistake — Slack matches users by email address — if your Salesforce owner emails don't match Slack user emails exactly, the DM will fail.
Message template
🔔 New Lead: {{1.FirstName}} {{1.LastName}}
Email: {{1.Email}}
Company: {{1.Company}}
Status: {{1.LeadStatus}}
9

Zap Editor > Step 2 > Message field

Build the Message Content

Create a formatted message with all the deal details requested: name, value, probability, and close date.

  1. 1Click in the 'Message' text box
  2. 2Type: 'Deal Update: ' then insert 'Name' from trigger data
  3. 3Add a new line and insert: 'Stage: StageName'
  4. 4Add: 'Value: $Amount | Probability: Probability% | Close Date: CloseDate'
  5. 5Preview the message format with sample data
What you should see: The message preview shows: 'Deal Update: Acme Corp Deal\nStage: Negotiation\nValue: $50000 | Probability: 75% | Close Date: 2024-03-15'
Common mistake — Salesforce date fields come in ISO format (2024-03-15) — add a Formatter step if you need MM/DD/YYYY format instead.
Message template
🔔 New Lead: {{1.FirstName}} {{1.LastName}}
Email: {{1.Email}}
Company: {{1.Company}}
Status: {{1.LeadStatus}}
10

Zap Editor > Step 2 > Test

Test Slack Action

Send a test message to verify the formatting and recipient mapping work correctly.

  1. 1Click 'Test step' to send the sample message
  2. 2Check the target Slack user's DMs for the test message
  3. 3Verify all fields populated correctly and formatting looks clean
  4. 4Return to Zapier and click 'Continue'
What you should see: You should see 'Test successful!' and the deal owner should receive a properly formatted DM in Slack.
Common mistake — The test uses sample data — the message might go to a user from an old opportunity, not necessarily you.
11

Zap Editor > Zap Settings

Name and Turn On Zap

Give your automation a descriptive name and activate it to start monitoring live opportunity stage changes.

  1. 1Click the pencil icon next to 'Untitled Zap'
  2. 2Type 'SF Opp Stage Changes → Slack DM'
  3. 3Click the toggle switch to turn the Zap ON
  4. 4Click 'Publish Zap' to confirm
What you should see: Your Zap shows as 'ON' with a green status indicator and the custom name you created.
Common mistake — Once published, the Zap starts consuming your task quota immediately — make sure your pricing plan can handle the expected volume.

Drop this into a Zapier Code step.

JavaScript — Code Step{{amount__currency}} for auto-formatted currency in Slack messages, or use Zapier's Formatter with this formula: CONCATENATE("$", TEXT(amount, "#,##0"))
▸ Show code
{{amount__currency}} for auto-formatted currency in Slack messages, or use Zapier's Formatter with this formula: CONCATENATE("$", TEXT(amount, "#,##0"))

... expand to see full code

{{amount__currency}} for auto-formatted currency in Slack messages, or use Zapier's Formatter with this formula: CONCATENATE("$", TEXT(amount, "#,##0"))

Scaling Beyond 300+ stage changes/month+ Records

If your volume exceeds 300+ stage changes/month records, apply these adjustments.

1

Switch to Make for unlimited operations

At 300+ monthly stage changes, Make's $9 unlimited plan saves $35+ monthly compared to Zapier's Starter plan. The migration takes 30 minutes.

2

Add stage filters to reduce noise

Use Zapier's Filter step to only trigger on important stages like 'Proposal', 'Negotiation', or 'Closed Won'. Early-stage movements generate notification fatigue.

3

Batch notifications for busy reps

Consider switching to a daily digest format using Zapier's Digest feature if individual reps own 50+ active opportunities that change stages frequently.

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

Use Zapier for this if your team doesn't code and you need something running in 20 minutes. The guided builder makes trigger setup foolproof, and Slack's DM targeting works better here than Make's chat integrations. Pick Make instead if you're sending 1000+ stage changes per month — its unlimited plan at $9/month beats Zapier's per-task pricing.

Cost

This workflow burns 1 task per stage change. At 200 stage changes monthly, that's 200 tasks fitting Zapier's Starter plan at $20/month. Make handles unlimited operations for $9/month, saving $11 monthly. N8n's self-hosted version costs nothing but requires server management. For most sales teams under 500 monthly stage changes, Zapier's reliability justifies the extra cost.

Tradeoffs

Make's Salesforce trigger updates faster — 2 minutes vs Zapier's 5-15 minute polling delay. N8n gives you custom JavaScript for advanced message formatting that Zapier's Formatter can't handle. But Zapier's error handling beats both platforms for this use case — failed Slack DMs automatically retry 3 times with escalating delays, while Make and N8n require manual retry configuration.

Salesforce's API has quirks you'll discover after setup. The Updated Record trigger fires on ANY field change if you don't specify Updated Fields correctly — you'll flood Slack with notifications from address updates and note additions. Probability percentages come as decimals (0.75 not 75%), so format them properly. Owner matching fails silently when Salesforce emails don't match Slack user emails exactly — test with your actual team's data, not sample records.

Ideas for what to build next

  • Add deal closure notificationsCreate a second Zap that sends a team-wide Slack celebration when opportunities reach 'Closed Won' status with confetti emoji and deal details.
  • Build a stage change logConnect the same trigger to Google Sheets to create an audit trail of all opportunity stage changes with timestamps for pipeline analysis.
  • Create manager escalation alertsAdd a Filter and second Slack action to notify sales managers when high-value deals (over $50k) move to negotiation stages.

Related guides

Was this guide helpful?
Salesforce + Slack overviewZapier profile →