

How to Send HubSpot Form Alerts to Slack with N8n
Forward HubSpot form submissions to specific Slack channels instantly when someone submits a demo request, contact form, or newsletter signup.
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 needing custom form routing logic or handling 500+ monthly submissions where Zapier gets expensive.
Not ideal for
Simple setups wanting all forms in one channel - Zapier's plug-and-play approach is faster here.
Sync type
real-timeUse case type
notificationReal-World Example
A 25-person B2B SaaS company routes demo requests to #sales, pricing inquiries to #revenue, and support questions to #customer-success. Before automation, their ops person manually checked HubSpot 4-5 times daily and demo requests sat unnoticed for 3-4 hours during busy periods. Now sales reps respond within 15 minutes because notifications hit Slack instantly.
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 n8n
Copy the pre-built n8n blueprint and paste it straight into n8n. 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 | ||
| Contact Email | contact.email | |
| Form Name | form.name | |
| HubSpot Contact ID | contact.vid | |
3 optional fields▸ show
| Contact Name | contact.firstname |
| Company Name | contact.company |
| Form Page URL | form.pageUrl |
Step-by-Step Setup
Workflows > New > Add Node > HubSpot
Create new N8n workflow
Start a fresh workflow to capture HubSpot form submissions. This will be the container for your entire automation chain.
- 1Click 'New Workflow' from your N8n dashboard
- 2Click the gray plus icon to add your first node
- 3Select 'HubSpot' from the app list
- 4Choose 'HubSpot Trigger' from the node options
Node Settings > Credentials > HubSpot OAuth2
Connect HubSpot account
Authenticate your HubSpot account so N8n can receive form submission webhooks. You'll need admin access to create the webhook.
- 1Click 'Create New' under Credentials
- 2Select 'HubSpot OAuth2 API' as the credential type
- 3Click 'Connect my account' and authorize N8n
- 4Copy the generated webhook URL from the trigger node
HubSpot Settings > Data Management > Workflows
Configure HubSpot webhook
Set up HubSpot to send form submission data to your N8n webhook. This creates the trigger that starts your automation.
- 1In HubSpot, go to Settings > Integrations > Private Apps
- 2Create a new private app with 'forms' read scope
- 3Navigate to Settings > Data Management > Properties
- 4Go to Workflows > Create workflow > Form submission trigger
- 5Paste your N8n webhook URL as the endpoint
Workflow > HubSpot Trigger > Listen for Test Event
Test webhook reception
Verify N8n receives form data correctly by submitting a test form. This confirms your webhook connection works.
- 1Submit a test entry on one of your HubSpot forms
- 2Return to N8n and click 'Listen for Test Event' on the trigger
- 3Check that form data appears in the node output panel
- 4Verify fields like email, form name, and submission time are present
Add Node > Logic > IF
Add form filter logic
Create conditional logic to route different forms to different Slack channels. Without this, every form goes everywhere.
- 1Add an 'IF' node after the HubSpot trigger
- 2Set condition to 'String' > 'Equal' comparison
- 3Use expression {{$node['HubSpot Trigger'].json['form']['name']}} for the field
- 4Enter your target form name like 'Demo Request Form' as the value
Add Node > Slack > Send Message
Configure Slack connection
Connect your Slack workspace so N8n can post messages to channels. You'll need permission to install apps in Slack.
- 1Add a Slack node to the 'True' branch of your IF statement
- 2Select 'Send Message' as the Slack operation
- 3Click 'Create New' under Credentials
- 4Choose 'Slack OAuth2 API' and authorize the connection
Slack Node > Parameters > Channel
Set target Slack channel
Choose which channel receives form notifications. Different form types should route to different channels for organization.
- 1Click the Channel dropdown in the Slack node
- 2Select your target channel like '#sales-leads' or '#marketing'
- 3Alternatively, use expression mode to set channel dynamically
- 4Test that the channel appears correctly in the node preview
Slack Node > Parameters > Message
Format notification message
Design the Slack message content using form data from HubSpot. Include key details like contact info and form type.
- 1Click in the Message text field and enable expression mode
- 2Build message template with form data: 'New {{$node['HubSpot Trigger'].json['form']['name']}} submission'
- 3Add contact details: 'Email: {{$node['HubSpot Trigger'].json['contact']['email']}}'
- 4Include submission link: 'View in HubSpot: {{$node['HubSpot Trigger'].json['contact']['profile-url']}}'
Node Actions > Copy > Paste
Add multiple form branches
Create separate routing for different form types. Each form type should have its own IF condition and Slack destination.
- 1Copy your existing IF + Slack node chain
- 2Change the second IF condition to match a different form name
- 3Update the Slack channel to the appropriate destination
- 4Connect both IF nodes to the same HubSpot trigger
Workflow > Activate Toggle
Test end-to-end workflow
Submit actual forms to verify each routing path works correctly. Test both positive matches and unmatched forms.
- 1Activate the workflow using the toggle in the top right
- 2Submit test entries on each of your target forms
- 3Check that messages appear in the correct Slack channels
- 4Verify message formatting and HubSpot links work properly
Drop this into an n8n Code node.
Copy this template{{$node['HubSpot Trigger'].json['contact']['email'] || 'No email'}} || {{$node['HubSpot Trigger'].json['contact']['phone'] || 'No phone'}}▸ Show code
{{$node['HubSpot Trigger'].json['contact']['email'] || 'No email'}} || {{$node['HubSpot Trigger'].json['contact']['phone'] || 'No phone'}}... expand to see full code
{{$node['HubSpot Trigger'].json['contact']['email'] || 'No email'}} || {{$node['HubSpot Trigger'].json['contact']['phone'] || 'No phone'}}Scaling Beyond 500+ form submissions/month+ Records
If your volume exceeds 500+ form submissions/month records, apply these adjustments.
Add execution delays
Insert 200ms delay nodes between Slack posts to avoid rate limits. HubSpot allows 100 API calls per 10 seconds - spacing prevents batch submission overload.
Batch similar notifications
Use N8n's scheduler to collect submissions hourly and send digest messages instead of individual alerts. Reduces execution count by 80% and prevents Slack channel noise.
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 N8n for this if you need custom filtering logic or handle 500+ form submissions monthly. The code nodes let you build complex routing rules like geographic targeting or lead scoring that Zapier can't match. Skip N8n if you just want basic 'all forms to one channel' setup - Zapier's HubSpot trigger is more reliable for simple use cases.
This workflow burns through 2-3 N8n executions per form submission (trigger + IF logic + Slack post). At 200 forms/month, that's 600 executions total. N8n's starter plan includes 5,000 executions for $20/month, so you're well covered. Zapier charges $30/month for the same volume, and Make costs $25/month but limits you to 10,000 operations.
Zapier wins on setup speed - their HubSpot integration auto-maps form fields without JSON expressions. Make handles high-volume better with built-in rate limiting and error queues that N8n lacks. But N8n's flexibility crushes both platforms when you need conditional logic. Want different message formats per form type? Easy with code nodes. Geographic routing based on IP data? Build it yourself instead of hoping for a pre-built filter.
HubSpot's webhook delivery isn't guaranteed - they retry failed webhooks only 3 times before giving up permanently. If your N8n instance goes down for maintenance, you'll miss submissions during that window. Form spam will trigger your automation too since HubSpot fires webhooks before validation. The contact profile URLs in webhook data expire after 30 days, so don't rely on them for long-term tracking.
Ideas for what to build next
- →Add lead scoring notifications — Create a follow-up automation that posts to Slack when HubSpot calculates a high lead score for form submitters.
- →Build form abandonment alerts — Set up tracking for users who start but don't complete forms, then notify sales teams about warm leads to follow up with.
- →Create submission logging — Route all form data to Google Sheets or Airtable for backup tracking and analytics that persist beyond HubSpot's data retention.
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