

How to Send HubSpot Meeting Notifications to Slack with N8n
Automatically send Slack DMs to assigned reps when prospects book meetings in HubSpot, including meeting details and pre-meeting answers.
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 that want instant meeting notifications and have technical resources to maintain N8n workflows.
Not ideal for
Non-technical teams that need a quick setup and don't want to manage webhook configurations.
Sync type
real-timeUse case type
notificationReal-World Example
A 25-person B2B software company uses this to notify sales reps immediately when prospects book demos through HubSpot scheduling links. Before automation, reps checked their calendars manually and often missed prep time for same-day meetings. Now they get Slack DMs within 15 seconds of booking with prospect context and pre-meeting questions, giving them time to research and prepare.
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 | ||
| Meeting Start Time | startDateTime | |
| Meeting Title | title | |
| HubSpot Owner ID | hubspot_owner_id | |
| Prospect Email | attendees[0].email | |
3 optional fields▸ show
| Meeting Duration | duration |
| Meeting Link | meeting_link |
| Custom Questions | properties.custom_field_* |
Step-by-Step Setup
Dashboard > + > New Workflow
Create New Workflow
Start a fresh N8n workflow specifically for HubSpot meeting notifications. This workflow will trigger whenever a meeting gets scheduled and send details to the assigned rep.
- 1Click the + button in your N8n dashboard
- 2Select 'Create new workflow'
- 3Name it 'HubSpot Meeting Notifications'
Trigger Node > Webhook
Add HubSpot Webhook Trigger
Set up a webhook trigger to catch meeting booking events from HubSpot in real-time. Webhooks fire instantly when meetings are booked, unlike polling triggers that check every few minutes.
- 1Click the trigger node
- 2Search for and select 'Webhook'
- 3Choose 'GET' as the HTTP method
- 4Copy the webhook URL that appears
HubSpot Settings > Integrations > Webhooks
Configure HubSpot Webhook
Tell HubSpot to send meeting booking events to your N8n webhook. This requires admin access to your HubSpot account settings.
- 1Log into HubSpot and go to Settings > Integrations > Webhooks
- 2Click 'Create subscription'
- 3Paste your N8n webhook URL in the Target URL field
- 4Select 'Meetings' as the object type
- 5Check 'meeting.created' event type
N8n Workflow > Webhook Node > Test
Test Webhook Reception
Verify that N8n receives HubSpot meeting data correctly. Book a test meeting to see the actual data structure you'll work with.
- 1Go back to N8n and click 'Listen for calls' on the webhook node
- 2Book a test meeting in HubSpot
- 3Return to N8n and click 'Stop listening'
Workflow > + > HubSpot > Get > Meeting
Add HubSpot Node for Meeting Details
Fetch complete meeting information from HubSpot's API. The webhook only sends basic IDs — you need a separate API call to get meeting time, prospect name, and custom questions.
- 1Click the + button after your webhook node
- 2Search for and add 'HubSpot' node
- 3Select 'Get' operation
- 4Choose 'Meeting' as the resource
- 5Map 'objectId' from webhook data to 'Meeting ID' field
Workflow > + > Set
Extract Assigned Rep
Pull the HubSpot owner (assigned rep) from the meeting data to determine who gets the Slack notification. The owner ID maps to a HubSpot user.
- 1Add a 'Set' node after the HubSpot node
- 2Create a new field called 'assignedRep'
- 3Map it to '{{ $node["HubSpot"].json["hubspot_owner_id"] }}'
- 4Add another field 'prospectEmail' mapped to attendee email
Workflow > + > HubSpot > Get > Owner
Get HubSpot Owner Details
Convert the HubSpot owner ID into actual user information including email address. You'll need this email to match with Slack users later.
- 1Add another HubSpot node
- 2Select 'Get' operation and 'Owner' resource
- 3Map the assignedRep field to 'Owner ID'
- 4Test the node to see owner details
Workflow > + > Slack > Get User by Email
Find Slack User
Match the HubSpot owner's email to their Slack user ID. Slack DMs require user IDs, not email addresses.
- 1Add a Slack node after the owner lookup
- 2Choose 'Get User by Email' operation
- 3Map the owner's email to the email field
- 4Test to confirm it returns a Slack user object
Workflow > + > Set > Expression Editor
Format Meeting Message
Build the Slack DM content with meeting details, prospect info, and any pre-meeting questions. Use N8n's expression editor to combine data from multiple nodes.
- 1Add another Set node to build the message
- 2Create a field called 'slackMessage'
- 3Use this template: 'New meeting booked with {{ $node["HubSpot"].json["title"] }} on {{ $node["HubSpot"].json["startDateTime"] }}'
- 4Add prospect email and any custom meeting properties
Workflow > + > Slack > Post Message
Send Slack DM
Deliver the formatted notification as a direct message to the assigned rep. This creates a private notification that won't clutter team channels.
- 1Add a final Slack node
- 2Select 'Post Message' operation
- 3Set channel to the Slack user ID from step 8
- 4Map your formatted message to the text field
Node Settings > On Error > Continue
Add Error Handling
Set up error catching for common failure points like missing owners or Slack users not found. This prevents the workflow from breaking silently.
- 1Click the settings gear on each node
- 2Set 'On Error' to 'Continue' for non-critical nodes
- 3Add an IF node after Slack user lookup to check if user exists
- 4Add a fallback notification to a general channel if DM fails
Workflow > Save & Activate
Test Full Workflow
Run an end-to-end test by booking another meeting and verifying the complete notification flow. Check that all data appears correctly in Slack.
- 1Save the workflow and activate it
- 2Book a test meeting assigned to a known rep
- 3Check that the rep receives a Slack DM
- 4Verify all meeting details appear correctly in the message
Drop this into an n8n Code node.
Copy this template{{ DateTime.fromISO($node['HubSpot'].json['startDateTime']).toFormat('MMM d, h:mm a') }}▸ Show code
{{ DateTime.fromISO($node['HubSpot'].json['startDateTime']).toFormat('MMM d, h:mm a') }}... expand to see full code
{{ DateTime.fromISO($node['HubSpot'].json['startDateTime']).toFormat('MMM d, h:mm a') }}Scaling Beyond 200+ meetings/day+ Records
If your volume exceeds 200+ meetings/day records, apply these adjustments.
Batch Meeting Lookups
Use N8n's batch processing to fetch multiple meetings per API call instead of individual requests. HubSpot allows up to 100 meeting IDs per batch request, reducing API usage by 99%.
Queue Processing
Add a Redis or database queue between the webhook and Slack notifications. This prevents API rate limits and lets you handle bursts of simultaneous bookings without failures.
Cache Owner Data
Store HubSpot owner to Slack user mappings in N8n's global variables instead of looking up each time. Owner assignments change rarely but get looked up for every meeting notification.
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 want real-time notifications without the per-execution costs of cloud platforms. N8n's webhook triggers fire instantly when meetings are booked, and you can run unlimited executions on a self-hosted instance. The code nodes let you format meeting times and handle HubSpot's quirky API responses exactly how you want. Skip N8n if you need this running in 10 minutes — the HubSpot webhook setup takes longer than a simple Zapier connection.
This workflow uses about 6 operations per meeting booking: webhook trigger, HubSpot meeting lookup, owner lookup, Slack user lookup, message formatting, and Slack message send. At 50 meetings per month, that's 300 executions total. N8n cloud charges nothing for the first 5,000 executions, so you're free until you hit 800+ meetings monthly. Zapier would cost $20/month for the same volume since you need multiple steps. Make.com handles it free up to 1,000 operations.
Zapier wins on setup speed — their HubSpot integration includes a 'New Meeting Booked' trigger that works without webhook configuration. Make has better built-in date formatting functions, so you don't need custom expressions to make HubSpot timestamps readable. But N8n gives you complete control over the message format and error handling. You can add complex logic like different message templates for different meeting types or fallback notifications when Slack users don't exist.
HubSpot's webhook sends duplicate events about 20% of the time, especially for recurring meetings. You'll need to track processed meeting IDs to avoid double notifications. The API sometimes returns meetings without assigned owners if they were booked through certain calendar integrations — your workflow needs to handle empty owner fields gracefully. HubSpot's meeting properties API paginates custom questions, so if you have more than 100 pre-meeting form fields, you'll need N8n's loop nodes to fetch them all.
Ideas for what to build next
- →Add Meeting Reminders — Create a follow-up workflow that sends Slack reminders 15 minutes before each meeting using N8n's schedule trigger and the meeting start time.
- →Log to Google Sheets — Track all meeting notifications in a spreadsheet for sales reporting. Include prospect company, rep name, meeting time, and whether they showed up.
- →Send Prep Research — Automatically look up the prospect's company in your CRM or database and include relevant context in the Slack notification to help reps prepare better.
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