Intermediate~20 min setupCRM & CommunicationVerified April 2026
Salesforce logo
Slack logo

How to Send Closed-Won Deal Alerts to Slack with N8n

Automatically post deal celebrations to Slack when Salesforce opportunities close with deal value, rep name, and account details.

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

Teams with technical resources who want instant notifications and custom message formatting for closed deals.

Not ideal for

Non-technical teams who need quick setup without learning expression syntax or JSON field mapping.

Sync type

real-time

Use case type

notification

Real-World Example

💡

A 25-person B2B software company uses this to celebrate every closed deal in their #sales-wins channel within seconds of stage changes. Before automation, their sales manager manually checked Salesforce reports twice daily and posted celebrations hours later. Now reps get instant recognition, and the team sees deal momentum in real-time during busy quarters.

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 n8n

Copy the pre-built n8n blueprint and paste it straight into n8n. 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.

Salesforce admin access to create connected apps and webhooks
Slack workspace admin rights to create bot tokens
N8n instance running (cloud or self-hosted)
Dedicated #wins or celebration channel in Slack

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Deal NameName
Deal AmountAmount
Sales RepOwner.Name
Account NameAccount.Name
Sales StageStageName
1 optional field▸ show
Close DateCloseDate

Step-by-Step Setup

1

Workflows > New Workflow

Create new workflow

Start with a blank N8n workflow. You'll build a two-node automation that triggers on Salesforce deal updates and posts formatted messages to Slack.

  1. 1Click 'New Workflow' from your N8n dashboard
  2. 2Delete the default manual trigger node
  3. 3Click the '+' button to add your first node
What you should see: Empty canvas with a single '+' button ready for node selection.
2

Add Node > Salesforce > Trigger

Add Salesforce trigger node

Configure the Salesforce node to monitor opportunity changes. This webhook-based trigger fires instantly when deals update in Salesforce.

  1. 1Search for 'Salesforce' and select it
  2. 2Choose 'Trigger' from the operation dropdown
  3. 3Select 'On Record Update' as the trigger type
  4. 4Set Object Type to 'Opportunity'
What you should see: Salesforce trigger node appears with red connection status indicator.
Common mistake — Don't pick 'On Record Create' — you need updates to catch stage changes to Closed Won.
n8n
+
click +
search apps
Salesforce
SA
Salesforce
Add Salesforce trigger node
Salesforce
SA
module added
3

Node Settings > Credentials > Create New

Connect Salesforce credentials

N8n needs OAuth access to your Salesforce org. This creates a webhook that Salesforce will ping when opportunities change.

  1. 1Click 'Create New' next to Credentials
  2. 2Enter your Salesforce username and password
  3. 3Add your security token after the password
  4. 4Test the connection and save
What you should see: Green checkmark next to credentials with 'Connection successful' message.
Common mistake — Your security token gets reset every password change — update N8n when that happens.
4

Salesforce Node > Conditions

Configure stage filter

Add a condition to only trigger on closed-won deals. Without this filter, every opportunity update floods your Slack channel.

  1. 1Scroll to 'Conditions' in the Salesforce node
  2. 2Click 'Add Condition'
  3. 3Set Field to 'StageName'
  4. 4Set Operator to 'Equal' and Value to 'Closed Won'
What you should see: Condition shows StageName = 'Closed Won' in the node configuration.
Common mistake — Match your exact stage name — 'Closed-Won' with a hyphen won't match 'Closed Won' with a space.
Salesforce
SA
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Slack
SL
notified
5

Salesforce Node > Test

Test Salesforce connection

Verify the trigger works by updating a test opportunity to Closed Won. This populates N8n with real field data for mapping.

  1. 1Click 'Listen for Test Event' in the node
  2. 2Switch to Salesforce and update an opportunity stage to 'Closed Won'
  3. 3Return to N8n and check for the received data
  4. 4Click 'Use This Event' to save the sample
What you should see: Node shows sample opportunity data with fields like Name, Amount, and Owner.Name visible.
n8n
▶ Run once
executed
Salesforce
Slack
Slack
🔔 notification
received
6

Add Node > Slack > Send Message

Add Slack node

Connect the Slack node to post messages. Configure it to send formatted celebration messages to your wins channel.

  1. 1Click the '+' after the Salesforce node
  2. 2Search for and select 'Slack'
  3. 3Choose 'Send Message' operation
  4. 4Set Channel to '#wins' or your celebration channel
What you should see: Slack node appears connected to Salesforce with message configuration options visible.
Common mistake — Use channel names with # prefix — 'wins' without the hash won't work.
7

Slack Node > Credentials > Create New

Connect Slack credentials

Add your Slack app credentials. You need a bot token with chat:write permissions to post messages.

  1. 1Click 'Create New' for Slack credentials
  2. 2Paste your Bot OAuth Token starting with 'xoxb-'
  3. 3Test the connection
  4. 4Save the credential
What you should see: Slack credential shows green status with your workspace name displayed.
Common mistake — User tokens (xoxp-) won't work reliably — create a proper Slack app with a bot token.
8

Slack Node > Message

Build celebration message

Create the Slack message template using Salesforce data. Include deal details that make celebrations meaningful for your team.

  1. 1Click in the Message field
  2. 2Type ':tada: New deal closed! :tada:'
  3. 3Add a new line and click 'Add Expression'
  4. 4Build: 'Deal: {{ $node["Salesforce"].json["Name"] }}'
What you should see: Message field shows emoji and expression syntax with Salesforce field reference.
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.
9

Slack Node > Message

Add deal value and rep info

Complete the message with financial details and rep recognition. Format the amount as currency for better readability.

  1. 1Add new line: 'Value: ${{ $node["Salesforce"].json["Amount"] }}'
  2. 2Add: 'Rep: {{ $node["Salesforce"].json["Owner"]["Name"] }}'
  3. 3Add: 'Account: {{ $node["Salesforce"].json["Account"]["Name"] }}'
What you should see: Complete message template showing deal name, value, rep, and account field mappings.
Common mistake — Owner.Name requires relationship field syntax with brackets — just 'Owner' returns the ID.
10

Workflow > Test

Test the complete workflow

Run an end-to-end test using your sample data. Verify the Slack message appears correctly formatted in your channel.

  1. 1Click 'Test workflow' button in the top toolbar
  2. 2Check your #wins Slack channel for the test message
  3. 3Verify all fields populated correctly
  4. 4Click 'Save' to store the workflow
What you should see: Slack message appears in #wins with deal name, formatted amount, rep name, and account.
Common mistake — Test messages still go to your real Slack channel — warn your team or use a test channel first.
11

Workflow > Activate

Activate the workflow

Turn on the automation to start monitoring live Salesforce changes. The workflow runs continuously once activated.

  1. 1Click the toggle switch in the top right
  2. 2Confirm activation in the popup
  3. 3Verify status shows 'Active' with green indicator
What you should see: Workflow status shows 'Active' and execution counter begins tracking triggers.
Common mistake — Active workflows consume executions even for filtered-out events — monitor your usage.

Drop this into an n8n Code node.

Copy this template{{ $node['Salesforce'].json['Amount'] ? '$' + parseFloat($node['Salesforce'].json['Amount']).toLocaleString() : 'Amount TBD' }}
▸ Show code
{{ $node['Salesforce'].json['Amount'] ? '$' + parseFloat($node['Salesforce'].json['Amount']).toLocaleString() : 'Amount TBD' }}

... expand to see full code

{{ $node['Salesforce'].json['Amount'] ? '$' + parseFloat($node['Salesforce'].json['Amount']).toLocaleString() : 'Amount TBD' }}

Scaling Beyond 100+ deals closed per month+ Records

If your volume exceeds 100+ deals closed per month records, apply these adjustments.

1

Batch Slack messages

Use N8n's merge node to collect multiple deals and post a single summary message every 5 minutes instead of individual celebrations. This prevents channel flooding during busy periods.

2

Add execution monitoring

Set up N8n's webhook node to ping your monitoring tool when executions exceed normal volume. Bulk Salesforce imports can trigger thousands of webhooks if not filtered properly.

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 N8n for this if you want complete control over message formatting and have technical team members who can handle JSON expressions. N8n's code nodes let you build complex conditional logic — like different celebration messages for different deal sizes or posting to team-specific channels based on opportunity owner. The webhook trigger fires instantly when deals close, unlike polling-based solutions. Skip N8n if you need this running tomorrow with zero technical setup — Zapier gets you live in 10 minutes.

Cost

This workflow consumes 1 execution per qualified opportunity update. At 50 deals closed monthly, that's 50 executions total. N8n's Starter plan at $20/month includes 5,000 executions, so you're using 1% of your quota. Zapier's Professional plan costs $49/month for the same volume with webhook triggers. Make charges $10.59/month for 1,000 operations. N8n wins on cost unless you're only closing 5-10 deals monthly — then Zapier's free tier works.

Tradeoffs

Zapier handles Salesforce relationship fields better out of the box — their UI shows Owner.Name as a dropdown option instead of requiring bracket syntax. Make's visual flow builder makes it easier for non-technical team members to modify message templates without touching code expressions. But N8n's JavaScript code nodes give you preprocessing power that neither competitor matches — calculate commission amounts, lookup additional Salesforce data, or route messages based on complex business rules.

Salesforce's webhook delivery isn't guaranteed during high API usage periods — you might miss celebrations during month-end bulk operations. The Amount field returns as a string, so currency formatting requires additional expressions like {{ parseFloat($node['Salesforce'].json['Amount']).toLocaleString() }}. Opportunity Owner relationships sometimes return null for converted or transferred deals, breaking your celebrations until you add null checks to every field reference.

Ideas for what to build next

  • Add commission calculationsUse N8n's code node to calculate rep commission based on deal amount and post both celebration and commission info to Slack.
  • Create monthly win summariesBuild a scheduled workflow that queries closed deals from the past month and posts a formatted summary to your leadership channel.
  • Sync celebrations to Google SheetsAdd a Google Sheets node to log every celebration with timestamp, deal details, and team metrics for monthly reporting.

Related guides

Was this guide helpful?
Salesforce + Slack overviewn8n profile →