Intermediate~15 min setupCRM & CommunicationVerified April 2026
HubSpot logo
Slack logo

How to Send Deal Stage Alerts to Slack with Power Automate

Automatically notify your Slack team when HubSpot deals move to new pipeline stages.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

HubSpot for Slack exists as a native integration, but it doesn't support conditional routing or custom message formatting. This guide uses an automation platform for full control. View native option →

Best for

Sales teams who need instant notifications when deals progress through their HubSpot pipeline stages.

Not ideal for

Teams wanting digest summaries or complex conditional logic based on deal properties.

Sync type

real-time

Use case type

notification

Real-World Example

💡

A 12-person B2B sales team uses this to post in #sales-alerts whenever a deal moves to Proposal or Negotiation stages in HubSpot. Before automation, deal stage changes sat unnoticed for hours, causing follow-up delays. Now the assigned rep and sales manager both see stage changes within 30 seconds.

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 Power Automate

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

HubSpot admin access with permissions to install third-party integrations
Slack workspace admin permissions to install and configure Power Automate app
Microsoft 365 account with Power Automate access (included in most business plans)
Active deals in your HubSpot pipeline to test stage transitions

Optional

Dedicated Slack channel for deal notifications to avoid cluttering general channels

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Deal Namedealname
Deal Stagedealstage
Deal Amountamount
Deal Ownerhubspot_owner_id
4 optional fields▸ show
Close Dateclosedate
Company Nameassociatedcompanyid
Deal Sourcehs_deal_stage_probability
Last Activity Datenotes_last_updated

Step-by-Step Setup

1

My flows > +New flow > Automated cloud flow

Create automated cloud flow

Navigate to make.powerautomate.com and sign in with your Microsoft account. Click My flows in the left sidebar, then +New flow in the top menu. Select Automated cloud flow from the dropdown options. Name your flow something like 'HubSpot Deal Stage Alerts' and leave the trigger selection empty for now.

  1. 1Click My flows in the left sidebar
  2. 2Click +New flow in the top menu
  3. 3Select Automated cloud flow
  4. 4Name the flow 'HubSpot Deal Stage Alerts'
  5. 5Click Create without selecting a trigger
What you should see: You should see the flow designer with an empty trigger box saying 'Choose your flow's trigger'.
2

Trigger > Search connectors > HubSpot > When a deal is updated

Add HubSpot trigger

Click the trigger box and search for 'HubSpot' in the connector list. Select the HubSpot connector, then choose 'When a deal is updated' as your trigger. This fires whenever any deal property changes, including stage movements. You'll need to authenticate with your HubSpot account if this is your first time connecting.

  1. 1Click the empty trigger box
  2. 2Type 'HubSpot' in the search bar
  3. 3Select the HubSpot connector
  4. 4Choose 'When a deal is updated' trigger
  5. 5Sign in to your HubSpot account when prompted
What you should see: The trigger box now shows 'When a deal is updated' with a green checkmark next to the HubSpot connector.
Common mistake — The HubSpot connector in Power Automate has limited trigger options compared to native HubSpot webhooks.
Power Automate
+
click +
search apps
HubSpot
HU
HubSpot
Add HubSpot trigger
HubSpot
HU
module added
3

When a deal is updated > Configure parameters

Configure deal trigger settings

In the trigger configuration, you'll see options for which deals to monitor. Leave the Object ID field empty to monitor all deals. Set the Properties field to include 'dealstage,dealname,amount,closedate' so these values are available in your flow. The trigger will fire for any deal update, so we'll filter for stage changes in the next step.

  1. 1Leave Object ID blank
  2. 2In Properties field, enter 'dealstage,dealname,amount,closedate'
  3. 3Leave other fields at default settings
  4. 4Click outside the box to save settings
What you should see: The Properties field shows your comma-separated list and the trigger box displays 'Configured' status.
Common mistake — Without specifying properties, you'll only get the deal ID and basic metadata in downstream steps.
4

+New step > Control > Condition

Add condition to filter stage changes

Click +New step below the trigger. Search for 'Condition' in the control actions. Select the Condition control to add filtering logic. We need to check if the dealstage property actually changed, not just any deal property. In the left side of the condition, click Choose a value and select 'dealstage' from the dynamic content.

  1. 1Click +New step below the HubSpot trigger
  2. 2Search for 'Condition' in the actions
  3. 3Select Condition from Control actions
  4. 4Click the left Choose a value box
  5. 5Select 'dealstage' from dynamic content
What you should see: You see a condition block with dealstage selected on the left side and operator dropdown in the middle.
Common mistake — Without this condition, you'll get Slack notifications for every deal update, not just stage changes.
HubSpot
HU
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Slack
SL
notified
5

Condition > Configure comparison

Configure stage change condition

Set the condition operator to 'is not equal to' and leave the right side empty for now. This basic condition ensures the flow continues when dealstage has a value. For more precise filtering, you could specify exact stages like 'Qualified' or 'Proposal', but monitoring all stage changes is usually more useful for sales teams.

  1. 1Set the middle dropdown to 'is not equal to'
  2. 2Leave the right value box empty
  3. 3This creates a 'not null' check for dealstage
What you should see: The condition shows 'dealstage is not equal to [empty]' which will pass when dealstage has any value.
Common mistake — Filters are the most common place setups break. Double-check the field name and value exactly match what your app sends — a single capital letter difference will block everything.
6

Condition > If yes > Add an action > Slack > Post message

Add Slack connection

In the 'If yes' branch of the condition, click Add an action. Search for 'Slack' and select the Slack connector. Choose 'Post message' as your action. You'll need to authenticate with your Slack workspace and grant permissions for Power Automate to post messages on your behalf.

  1. 1Click Add an action in the 'If yes' branch
  2. 2Search for 'Slack' in connectors
  3. 3Select the Slack connector
  4. 4Choose 'Post message' action
  5. 5Authorize Power Automate access to your Slack workspace
What you should see: The Slack action box appears with authentication completed and channel selection dropdown visible.
Common mistake — Make sure you have admin permissions in Slack to install the Power Automate app connector.
7

Post message > Configure channel and message

Configure Slack message details

Select your target channel from the Channel dropdown - typically something like #sales or #deals. In the Message field, build your notification text using dynamic content from HubSpot. Include deal name, stage, amount, and owner information to make alerts actionable for your team.

  1. 1Select your channel from the Channel dropdown
  2. 2Click in the Message field
  3. 3Add dynamic content: Deal name, stage, amount
  4. 4Format with emojis or formatting for readability
What you should see: The message field shows a mix of static text and dynamic HubSpot content tokens in blue boxes.
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.
8

Post message > Message content formatting

Format notification message

Create a clear, scannable message format. Include the deal name, new stage, dollar amount, and next steps. Use Slack formatting like bold text with asterisks or line breaks for readability. Consider adding the HubSpot deal URL so team members can click through directly from Slack.

  1. 1Type a template like: '*Deal Update:* [Deal Name]'
  2. 2Add line break and stage info
  3. 3Include amount with currency formatting
  4. 4Add HubSpot deal URL if available in dynamic content
What you should see: Your message preview shows formatted text with HubSpot data placeholders that will populate with real values.
Common mistake — HubSpot owner IDs from Power Automate show as numbers, not names - you'll need additional steps to resolve these.
9

Flow header > Save > Test > Manual test

Test the flow

Click Save in the top right, then Test in the header menu. Choose 'I'll perform the trigger action' to test with real data. Go to HubSpot and move a test deal to a different stage. Return to Power Automate within 2-3 minutes to see if the flow triggered successfully.

  1. 1Click Save in the top menu
  2. 2Click Test next to the Save button
  3. 3Select 'I'll perform the trigger action'
  4. 4Click Save & Test
  5. 5Go update a deal stage in HubSpot
What you should see: The test panel shows green checkmarks for each step and your Slack channel receives a formatted deal notification.
Common mistake — HubSpot webhook delays can take 2-5 minutes to reach Power Automate, so be patient during testing.
Power Automate
▶ Test flow
executed
HubSpot
Slack
Slack
🔔 notification
received
10

Flow header > Turn on

Enable flow for production

Once testing succeeds, click Turn on in the flow header to activate it for all future deal updates. Monitor the flow for the first few days to ensure message formatting looks correct and you're not getting too much noise. You can adjust the condition logic or message content anytime by editing the flow.

  1. 1Click Turn on in the flow header
  2. 2Confirm activation in the popup
  3. 3Monitor #sales channel for incoming notifications
  4. 4Edit flow if message formatting needs adjustment
What you should see: The flow status changes to 'On' and your team will receive real-time Slack alerts for all HubSpot deal stage changes.

Use Power Automate expressions to format currency and resolve owner names. Add this expression in the Message field to properly format deal amounts and create clean notifications.

JavaScript — Code StepformatNumber(div(outputs('When_a_deal_is_updated')?['body/amount'], 1), 'C')
▸ Show code
formatNumber(div(outputs('When_a_deal_is_updated')?['body/amount'], 1), 'C')
// For owner name resolution, add this before Slack step:
concat('https://api.hubapi.com/owners/v2/owners/', outputs('When_a_deal_is_updated')?['body/hubspot_owner_id'])

... expand to see full code

formatNumber(div(outputs('When_a_deal_is_updated')?['body/amount'], 1), 'C')

// For owner name resolution, add this before Slack step:
concat('https://api.hubapi.com/owners/v2/owners/', outputs('When_a_deal_is_updated')?['body/hubspot_owner_id'])

// Clean stage formatting:
replace(outputs('When_a_deal_is_updated')?['body/dealstage'], '_', ' ')

// Deal URL construction:
concat('https://app.hubspot.com/contacts/', variables('portal_id'), '/deal/', outputs('When_a_deal_is_updated')?['body/hs_object_id'])

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 Microsoft Power Automate for this if your team lives in the Microsoft ecosystem and you need basic deal notifications without complex logic. The HubSpot connector handles authentication cleanly and the flow designer is more intuitive than Zapier for non-technical users. Skip it if you need advanced filtering or custom message formatting - Make handles conditional logic better.

Cost

At 50 deal updates per month, you'll use about 50 Power Automate runs. Most business plans include 2,000+ runs monthly, so cost is rarely an issue. Zapier charges $20/month for the same volume on their Professional plan. Make offers 1,000 operations free, then $9/month. Power Automate wins on cost if you already have Microsoft 365.

Tradeoffs

Make beats Power Automate for complex deal routing with its visual scenario builder and better HubSpot data parsing. Zapier's formatter tools handle currency and date formatting more elegantly than Power Automate expressions. N8n gives you complete control over the notification logic with custom JavaScript, while Pipedream excels at owner name resolution via API calls. But Power Automate's strength is simplicity - the flow works in 10 minutes without learning new syntax.

You'll hit three main issues after going live. HubSpot owner IDs come through as numbers, not names, so your first notifications will show user ID 52847291 instead of Sarah Johnson. The webhook delay averages 2-3 minutes, not instant like you'd expect. And bulk deal imports will flood your Slack channel - 50 updated deals means 50 individual notifications hitting within minutes of each other.

Ideas for what to build next

  • Add owner name resolutionCreate a lookup step to convert HubSpot owner IDs into actual names and Slack user mentions for better notifications.
  • Build stage-specific routingRoute different deal stages to different Slack channels - send early-stage deals to #leads and late-stage to #closing.
  • Create deal value thresholdsAdd conditions to only notify on deals above certain dollar amounts, or format high-value deals with special formatting and @channel mentions.

Related guides

Was this guide helpful?
HubSpot + Slack overviewPower Automate profile →