

How to Send HubSpot Deal Follow-up Reminders to Gmail with N8n
Automatically send yourself a Gmail reminder when a HubSpot deal has no email activity for 7 days.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
HubSpot Gmail extension exists as a native integration, but it requires manual setup per user and doesn't create contacts automatically. This guide uses an automation platform for full control. View native option →
Best for
Sales teams who want customizable follow-up logic and don't mind writing basic JavaScript code.
Not ideal for
Teams who need real-time notifications or want zero-code setup without technical customization.
Sync type
pollingUse case type
notificationReal-World Example
A 12-person B2B software sales team uses this to catch deals that slip through the cracks during busy periods. Before automation, their sales manager manually reviewed 200+ open deals weekly to find stale opportunities, spending 3-4 hours per week on administrative follow-up tracking. Now they get automatic Gmail reminders and have increased deal follow-up consistency by 85%.
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.
Optional
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Deal Name | dealname | |
| Deal Stage | dealstage | |
| Last Contacted | notes_last_contacted | |
3 optional fields▸ show
| Last Modified Date | hs_lastmodifieddate |
| Deal Owner | hubspot_owner_id |
| Deal Amount | amount |
Step-by-Step Setup
Workflows > New > Schedule Trigger
Create New N8n Workflow
Start a fresh workflow and set up the polling schedule. This automation needs to check HubSpot regularly for deals that haven't had email activity in exactly 7 days.
- 1Click 'New Workflow' from the N8n dashboard
- 2Click the 'Schedule Trigger' node
- 3Set Trigger Mode to 'Interval'
- 4Enter '4' for hours (checks 6 times per day)
- 5Click 'Save' in the top toolbar
Nodes > HubSpot > Deal > Get All
Connect HubSpot Node
Add the HubSpot node to fetch all open deals. You'll filter for stale deals later, but first you need to pull the complete dataset from HubSpot's CRM.
- 1Click the '+' button to the right of Schedule Trigger
- 2Search for 'HubSpot' and select it
- 3Choose 'Deal' as the resource
- 4Select 'Get All' as the operation
- 5Click 'Create New Credential' and enter your HubSpot API key
HubSpot Node > Additional Fields > Properties
Configure Deal Filters
Set up HubSpot to only return open deals and include the engagement data you need. This reduces API calls and gives you access to email activity timestamps.
- 1Click 'Add Field' in the HubSpot node options
- 2Select 'Properties to Get' from the dropdown
- 3Enter 'dealname,dealstage,notes_last_contacted,hs_lastmodifieddate'
- 4Click 'Add Field' again and select 'Pipeline Stage'
- 5Choose 'Open' stages only (exclude Closed Won/Lost)
Nodes > Code > Run Once for All Items
Add Date Calculation Node
Use a Code node to identify deals with no email activity in exactly 7 days. This requires JavaScript to compare the notes_last_contacted timestamp with today's date.
- 1Click '+' after the HubSpot node
- 2Search for 'Code' and select it
- 3Choose 'Run Once for All Items' mode
- 4Paste the date calculation code into the editor
- 5Click 'Test Step' to verify the logic works
Nodes > Logic > IF > Number Condition
Filter for 7-Day Threshold
Add an IF node to only proceed with deals that meet your exact follow-up criteria. This prevents duplicate reminders and ensures you only get notified at the right time.
- 1Click '+' after the Code node
- 2Select 'IF' from the Logic section
- 3Set Condition to 'Number'
- 4Enter '{{ $json.days_since_contact }}' in the Value 1 field
- 5Choose 'Larger Equal' and enter '7' in Value 2
Nodes > Data Transformation > HTML > Generate Template
Format Email Content
Create the reminder email content with deal details. Use N8n's template system to pull deal name, stage, and last contact date into a readable format.
- 1Click '+' after the True output of the IF node
- 2Search for 'HTML' and select it
- 3Choose 'Generate HTML Template'
- 4Enter your email subject: 'Follow up needed: {{ $json.dealname }}'
- 5Add body template with deal details and HubSpot link
Nodes > Gmail > Send Email > OAuth2 Credential
Connect Gmail Credentials
Set up Gmail authentication to send reminder emails. N8n uses OAuth2 for Gmail, which requires a one-time authorization flow through Google.
- 1Click '+' after the HTML node
- 2Search for 'Gmail' and select it
- 3Choose 'Send Email' as the operation
- 4Click 'Create New Credential'
- 5Select 'OAuth2' and follow the Google authorization flow
Gmail Node > Send Configuration
Configure Gmail Send Settings
Map the HTML template output to Gmail's send fields. Set up the recipient, subject, and body content to create a useful follow-up reminder.
- 1Set 'To' field to your email address
- 2Map Subject to '{{ $('HTML').item.json.subject }}'
- 3Set Message to '{{ $('HTML').item.json.body }}'
- 4Choose 'HTML' for Message Format
- 5Enable 'Send to Me' if sending to yourself
Workflow > Test Workflow
Test the Complete Workflow
Run a full test to verify the workflow identifies stale deals and sends properly formatted reminder emails. This catches any data mapping issues before going live.
- 1Click 'Test Workflow' in the top toolbar
- 2Check each node's output by clicking the execution number
- 3Verify the IF node filtered correctly
- 4Check your Gmail for the test reminder email
- 5Review email formatting and deal details
Workflow > Active Toggle > Executions
Activate and Monitor
Turn on the workflow and set up basic monitoring. N8n will now check every 4 hours for deals needing follow-up and send you Gmail reminders automatically.
- 1Click the toggle switch in the top right to 'Active'
- 2Click 'Executions' to monitor workflow runs
- 3Set up error notifications in Settings > Workflow Settings
- 4Save the workflow with a descriptive name
- 5Add it to a folder for organization
Drop this into an n8n Code node.
JavaScript — Code Node// Filter for deals needing follow-up and add priority scoring▸ Show code
// Filter for deals needing follow-up and add priority scoring
const now = new Date();
const staleDeals = items.filter(item => {... expand to see full code
// Filter for deals needing follow-up and add priority scoring
const now = new Date();
const staleDeals = items.filter(item => {
if (!item.json.notes_last_contacted) return false;
const lastContact = new Date(item.json.notes_last_contacted);
const daysDiff = Math.floor((now - lastContact) / (1000 * 60 * 60 * 24));
item.json.days_stale = daysDiff;
item.json.priority = item.json.amount > 10000 ? 'High' : 'Normal';
return daysDiff >= 7;
});
return staleDeals.sort((a, b) => b.json.amount - a.json.amount);Scaling Beyond 200+ open deals+ Records
If your volume exceeds 200+ open deals records, apply these adjustments.
Batch Email Processing
Modify the Gmail node to send one digest email with all stale deals instead of individual emails per deal. Use the HTML node to create a table format with all deals needing follow-up.
Add Deal Prioritization
Sort deals by amount or deal score in the Code node so high-value opportunities appear first in your reminder. This helps you focus on the most important follow-ups when you have many stale deals.
Implement Smart Filtering
Add logic to exclude deals in specific stages like 'Waiting for Client Response' where follow-up isn't needed. Create a custom HubSpot property to mark deals that should skip automatic follow-up reminders.
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 full control over the reminder logic and don't mind writing a bit of JavaScript. The Code node lets you implement complex date calculations and custom filtering that pre-built automation platforms can't handle. You can easily modify the 7-day threshold, add different reminder intervals, or exclude weekends from the calculation. Skip N8n if you need this running immediately - Zapier's HubSpot integration updates faster and doesn't require custom code.
This workflow uses about 6 executions per run (one per node that processes data). At 6 runs per day, that's 1,080 executions monthly. N8n's Starter plan includes 5,000 executions for $20/month, so you're well under the limit. Zapier would need their Professional plan at $49/month for the Code step and multiple HubSpot lookups. Make could handle this for $29/month but maxes out at 1,000 operations. N8n is the cheapest option here by $9-29 monthly.
Make beats N8n on HubSpot integration depth - their 'Deal Updated' trigger includes engagement data automatically, while N8n requires you to manually specify properties to fetch. Zapier's HubSpot triggers fire within 1-2 minutes vs N8n's 4-hour polling schedule, so you get faster notifications. But N8n wins on flexibility - you can implement complex business logic in the Code node that would require multiple scenarios in Make or premium Code steps in Zapier.
HubSpot's notes_last_contacted field only updates when emails are sent through HubSpot or logged manually - external Gmail conversations don't count unless you install the HubSpot Gmail extension. The API sometimes returns this field as null even for contacted deals, which breaks the date calculation. N8n's polling schedule means you might get reminders at odd hours - add a time filter in the Code node to only send reminders during business hours.
Ideas for what to build next
- →Add Slack Notifications — Create a parallel branch that posts stale deals to a #sales-follow-up Slack channel so your whole team sees opportunities needing attention.
- →Create Follow-up Templates — Build a second workflow that suggests email templates based on deal stage and days since last contact, making it easier to send personalized follow-ups.
- →Track Follow-up Success — Add a Google Sheets logging node to track which deals get followed up on and measure how this automation impacts your close rates over time.
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