If you’re sick of missing out on new CRM deals because you’re buried in email hell—or just want your team to actually know when something lands in the pipeline—this guide’s for you. We’ll walk through wiring up automated Slack alerts for new CRM opportunities using N8n, the open-source workflow tool. No “digital transformation” fluff here—just a practical way to get everyone on the same page, without endless copy-pasting or yet another browser tab.
Let’s get into it.
What You’ll Need
Before we dive in, here’s what you’ll need to follow along:
- N8n installed somewhere (cloud or self-hosted both work)
- Access to your CRM (e.g., HubSpot, Salesforce, Pipedrive—most popular options are supported)
- A Slack workspace, plus permissions to set up incoming webhooks or install Slack apps
- Some basic comfort with web apps and APIs, but you don’t need to be a coder
If you’re missing any of these, take a minute to set them up. Everything else is pretty straightforward.
Why Use N8n vs. Other Tools?
Quick detour: why bother with N8n instead of something like Zapier, Make, or native CRM notifications?
- Price: N8n is open-source and can be run for free, especially if you self-host.
- Flexibility: You’re not boxed in by “premium” features. Want to customize your workflow? You can.
- Data Privacy: Keeping things in-house is sometimes a big deal, depending on your business.
That said, Zapier or native integrations are fine if you just want something quick and dirty and don’t care about cost or flexibility. N8n is for when you want control and don’t feel like paying for every little tweak.
Step 1: Set Up N8n
If you already have N8n running, skip ahead. If not:
- Install N8n
- Easiest way: Use the cloud version (it’s paid, but there’s a free trial).
- For self-hosting, check the official docs.
-
Docker users:
bash docker run -it --rm \ -p 5678:5678 \ -v ~/.n8n:/home/node/.n8n \ n8nio/n8n -
First-time setup honestly takes 10–20 minutes tops.
-
Create an Account & Log In
You’ll need an account for N8n Cloud, or just access your local instance. -
Familiarize Yourself with the UI
The visual editor is drag-and-drop. Nodes are the building blocks. You’ll get the hang of it by step 2.
Pro tip: If you’re running N8n in production, set up regular backups and secure it behind authentication—out of the box, it’s pretty open.
Step 2: Connect Your CRM
Now, we need N8n to know when a new opportunity is created in your CRM. The exact steps depend on what you use, but here’s the basic approach.
Option A: Native N8n CRM Node
- N8n supports most big CRMs (HubSpot, Salesforce, Pipedrive, Zoho, etc.).
- In your workflow, add a new node. Search for your CRM.
- Choose a “Trigger” node if it exists (e.g., “HubSpot Trigger”). If not, use a polling node (e.g., “HubSpot: Get All Deals” on a schedule).
Example: HubSpot
- Drag in the HubSpot Trigger node.
- Authenticate with your HubSpot account (OAuth pop-up or API key).
- Set it to watch for “New Deal Created” events.
- Save credentials in N8n.
Example: Salesforce
- Use the Salesforce Trigger node, or if not available, set up a scheduled “Get New Opportunities” node.
- Authenticate with your Salesforce account.
Option B: Webhook from CRM
Some CRMs can send a webhook when a new deal/opportunity gets created.
- In N8n, add a Webhook node.
- Copy the generated webhook URL.
- In your CRM, set up a webhook to POST to that URL on new opportunity creation.
Reality check:
- Webhooks are the cleanest solution, but many CRMs put them behind expensive plans.
- If you’re forced to poll (“every 5 minutes, check for new deals”), it works, but there’s a slight delay.
Don’t get hung up on perfection. Both polling and webhooks work fine for 99% of teams.
Step 3: Set Up Your Slack Integration
N8n can send messages to Slack in a few ways. Here’s what actually works:
The Easy Way: Slack Node with OAuth
- In your N8n workflow, add a Slack node.
- Authenticate with your Slack account (you might need to create a Slack app if you haven’t already).
- Select “Send Message” action.
- Pick the channel where you want alerts to go (e.g.,
#sales-alerts
).
If you hit permissions issues, double-check that your Slack app/bot has the chat:write
scope and is added to the channel.
The Old Way: Incoming Webhooks
Still valid, but a bit clunkier.
- In Slack, set up an Incoming Webhook (from Slack’s app directory).
- Copy the webhook URL.
- In N8n, use the HTTP Request node to POST your message to that URL.
Heads-up:
Slack’s API limits are generous, but don’t go nuts with message volume or you’ll annoy everyone.
Step 4: Build the Workflow
Here’s the meat and potatoes. You’ll connect your CRM trigger to your Slack node.
Basic Workflow Structure
- Trigger (CRM or Webhook)
- (Optional) Filter node: Only send alerts for certain types of opportunities? Add a filter here.
- Slack node: Format and send the alert message.
Walkthrough Example (HubSpot + Slack):
- HubSpot Trigger: Watches for “New Deal” events.
- IF Node: Checks if the deal value is above a certain threshold (optional).
- Slack Node: Sends a message to your chosen channel.
Formatting the Slack Message
- Use variables from the CRM data, e.g.:
- Deal name
- Amount
- Owner rep
- Link to the opportunity
Example:
New opportunity created! Deal: {{ $json["dealname"] }} Value: ${{ $json["amount"] }} Owner: {{ $json["owner"] }} <{{ $json["dealUrl"] }}|View in CRM>
N8n uses mustache-style templating for variables—just click the little “gear” to toggle expressions.
Step 5: Test Everything
Seriously, don’t skip this. Run a test by creating a fake opportunity in your CRM. Check that:
- The N8n trigger fires
- The Slack message arrives, and looks right
- No weird duplicates or missing data
If you’re polling, keep in mind there’s a delay. If using webhooks, it should be near-instant.
Troubleshooting tips:
- If nothing’s showing up in Slack, check N8n logs and Slack’s app logs for errors.
- Double-check authentication. OAuth tokens can expire.
- If you’re seeing duplicate alerts, add a deduplication step. (E.g., store the last deal ID processed.)
Step 6 (Optional): Make It Smarter
Once the basics work, you can get fancier:
- Filter by deal size: Only ping for big opportunities.
- Tag specific users: Use
<@userID>
to alert a rep directly. - Daily summaries: Instead of one alert per deal, batch them into a daily digest.
- Add buttons/links: Use Slack’s message formatting to add a “View Deal” button.
But honestly? Don’t overcomplicate it at first. Start simple. Tweak as you go.
What to Ignore (For Now)
- Full-blown CRM-to-Slack sync: You don’t need every field or status update. Start with new opportunities.
- Over-the-top formatting: Plain text works. Fancy blocks and emoji can come later.
- Automating follow-up tasks: Get alerts working before you build complex automations.
Summary: Keep It Simple, Iterate Later
You’ve now got a basic workflow that tells your team when new opportunities land—without manual effort or expensive SaaS bloat. N8n is powerful, but don’t get lost in the weeds. Set up your alert, make sure it’s reliable, and only add complexity when your team actually needs it.
Automations like this are supposed to save time. If you’re spending hours perfecting formatting or edge cases, step back. Ship it, see what works, and improve only if you need to.
Happy automating.