

How to Send Pipedrive Deal Stage Alerts to Slack with Zapier
Automatically posts a Slack channel message whenever a deal moves to a new pipeline stage in Pipedrive, including deal name, value, owner, and stage name.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Sales teams of 5-30 who need real-time deal progress visibility without logging into Pipedrive.
Not ideal for
Teams that want digest-style daily summaries instead of per-event alerts — use a scheduled Zap with a search step instead.
Sync type
real-timeUse case type
notificationReal-World Example
A 12-person SaaS sales team uses this to post to #sales-wins whenever a deal moves to 'Contract Sent' or 'Closed Won' in Pipedrive. Before this, reps announced wins manually in Slack — or didn't at all — and managers had no idea where deals stood without pulling a Pipedrive report. Now every stage change fires a Slack message within 90 seconds, including deal value and owner name.
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
Before You Start
Make sure you have everything ready.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Deal Title | title | |
| Stage Name | stage_id.name | |
| Owner Name | user_id.name | |
| Slack Channel | ||
6 optional fields▸ show
| Deal Value | value |
| Currency | currency |
| Pipeline Name | pipeline_id.name |
| Deal ID | id |
| Organization Name | org_id.name |
| Expected Close Date | close_time |
Step-by-Step Setup
zapier.com > My Zaps > Create Zap
Create a new Zap and name it
Log into zapier.com and click the orange 'Create Zap' button in the top-left sidebar. You'll land on the Zap editor canvas. Click the default name 'Untitled Zap' at the top of the screen and rename it to something like 'Pipedrive Stage Change → Slack'. Naming it now saves confusion if you end up with multiple notification Zaps later.
- 1Go to zapier.com and log in
- 2Click 'Create Zap' in the left sidebar
- 3Click 'Untitled Zap' at the top and type a clear name
Zap Editor > Trigger > App & Event
Set Pipedrive as the trigger app
Click the 'Trigger' block in the Zap editor. A search panel opens on the right. Type 'Pipedrive' and select it from the list. You'll then be asked to choose a trigger event — this determines what action in Pipedrive fires the Zap. Pick 'Updated Deal' from the event list. This trigger fires every time any field on a deal changes, including stage.
- 1Click the 'Trigger' block on the canvas
- 2Type 'Pipedrive' in the app search box
- 3Select 'Pipedrive' from the results
- 4Under 'Trigger Event', select 'Updated Deal'
- 5Click 'Continue'
Zap Editor > Trigger > Account
Connect your Pipedrive account
Zapier will prompt you to connect a Pipedrive account. Click 'Sign in to Pipedrive'. A popup opens asking you to authorize Zapier. Log in with your Pipedrive credentials and click 'Allow'. Once authorized, Zapier will show your company name under the connection. If your company has multiple Pipedrive workspaces, confirm you're connecting the right one before continuing.
- 1Click 'Sign in to Pipedrive'
- 2Log in with your Pipedrive credentials in the popup
- 3Click 'Allow' to grant Zapier access
- 4Confirm the correct account name appears in the dropdown
- 5Click 'Continue'
Zap Editor > Trigger > Test
Test the Pipedrive trigger
Click 'Test Trigger' to pull in a recent deal update from Pipedrive. Zapier will fetch the last deal that was updated in your account and display all its fields. Scroll through the sample data and confirm you can see fields like 'Stage Name', 'Deal Title', 'Deal Value', and 'Owner Name'. These are the fields you'll use to build the Slack message in later steps.
- 1Click 'Test Trigger'
- 2Wait 5-10 seconds for Zapier to fetch sample data
- 3Scroll through the returned fields
- 4Confirm 'stage_name' and 'title' are present in the sample
Zap Editor > + > Filter by Zapier > Only continue if...
Add a Filter to catch only stage changes
Click the '+' button below the trigger block to add a step, then select 'Filter' from the built-in Zapier tools. Set the filter condition to: 'Stage Name' — 'Exists'. This ensures the Zap only continues when the stage field is present and populated. For more targeted alerts (e.g., only 'Closed Won'), add a second condition: 'Stage Name' — 'Contains' — and type your target stage name. Use 'AND' logic if you want both conditions active.
- 1Click '+' below the trigger block
- 2Select 'Filter' from the built-in tools list
- 3Set Field to 'Stage Name' from the Pipedrive dropdown
- 4Set condition to 'Exists'
- 5Optionally add a second condition: Stage Name Contains [your stage]
- 6Click 'Continue'
Zap Editor > + > Slack > Send Channel Message
Add Slack as the action app
Click '+' below the filter block to add another step. Search for 'Slack' and select it. Under 'Action Event', choose 'Send Channel Message'. This posts a message to a public or private Slack channel. Do not use 'Send Direct Message' unless you want to DM a specific person — channel messages are visible to the whole team and better suited for deal alerts.
- 1Click '+' below the filter block
- 2Search for 'Slack' in the app search box
- 3Select 'Slack'
- 4Under 'Action Event', select 'Send Channel Message'
- 5Click 'Continue'
Zap Editor > Slack Action > Account
Connect your Slack workspace
Click 'Sign in to Slack'. A popup opens asking you to authorize Zapier for your workspace. Select the correct workspace from the dropdown in the top-right corner of the Slack authorization page, then click 'Allow'. Zapier needs permission to post messages to channels — confirm the scopes include 'chat:write'. Once authorized, your workspace name appears in the account dropdown.
- 1Click 'Sign in to Slack'
- 2Select your workspace from the dropdown in the top-right of the popup
- 3Click 'Allow' to grant Zapier posting permissions
- 4Confirm the workspace name appears in Zapier's account field
- 5Click 'Continue'
Zap Editor > Slack Action > Configure
Configure the Slack message
In the 'Action' panel, select the target channel from the 'Channel' dropdown — type '#' to search your channels. Then build the message text using the field inserter. Click inside the 'Message Text' field and use the blue variable picker to insert Pipedrive fields. A clear format: '🎯 Deal Update: [Deal Title] moved to [Stage Name] | Value: $[Deal Value] | Owner: [Owner Name] | Pipeline: [Pipeline Name]'. Keep it under 300 characters so it reads cleanly in Slack without truncation.
- 1Select your target channel from the 'Channel' dropdown
- 2Click into the 'Message Text' field
- 3Type your message prefix (e.g. '🎯 Deal Update:')
- 4Click the blue '+' icon to insert 'Deal Title' from Pipedrive fields
- 5Insert 'Stage Name', 'Deal Value', 'Owner Name' using the same method
- 6Set 'Send as Bot' toggle to On
- 7Optionally set Bot Name to 'Pipedrive Alerts' and add a custom emoji icon
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Zap Editor > Slack Action > Test
Test the Slack action
Click 'Test Action' at the bottom of the configuration panel. Zapier sends a real message to the Slack channel you selected using the sample deal data from Step 4. Open Slack and go to the target channel to confirm the message arrived. Check that the deal title, stage name, and value all display correctly. If anything looks off — wrong channel, garbled text, missing fields — go back and fix the configuration before publishing.
- 1Click 'Test Action'
- 2Wait 5-10 seconds
- 3Open Slack and navigate to the target channel
- 4Confirm the test message posted with correct field values
Zap Editor > Publish Zap
Publish the Zap
Click 'Publish Zap' in the top-right corner of the editor. The Zap status switches from 'Draft' to 'On'. From this point, every time a deal is updated in Pipedrive, the Zap checks the filter condition and, if it passes, posts to Slack within 1-2 minutes. Go to your Pipedrive account and manually move a real deal to a new stage to confirm the end-to-end flow works in production.
- 1Click 'Publish Zap' in the top-right
- 2Confirm the status indicator shows 'On'
- 3Open Pipedrive and drag a deal to a new stage
- 4Wait 90 seconds and check Slack for the live notification
This Code by Zapier step formats the raw deal value into a currency string and builds a clickable Pipedrive deal URL for the Slack message. Paste this into a 'Code by Zapier' step (choose 'Run JavaScript') inserted between the Filter step and the Slack action step. Map 'dealValue', 'currency', 'dealId', and 'dealTitle' as input data fields from the Pipedrive trigger output.
JavaScript — Code Step// Input variables mapped from Pipedrive trigger:▸ Show code
// Input variables mapped from Pipedrive trigger: // dealValue, currency, dealId, dealTitle, stageName, ownerName, orgName const value = parseFloat(inputData.dealValue) || 0;
... expand to see full code
// Input variables mapped from Pipedrive trigger:
// dealValue, currency, dealId, dealTitle, stageName, ownerName, orgName
const value = parseFloat(inputData.dealValue) || 0;
const currency = inputData.currency || 'USD';
const dealId = inputData.dealId;
const stageName = inputData.stageName || 'Unknown Stage';
const ownerName = inputData.ownerName || 'Unassigned';
const orgName = inputData.orgName || '';
const dealTitle = inputData.dealTitle || 'Unnamed Deal';
// Format currency with locale-aware comma separation
const formattedValue = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: currency,
minimumFractionDigits: 0,
maximumFractionDigits: 0
}).format(value);
// Build direct link to the deal in Pipedrive
const dealUrl = `https://app.pipedrive.com/deal/${dealId}`;
// Choose emoji based on stage name
let emoji = '🎯';
if (stageName.toLowerCase().includes('won')) emoji = '🏆';
if (stageName.toLowerCase().includes('lost')) emoji = '❌';
if (stageName.toLowerCase().includes('negotiat')) emoji = '🤝';
if (stageName.toLowerCase().includes('contract')) emoji = '📄';
// Compose the final Slack message
const message = `${emoji} *<${dealUrl}|${dealTitle}>* moved to *${stageName}*\n` +
`💰 Value: ${formattedValue} | 👤 Owner: ${ownerName}` +
(orgName ? ` | 🏢 ${orgName}` : '');
output = [{ message, formattedValue, dealUrl, emoji }];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 Zapier for this if your sales team doesn't have a developer and needs this running today. The Zap editor walks you through trigger, filter, and action in about 15 minutes with zero code. Pipedrive's Zapier integration has been stable for years — the 'Updated Deal' trigger reliably receives webhooks within seconds of a stage change. If your team runs multiple pipelines and wants to route alerts to different channels based on pipeline or deal value, Zapier's Paths feature handles it cleanly. The one scenario where you'd skip Zapier: if you want to format the Slack message as a rich Block Kit layout with buttons and deal metadata in a structured card — Zapier's Slack action only supports plain text and basic markdown.
Cost math: this Zap uses 2 tasks per trigger event — one for the filter step, one for the Slack post. A team closing 40 deals/month and averaging 4 stage changes per deal = 160 trigger events = 320 tasks/month. Zapier's Free plan caps at 100 tasks, so you'll need the Starter plan at $19.99/month. Make handles the same workflow for free under its 1,000 operations/month limit — that's a $240/year difference. If budget is a real constraint, Make is the cheaper call here.
Make fires the same Pipedrive webhook and gives you a visual router module that branches by stage name or deal value without needing a separate Paths add-on — it's built into the free tier. n8n gives you a JavaScript function node where you can format currency, build Slack Block Kit messages, and handle multi-pipeline logic in one node — but you're hosting it yourself. Power Automate has a Pipedrive connector, but it's a premium connector requiring a $15/user/month add-on, making it the most expensive option here for no additional benefit. Pipedream lets you write the entire workflow as code and deploy it in minutes, with built-in retries and event inspection — better for teams who want full observability. Zapier wins when the team building this is non-technical and needs it done without IT involvement.
Three things you'll hit after setup. First: Pipedrive fires the webhook for every field update on a deal, not just stage changes. Without the filter step, you'll flood Slack with messages whenever a rep edits a deal's expected close date or adds a tag. Second: deal value arrives as a raw integer ('48000') with no currency formatting. Your Slack message will read '$48000' unless you add a Formatter step or use the Code by Zapier snippet above. Third: if anyone renames a pipeline stage in Pipedrive — common as teams iterate on their sales process — your filter condition breaks silently. The Zap stays 'On' but stops posting because the stage name no longer matches. Set a calendar reminder to audit your filter conditions quarterly, or watch for unexplained drops in Slack notification volume.
Ideas for what to build next
- →Route Different Stages to Different Channels — Use Zapier Paths to send 'Closed Won' alerts to #sales-wins, 'Contract Sent' to #deals-in-progress, and high-value deals (over $50k) to #exec-updates — all from one Zap instead of maintaining separate Zaps per stage.
- →Add a Pipedrive Deal Link to Every Message — Use the Code by Zapier pro tip above to append a clickable Pipedrive deal URL to each Slack message. This cuts the time between seeing an alert and pulling up the deal from 30 seconds of searching to one click.
- →Build a Weekly Deal Velocity Digest — Create a separate scheduled Zap that runs every Monday at 9am, searches Pipedrive for deals updated in the past 7 days, and posts a summary table to #sales-leadership — gives managers a structured view without alert fatigue.
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