

How to Send HubSpot Lead Notifications to Slack with Power Automate
Automatically post a Slack message to #sales whenever a new contact is created in HubSpot with lead details.
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
Teams using Microsoft 365 who want instant HubSpot contact notifications without managing separate automation tools
Not ideal for
High-volume lead flows over 1,000 contacts/month or complex multi-channel routing requirements
Sync type
real-timeUse case type
notificationReal-World Example
A 12-person B2B software company uses this to notify their #sales channel whenever a new contact fills out their demo request form in HubSpot. Before automation, reps checked HubSpot manually every 30 minutes and missed hot leads during lunch breaks or meetings. Now they see lead details within 10 seconds and can respond while prospects are still on the website.
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
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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Email Address | email | |
7 optional fields▸ show
| First Name | firstname |
| Last Name | lastname |
| Company Name | company |
| Lead Status | hs_lead_status |
| Lead Source | hs_latest_source |
| Phone Number | phone |
| Website | website |
Step-by-Step Setup
My flows > + New flow > Automated cloud flow
Create automated cloud flow
Go to make.powerautomate.com and sign in with your Microsoft account. Click 'My flows' in the left sidebar, then '+ New flow' at the top. Select 'Automated cloud flow' from the dropdown. Name your flow 'HubSpot Lead to Slack' and click Create without selecting a trigger yet.
- 1Click 'My flows' in the left navigation
- 2Click '+ New flow' button at the top
- 3Select 'Automated cloud flow'
- 4Enter 'HubSpot Lead to Slack' as the flow name
- 5Click 'Create' button
Flow designer > Choose trigger > HubSpot
Add HubSpot trigger
In the trigger search box, type 'HubSpot' and select the HubSpot connector. Choose 'When a contact is created' from the trigger list. If you don't see HubSpot triggers, click 'See more' to expand all available options. This trigger fires immediately when new contacts enter your HubSpot CRM.
- 1Type 'HubSpot' in the connector search box
- 2Click on the HubSpot connector icon
- 3Select 'When a contact is created' trigger
- 4Click 'Create' to add the trigger
HubSpot trigger > Sign in
Connect HubSpot account
Click 'Sign in' and authenticate with your HubSpot account in the popup window. Grant Power Automate permission to read contacts and webhooks. After signing in, you'll see your HubSpot portal name appear in the connection dropdown. The trigger will automatically configure itself to listen for new contact events.
- 1Click 'Sign in' button in the HubSpot trigger
- 2Enter HubSpot email and password in popup
- 3Click 'Grant access' for Power Automate permissions
- 4Verify your portal name appears in the connection field
HubSpot trigger > Show advanced options > Properties
Configure contact properties
Click 'Show advanced options' in the HubSpot trigger to select which contact properties to retrieve. Add 'firstname', 'lastname', 'email', 'company', and 'hs_lead_status' to the properties list. These fields will be available in your Slack message. Without specifying properties, you'll only get the contact ID.
- 1Click 'Show advanced options' in trigger step
- 2Click in the 'Properties' field
- 3Type and select 'firstname, lastname, email, company, hs_lead_status'
- 4Verify all 5 properties appear in the field
Flow designer > + New step
Add new step
Click '+ New step' below the HubSpot trigger to add an action. This opens the action picker where you can search for connectors. The next step will be posting to Slack, so you'll need to find the Slack connector in the extensive list of available actions.
- 1Click '+ New step' button under HubSpot trigger
- 2Wait for the 'Choose an action' panel to load
- 3See the search bar and connector grid
Choose an action > Slack > Post message
Add Slack action
Type 'Slack' in the action search box and click the Slack connector. Select 'Post message' from the available Slack actions. This action lets you send formatted messages to any Slack channel your bot has access to. Avoid 'Post message as a bot' unless you specifically need bot identity.
- 1Type 'Slack' in the search box
- 2Click on Slack connector from results
- 3Select 'Post message' action
- 4Click to add the action to your flow
Slack action > Sign in
Connect Slack workspace
Click 'Sign in' for Slack and authorize Power Automate to access your workspace. Choose the correct workspace if you're in multiple ones. Power Automate requests permissions to read channels, send messages, and access user info. The connection persists across all your flows.
- 1Click 'Sign in' button in Slack action
- 2Select your Slack workspace from dropdown
- 3Click 'Allow' to grant Power Automate permissions
- 4Verify connection shows your workspace name
Slack action > Channel and Message fields
Configure Slack message
Set 'Channel' to '#sales' or your target channel. In the 'Message' field, click the lightning bolt to add dynamic content from HubSpot. Build a message like 'New lead: [firstname] [lastname] from [company] ([email]) - Status: [hs_lead_status]'. Use line breaks to format the message cleanly.
- 1Click Channel dropdown and select '#sales'
- 2Click in Message field and type 'New lead: '
- 3Click lightning bolt and select 'firstname' from HubSpot
- 4Continue building message with lastname, company, email, hs_lead_status
- 5Add line breaks for readable formatting
Top menu > Save > Test > Manually
Test the flow
Click 'Save' in the top right, then 'Test' to run a test. Choose 'Manually' and click 'Test' again. Go to HubSpot and create a test contact with the properties you configured. Return to Power Automate within 2 minutes to see if the test succeeded. Check your Slack channel for the message.
- 1Click 'Save' button in top toolbar
- 2Click 'Test' button next to Save
- 3Select 'Manually' trigger option
- 4Click 'Test' to start monitoring
- 5Create test contact in HubSpot
- 6Return to see test results
Top menu > Turn on
Enable the flow
After successful testing, click 'Turn on' in the top right corner to activate the flow. The status changes from 'Off' to 'On' and the flow begins monitoring HubSpot for new contacts. You can view run history, modify the flow, or turn it off anytime from the My flows page.
- 1Click 'Turn on' toggle in top right
- 2Confirm the flow status shows 'On'
- 3Click 'Done' to return to My flows
- 4Verify flow appears as 'On' in your flows list
Add conditional formatting to highlight high-value leads by checking company domain or lead score. Paste this expression in the Message field to make enterprise domains bold.
JavaScript — Code Stepconcat('New lead: **', ▸ Show code
concat('New lead: **',
triggerBody()?['firstname'], ' ',
triggerBody()?['lastname'], '**',... expand to see full code
concat('New lead: **',
triggerBody()?['firstname'], ' ',
triggerBody()?['lastname'], '**',
if(contains(triggerBody()?['email'], '@enterprise'), ' 🔥 ENTERPRISE', ''),
' from ', triggerBody()?['company'],
' (', triggerBody()?['email'], ')',
' - Status: ', triggerBody()?['hs_lead_status'],
if(not(empty(triggerBody()?['hs_latest_source'])),
concat(' - Source: ', triggerBody()?['hs_latest_source']), ''))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 Power Automate for this if you're already in the Microsoft ecosystem and want native integration with Teams alongside Slack. Setup takes 10 minutes and webhooks fire within 30 seconds of contact creation. The licensing is straightforward since it comes with Microsoft 365 Business Premium. Skip Power Automate if you need complex lead routing logic - Make handles conditional workflows much better.
Cost math is simple: Power Automate Premium costs $15/user/month with 5,000 flow runs included. Each new contact burns 1 run, so at 200 new contacts monthly you're paying $0.075 per notification. Zapier Professional at $49/month would be $0.245 per task at the same volume. Power Automate wins on price until you hit 5,000+ contacts monthly.
Zapier offers better HubSpot property filtering and Slack formatting options out of the box. Make provides superior conditional logic for routing leads to different channels based on source or score. N8n gives you complete control over message formatting and webhook retry logic. Pipedream excels at enriching lead data before posting to Slack. But Power Automate integrates seamlessly with your existing Microsoft tenant and doesn't require managing another platform login.
You'll hit HubSpot webhook registration limits if you create too many test flows - they cap at 25 webhooks per portal. Slack rate limiting kicks in at 1 message per second, so high-volume lead imports can queue messages for several minutes. Power Automate's expression language is clunky for advanced message formatting compared to JavaScript or Python options in other platforms.
Ideas for what to build next
- →Add lead scoring alerts — Enhance notifications to flag high-score leads with different Slack formatting or direct messages to specific reps.
- →Create digest version — Build a daily summary flow that posts lead counts and top prospects instead of individual notifications.
- →Connect deal creation — Add a second flow that updates Slack when the contact becomes a deal with opportunity value.
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