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

How to Send Salesforce Lead Notifications to Slack with N8n

Automatically post new Salesforce leads to #sales-leads with source, company, title, and phone number for instant rep follow-up.

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 that want customizable lead notifications and plan to add lead scoring or routing logic later.

Not ideal for

Teams needing instant notifications under 1 minute or simple plug-and-play setup without technical customization.

Sync type

polling

Use case type

notification

Real-World Example

💡

A 25-person B2B software company uses this to alert #sales-leads whenever a new lead enters Salesforce from their website or trade shows. Before automation, reps checked Salesforce manually every hour and missed hot inbound leads during lunch breaks or meetings, losing follow-up speed to competitors. Now they get instant Slack pings with phone numbers ready to dial.

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 API connections and view all leads
Slack workspace admin rights to create bots and manage channel permissions
N8n cloud account or self-hosted instance with internet access
Dedicated #sales-leads Slack channel already created

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Company NameCompany
Full NameFirstName, LastName
Lead SourceLeadSource
Email AddressEmail
2 optional fields▸ show
Job TitleTitle
Phone NumberPhone

Step-by-Step Setup

1

Dashboard > New Workflow

Create New N8n Workflow

Start a fresh workflow from the N8n dashboard. This creates the canvas where you'll build the lead notification automation.

  1. 1Click 'New workflow' button on the N8n dashboard
  2. 2Name it 'Salesforce Lead to Slack Notifications'
  3. 3Click 'Save' to create the workflow
What you should see: You should see an empty workflow canvas with a plus button to add your first node.
2

Canvas > Add Node > Salesforce

Add Salesforce Trigger Node

Configure the Salesforce node to listen for new lead records. This polls Salesforce every 3 minutes by default for changes.

  1. 1Click the + button on the canvas
  2. 2Search for 'Salesforce' and select it
  3. 3Choose 'Get All' operation from the dropdown
  4. 4Set Resource to 'Lead'
  5. 5Select 'Return All' for the limit field
What you should see: The Salesforce node appears on canvas with a red connection indicator showing it needs authentication.
Common mistake — Don't use 'On Object' trigger - it requires expensive Salesforce Enterprise edition with API event streaming.
n8n
+
click +
search apps
Salesforce
SA
Salesforce
Add Salesforce Trigger Node
Salesforce
SA
module added
3

Salesforce Node > Credentials > New

Connect Salesforce Account

Authenticate with your Salesforce org using OAuth. N8n stores the refresh token securely for ongoing access.

  1. 1Click 'Create New Credential' in the Salesforce node
  2. 2Select 'OAuth2' authentication method
  3. 3Click 'Connect my account' button
  4. 4Log into Salesforce in the popup window
  5. 5Click 'Allow' to grant N8n access
What you should see: Green checkmark appears next to credentials and 'Test' button shows as available.
Common mistake — Use a dedicated integration user account, not your personal login - admins can disable personal accounts without warning.
n8n settings
Connection
Choose a connection…Add
click Add
Salesforce
Log in to authorize
Authorize n8n
popup window
Connected
green checkmark
4

Salesforce Node > Conditions

Filter for New Leads Only

Add date filtering to catch only leads created in the last 5 minutes. This prevents processing old records on each run.

  1. 1Scroll down to 'Conditions' section in the Salesforce node
  2. 2Click 'Add Condition'
  3. 3Set Field to 'CreatedDate'
  4. 4Set Operation to 'Greater Than'
  5. 5Set Value to '{{ $now.minus({minutes: 5}).toISO() }}'
What you should see: Condition appears in the node showing the dynamic date formula for 5 minutes ago.
Common mistake — Don't set the time window too narrow - Salesforce queries can have 1-2 minute delays, so 5 minutes is safer than 3.
Salesforce
SA
trigger
filter
Condition
= "New"
yes — passes through
no — skipped
Slack
SL
notified
5

Salesforce Node > Execute Node

Test Salesforce Connection

Execute the node to verify it can fetch lead data and see the field structure you'll map to Slack.

  1. 1Click 'Execute Node' button on the Salesforce node
  2. 2Wait for the execution to complete
  3. 3Review the output data in the right panel
  4. 4Note the field names like Company, LeadSource, Title, Phone
What you should see: Output panel shows lead records with all available fields, or empty array if no recent leads exist.
Common mistake — If you see zero results but expect leads, check your time zone - Salesforce stores dates in UTC but displays them in your local time.
n8n
▶ Run once
executed
Salesforce
Slack
Slack
🔔 notification
received
6

Canvas > Add Node > IF

Add IF Conditional Node

Insert a conditional check to only proceed when leads exist. This prevents empty Slack messages when no new leads are found.

  1. 1Click + button after the Salesforce node
  2. 2Search for 'IF' and select the IF node
  3. 3Set Condition to 'Number'
  4. 4Set Value 1 to '{{ $json.length }}'
  5. 5Set Operation to 'Larger'
  6. 6Set Value 2 to '0'
What you should see: IF node appears connected to Salesforce with True/False output branches visible.
Common mistake — Connect the Slack node to the 'True' output only - the 'False' branch should remain empty to avoid sending blank notifications.
7

IF Node True > Add Node > Item Lists

Add Item Lists Node

Split the lead array into individual items so each lead gets its own Slack message instead of one bulk message.

  1. 1Click + on the 'True' output of the IF node
  2. 2Search for 'Item Lists' and select it
  3. 3Choose 'Split Out Items' operation
  4. 4Leave 'Field Name' empty to process the root array
What you should see: Item Lists node connects to the True branch and shows it will process each array item separately.
8

Item Lists > Add Node > Slack

Add Slack Node

Configure Slack to post formatted lead notifications to your sales channel with all the key details reps need.

  1. 1Click + after the Item Lists node
  2. 2Search for 'Slack' and select it
  3. 3Choose 'Post Message' operation
  4. 4Set Channel to '#sales-leads'
  5. 5Leave other settings as default for now
What you should see: Slack node appears connected to Item Lists with a red indicator showing credentials needed.
Common mistake — Make sure the channel name includes the # symbol - N8n won't auto-add it and the message will fail without it.
9

Slack Node > Credentials > New

Connect Slack Account

Authenticate with Slack using a bot token that has permissions to post in your sales channels.

  1. 1Click 'Create New Credential' in the Slack node
  2. 2Select 'Access Token' method
  3. 3Go to api.slack.com/apps in a new tab
  4. 4Create a new app or select existing one
  5. 5Copy the 'Bot User OAuth Token' starting with xoxb-
  6. 6Paste the token into N8n's Access Token field
What you should see: Green checkmark appears next to Slack credentials indicating successful connection.
Common mistake — The bot needs 'chat:write' and 'channels:read' scopes - if missing, go back to Slack app settings and add them under OAuth & Permissions.
10

Slack Node > Text Field

Format Lead Message

Create a structured Slack message with lead source, company, title, and phone using Salesforce field mappings.

  1. 1Click in the 'Text' field of the Slack node
  2. 2Enter this template: 'New Lead Alert! \n*Company:* {{ $json.Company }} \n*Name:* {{ $json.FirstName }} {{ $json.LastName }} \n*Title:* {{ $json.Title }} \n*Source:* {{ $json.LeadSource }} \n*Phone:* {{ $json.Phone }}'
  3. 3Click 'Add Field' button
  4. 4Add 'Username' field and set it to 'Salesforce Bot'
What you should see: Message template shows in the text field with Salesforce field references that will populate dynamically.
Common mistake — Use \n for line breaks in Slack messages, not HTML <br> tags - Slack's formatting is markdown-style, not HTML.
11

Toolbar > Execute Workflow

Test Complete Workflow

Execute the entire workflow to verify lead data flows from Salesforce to Slack with proper formatting.

  1. 1Click 'Execute Workflow' button in the top toolbar
  2. 2Wait for all nodes to complete execution
  3. 3Check the Slack channel for the formatted message
  4. 4Verify all lead fields populated correctly
What you should see: Slack channel shows new lead notification with company, name, title, source, and phone number properly formatted.
Common mistake — If fields show as 'undefined', check the Salesforce output - some leads may have empty Title or Phone fields that need null handling.
12

Workflow Header > Active Toggle

Activate Workflow

Enable automatic execution so the workflow runs every 3 minutes to check for new leads without manual intervention.

  1. 1Click the 'Inactive' toggle in the top right
  2. 2Confirm activation in the dialog box
  3. 3Set execution logging to 'Errors Only' to reduce log volume
  4. 4Save the workflow one final time
What you should see: Toggle shows 'Active' and workflow status indicator turns green showing it's running automatically.
Common mistake — Don't set logging to 'All Executions' in production - it fills up your execution history quickly and doesn't add value for simple notifications.

Drop this into an n8n Code node.

Copy this template{{ $json.Phone ? $json.Phone.replace(/[^\d]/g, '').replace(/(\d{3})(\d{3})(\d{4})/, '($1) $2-$3') : 'No phone' }}
▸ Show code
{{ $json.Phone ? $json.Phone.replace(/[^\d]/g, '').replace(/(\d{3})(\d{3})(\d{4})/, '($1) $2-$3') : 'No phone' }}

... expand to see full code

{{ $json.Phone ? $json.Phone.replace(/[^\d]/g, '').replace(/(\d{3})(\d{3})(\d{4})/, '($1) $2-$3') : 'No phone' }}

Scaling Beyond 50+ leads/day+ Records

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

1

Batch Process Leads

Set a limit of 20 leads per execution in the Salesforce node. This prevents API timeouts and keeps Slack messages manageable during lead spikes.

2

Increase Polling Interval

Change the trigger interval to 5 minutes instead of 3 to reduce API calls. Sales teams won't notice the extra 2-minute delay but you'll save 40% on executions.

3

Add Lead Scoring Filter

Use N8n's IF node to only notify on qualified leads with specific criteria like company size or lead score. This reduces noise in the sales channel during high-volume periods.

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 full control over the message format and need to add custom logic like lead scoring or routing rules later. N8n's code nodes let you manipulate the data however you want, and the self-hosted option keeps your lead data internal. Skip N8n if you need real-time notifications under 30 seconds - go with Zapier's webhooks instead since N8n polls every 3 minutes minimum.

Cost

This workflow uses 1 execution per run, checking every 3 minutes. At 100 new leads/month, that's 14,400 executions monthly (480 per day). That fits N8n's Starter plan at $20/month with executions to spare. Make would cost $9/month for the same volume, and Zapier would run $20/month on their Professional plan. Make wins on pure cost, but N8n gives you more flexibility for the same price as Zapier.

Tradeoffs

Make handles this workflow better with native Salesforce webhooks that trigger instantly instead of polling every 3 minutes - their Salesforce integration is more mature. Zapier beats both with the easiest setup and better error handling out of the box. But N8n shines when you need custom JavaScript in the workflow, like calculating lead scores or formatting phone numbers. The code nodes and self-hosting option make it worth the extra complexity if you plan to extend beyond basic notifications.

You'll hit Salesforce's API limits faster than expected if you have multiple workflows polling leads - each query counts against your daily allocation. N8n's polling can drift from exactly 3 minutes to 4-5 minutes under load, so don't rely on precise timing. Lead records sometimes have null values for Title and Phone that break message formatting, requiring null checks in your Slack template. The biggest gotcha: Salesforce stores CreatedDate in UTC but your sales team thinks in local time, leading to confusion about when leads actually arrived.

Ideas for what to build next

  • Add Lead Assignment NotificationsCreate a second workflow that notifies individual reps when leads are assigned to them in Salesforce, including their personal Slack DM.
  • Build Lead Conversion TrackingSet up a follow-up notification when leads convert to opportunities, posting to #sales-wins with deal value and expected close date.
  • Create Lead Response SLA AlertsAdd a delayed workflow that checks if leads were contacted within 2 hours and pings sales managers about overdue follow-ups.

Related guides

Was this guide helpful?
Salesforce + Slack overviewn8n profile →