

How to Send HubSpot Task Reminders to Slack with N8n
Automatically notify your team in Slack when HubSpot tasks are overdue or due soon to keep reps accountable.
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 want custom reminder logic and don't mind writing basic filtering code.
Not ideal for
Teams that need pure drag-and-drop automation without any JavaScript requirements.
Sync type
scheduledUse case type
notificationReal-World Example
A 25-person B2B software sales team uses this to notify #sales-alerts when tasks are overdue and #sales for upcoming due dates. Before automation, reps manually checked their task lists 2-3 times daily and routinely missed follow-ups for 24+ hours. Now overdue tasks get immediate attention with @here notifications, and upcoming tasks get gentle reminders to help with daily planning.
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 | ||
| Task Subject | hs_task_subject | |
| Due Date | hs_timestamp | |
| Task Owner | hubspot_owner_id | |
| Task Status | hs_task_status | |
2 optional fields▸ show
| Associated Contact | associations.contact |
| Task Type | hs_task_type |
Step-by-Step Setup
Workflows > New > Add Node > Schedule Trigger
Create New N8n Workflow
Start with a fresh workflow and add a Schedule Trigger node. This will check for overdue tasks every 30 minutes instead of waiting for HubSpot webhooks that don't exist for task due dates.
- 1Click 'Add first node' in the empty workflow canvas
- 2Select 'Schedule Trigger' from the trigger list
- 3Set the interval to 'Every 30 Minutes'
- 4Click 'Execute Node' to test the trigger
Node > HubSpot > Tasks > Get All
Connect HubSpot Node
Add a HubSpot node to query tasks. You'll use the 'Get All' operation on the Tasks resource to pull active tasks with their due dates.
- 1Click the + button after the Schedule Trigger
- 2Search for 'HubSpot' and select it
- 3Choose 'Tasks' as the resource
- 4Select 'Get All' as the operation
- 5Connect your HubSpot account using API key
Node > Function > Each Item
Filter for Due Tasks
Add a Function node to filter tasks that are overdue or due within 24 hours. HubSpot returns all tasks, so you need custom logic to identify which ones need reminders.
- 1Add a Function node after HubSpot
- 2Set the function to process 'Each Item Separately'
- 3Paste the date comparison code in the function body
- 4Test with sample data to verify filtering logic
Node > Function
Check Task Assignment
Add another Function node to extract the assigned user from each task. You'll need this to mention the right person in Slack and avoid sending reminders for unassigned tasks.
- 1Add a second Function node
- 2Access the hubspot_owner_id field from task data
- 3Add logic to skip tasks with no assigned owner
- 4Map owner ID to Slack user ID using a lookup object
Node > Set > Add Field
Format Slack Message
Use a Set node to structure the reminder message. Include task name, due date, contact/company context, and mention the assigned rep using their Slack user ID.
- 1Add a Set node after the Function
- 2Create a 'message' field with formatted text
- 3Add task subject using {{ $json.subject }}
- 4Include due date with {{ $json.hs_timestamp }}
- 5Add Slack mention using <@{{ $json.slack_user_id }}>
Node > IF > Date & Time
Add Task Priority Logic
Create an IF node to handle overdue vs upcoming tasks differently. Overdue tasks get urgent formatting with red emoji, while upcoming tasks get yellow warning emoji.
- 1Add an IF node after Set
- 2Set condition to 'Date & Time'
- 3Compare task due date to current time
- 4Route overdue tasks to 'true' branch
- 5Route upcoming tasks to 'false' branch
Node > Slack > Post Message
Configure Overdue Slack Node
Add a Slack node on the 'true' branch for urgent overdue reminders. These go to a dedicated channel with @here mentions to grab immediate attention.
- 1Add Slack node to the true branch
- 2Select 'Post Message' operation
- 3Choose your #task-alerts channel
- 4Set message text with 🚨 OVERDUE prefix
- 5Enable 'Link Names' to activate @here mentions
Node > Slack > Post Message
Configure Upcoming Slack Node
Add a second Slack node on the 'false' branch for gentle upcoming reminders. These use softer language and go to the general sales channel without @here.
- 1Add Slack node to the false branch
- 2Select 'Post Message' operation
- 3Choose your #sales channel
- 4Set message text with ⚠️ DUE SOON prefix
- 5Disable 'Link Names' for gentler notifications
Node > Set > Settings > On Error
Add Error Handling
Connect both Slack nodes to an error handler that logs failed notifications. This prevents the workflow from breaking when Slack is down or API limits are hit.
- 1Add a Set node after both Slack nodes
- 2Configure it to trigger 'On Error'
- 3Set it to log the error details
- 4Add the original task data to the error log
Workflow > Execute Workflow
Test Full Workflow
Execute the complete workflow with real data to verify task filtering, message formatting, and Slack delivery. Check both overdue and upcoming scenarios.
- 1Click 'Execute Workflow' button
- 2Verify HubSpot returns task data
- 3Check that date filtering works correctly
- 4Confirm Slack messages appear in correct channels
- 5Test with both overdue and upcoming tasks
Workflow > Settings > Active
Activate Automation
Turn on the workflow to run automatically every 30 minutes. Set up monitoring to track execution history and catch any failures quickly.
- 1Toggle the 'Active' switch in workflow settings
- 2Set up email notifications for workflow failures
- 3Check the execution history after first few runs
- 4Monitor Slack channels for proper message delivery
Drop this into an n8n Code node.
JavaScript — Code Node// Filter for tasks due in next 24 hours or overdue▸ Show code
// Filter for tasks due in next 24 hours or overdue const now = new Date(); const tomorrow = new Date(now.getTime() + (24 * 60 * 60 * 1000));
... expand to see full code
// Filter for tasks due in next 24 hours or overdue
const now = new Date();
const tomorrow = new Date(now.getTime() + (24 * 60 * 60 * 1000));
const dueDate = new Date($json.hs_timestamp);
if (dueDate <= tomorrow && $json.hs_task_status !== 'COMPLETED') {
return {
...($json),
is_overdue: dueDate < now,
urgency: dueDate < now ? 'high' : 'medium'
};
}
return null; // Skip this taskScaling Beyond 100+ tasks per run+ Records
If your volume exceeds 100+ tasks per run records, apply these adjustments.
Batch API Requests
Use HubSpot's batch API endpoints instead of individual task queries. This reduces API calls from N per task to N/100 batched requests and stays under rate limits.
Filter at Query Level
Add date range filters to the HubSpot API call itself rather than pulling all tasks and filtering in N8n. Use the 'hs_timestamp' filter to only fetch tasks due within your window.
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 and don't mind writing a bit of code. The date comparison and user mapping require Function nodes that give you full JavaScript control. You can also self-host N8n for free if you're handling sensitive sales data. Skip N8n if your team wants pure drag-and-drop - Zapier's built-in date filters handle 80% of reminder scenarios without code.
This workflow uses about 20 executions per run - one for the schedule trigger, multiple for HubSpot API calls, filtering, and Slack posts. At 48 runs daily (every 30 minutes), that's 960 executions. With 10 active tasks triggering reminders, you hit roughly 1,500 executions monthly. That fits N8n's Starter plan at $20/month. Zapier would cost $50/month for the same volume since their task filtering counts as premium steps. Make sits between them at $35/month.
Make handles the date filtering better with visual calendar operators instead of code. Zapier wins on the Slack formatting with rich message builders and user lookup tables. But N8n gives you the most control over reminder logic - you can add complex rules like 'only remind on weekdays' or 'escalate if overdue by 3+ days' without hitting platform limitations. The Function nodes let you build exactly the filtering logic your sales process needs.
You'll hit HubSpot's rate limits if you check tasks too frequently. Their API allows 100 calls per 10 seconds, but tasks queries can be slow and count against your daily quota. The bigger issue is that HubSpot task timestamps are inconsistent - some come in UTC, others in account timezone. You need timezone conversion logic or your 'due today' reminders fire at midnight instead of business hours. Also watch for tasks assigned to deactivated users - they'll break your Slack user mapping and kill the workflow.
Ideas for what to build next
- →Add Deal Context to Task Reminders — Modify the workflow to pull associated deal information and include deal value and stage in reminder messages for better context.
- →Create Task Completion Notifications — Build a second workflow that celebrates when overdue tasks get completed, encouraging the team and tracking accountability improvements.
- →Escalate Persistent Overdue Tasks — Add logic to track how long tasks stay overdue and automatically notify managers when tasks hit 3+ days past due.
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