Beginner~8 min setupCommunication & CRMVerified April 2026
Slack logo
Pipedrive logo

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-time

Use case type

notification

Real-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.

/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.

Pipedrive account with at least one active pipeline and deals — you need existing deal data to test the trigger
Pipedrive user account with 'View' and 'Edit' permissions on deals — restricted accounts may not expose all fields to the Zapier trigger
Slack workspace admin access or explicit permission from your admin to install the Zapier app — Zapier needs the 'chat:write' scope to post messages
Zapier account on the Free plan or above — the Free plan supports this Zap but caps at 100 tasks/month, which is fine for low-volume teams
The target Slack channel must already exist before building the Zap — Zapier can't create channels on the fly

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Deal Titletitle
Stage Namestage_id.name
Owner Nameuser_id.name
Slack Channel
6 optional fields▸ show
Deal Valuevalue
Currencycurrency
Pipeline Namepipeline_id.name
Deal IDid
Organization Nameorg_id.name
Expected Close Dateclose_time

Step-by-Step Setup

1

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.

  1. 1Go to zapier.com and log in
  2. 2Click 'Create Zap' in the left sidebar
  3. 3Click 'Untitled Zap' at the top and type a clear name
What you should see: You should see the Zap editor with a blank trigger block labeled 'Trigger' and your new name displayed at the top.
2

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.

  1. 1Click the 'Trigger' block on the canvas
  2. 2Type 'Pipedrive' in the app search box
  3. 3Select 'Pipedrive' from the results
  4. 4Under 'Trigger Event', select 'Updated Deal'
  5. 5Click 'Continue'
What you should see: You should see the 'Updated Deal' event selected and a 'Continue' button active at the bottom of the panel.
Common mistake — Do NOT use 'New Deal' here — that fires only when a deal is created, not when it moves stages. 'Updated Deal' is the correct trigger for stage changes.
Zapier
+
click +
search apps
Slack
SL
Slack
Set Pipedrive as the trigger…
Slack
SL
module added
3

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.

  1. 1Click 'Sign in to Pipedrive'
  2. 2Log in with your Pipedrive credentials in the popup
  3. 3Click 'Allow' to grant Zapier access
  4. 4Confirm the correct account name appears in the dropdown
  5. 5Click 'Continue'
What you should see: You should see a green checkmark and your Pipedrive company name listed under 'Account'.
Common mistake — Zapier connects using your personal Pipedrive API key. If you're an admin connecting on behalf of a team, use an admin account — otherwise the trigger may miss deals owned by other users depending on your Pipedrive visibility settings.
Zapier settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Zapier
popup window
Connected
green checkmark
4

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.

  1. 1Click 'Test Trigger'
  2. 2Wait 5-10 seconds for Zapier to fetch sample data
  3. 3Scroll through the returned fields
  4. 4Confirm 'stage_name' and 'title' are present in the sample
What you should see: You should see a record with populated fields including deal title, value, current stage name, pipeline name, and owner. If the sample shows blank stage data, manually update a test deal in Pipedrive and re-run the test.
Common mistake — If Pipedrive returns a deal that was updated for a reason other than a stage change (like a note being added), the sample data still looks correct — but your filter in Step 5 will handle that.
Zapier
▶ Turn on & test
executed
Slack
Pipedrive
Pipedrive
🔔 notification
received
5

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.

  1. 1Click '+' below the trigger block
  2. 2Select 'Filter' from the built-in tools list
  3. 3Set Field to 'Stage Name' from the Pipedrive dropdown
  4. 4Set condition to 'Exists'
  5. 5Optionally add a second condition: Stage Name Contains [your stage]
  6. 6Click 'Continue'
What you should see: You should see a filter block with your condition displayed and a 'Test' result showing 'Your Zap would have continued' based on the sample data.
Common mistake — Pipedrive's 'Updated Deal' trigger fires on ANY field change — not just stage. Without this filter, you'll send Slack messages every time someone edits a deal note, phone number, or custom field.
Slack
SL
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Pipedrive
PI
notified
6

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.

  1. 1Click '+' below the filter block
  2. 2Search for 'Slack' in the app search box
  3. 3Select 'Slack'
  4. 4Under 'Action Event', select 'Send Channel Message'
  5. 5Click 'Continue'
What you should see: You should see the Slack action step added with 'Send Channel Message' confirmed as the event.
7

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.

  1. 1Click 'Sign in to Slack'
  2. 2Select your workspace from the dropdown in the top-right of the popup
  3. 3Click 'Allow' to grant Zapier posting permissions
  4. 4Confirm the workspace name appears in Zapier's account field
  5. 5Click 'Continue'
What you should see: You should see your Slack workspace name listed with a green checkmark under 'Account'.
Common mistake — Zapier posts as a bot named 'Zapier'. If your channel requires specific posting permissions (common in enterprise Slack plans), ask your Slack admin to whitelist the Zapier app before building further.
8

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.

  1. 1Select your target channel from the 'Channel' dropdown
  2. 2Click into the 'Message Text' field
  3. 3Type your message prefix (e.g. '🎯 Deal Update:')
  4. 4Click the blue '+' icon to insert 'Deal Title' from Pipedrive fields
  5. 5Insert 'Stage Name', 'Deal Value', 'Owner Name' using the same method
  6. 6Set 'Send as Bot' toggle to On
  7. 7Optionally set Bot Name to 'Pipedrive Alerts' and add a custom emoji icon
What you should see: The message text field should show a mix of plain text and colored variable pills. Preview text at the bottom should show a realistic-looking message with actual values from your test deal.
Common mistake — Deal Value comes through as a raw number without currency formatting (e.g. '45000' not '$45,000'). If formatting matters, add a Formatter step before this action — see the Pro Tip section.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
9

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.

  1. 1Click 'Test Action'
  2. 2Wait 5-10 seconds
  3. 3Open Slack and navigate to the target channel
  4. 4Confirm the test message posted with correct field values
What you should see: You should see a Slack message in the target channel with the deal name, stage, value, and owner populated from your Pipedrive sample data. Zapier also shows a green 'Test was successful' confirmation.
Common mistake — The test message is a real post — your team will see it. Either run the test in a private #test-channel or delete the message in Slack after confirming it looks right.
10

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.

  1. 1Click 'Publish Zap' in the top-right
  2. 2Confirm the status indicator shows 'On'
  3. 3Open Pipedrive and drag a deal to a new stage
  4. 4Wait 90 seconds and check Slack for the live notification
What you should see: The Zap status shows 'On' in green. Your live deal move in Pipedrive triggers a Slack message within 90 seconds.

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

VerdictWhy Zapier for this workflow

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

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.

Tradeoffs

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 ChannelsUse 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 MessageUse 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 DigestCreate 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

Was this guide helpful?
Slack + Pipedrive overviewZapier profile →