Intermediate~20 min setupCRM & EmailVerified April 2026
HubSpot logo
Gmail logo

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

polling

Use case type

notification

Real-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.

/mo
505005K50K

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

Skip the setup

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.

HubSpot Professional or Enterprise account (API access required)
Gmail account where you want to receive follow-up reminders
N8n cloud account or self-hosted N8n instance running
HubSpot API key with deals and engagements read permissions

Optional

At least 10-15 active deals in HubSpot to test with

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Deal Namedealname
Deal Stagedealstage
Last Contactednotes_last_contacted
3 optional fields▸ show
Last Modified Datehs_lastmodifieddate
Deal Ownerhubspot_owner_id
Deal Amountamount

Step-by-Step Setup

1

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.

  1. 1Click 'New Workflow' from the N8n dashboard
  2. 2Click the 'Schedule Trigger' node
  3. 3Set Trigger Mode to 'Interval'
  4. 4Enter '4' for hours (checks 6 times per day)
  5. 5Click 'Save' in the top toolbar
What you should see: You should see a gray Schedule Trigger node with '4 hours' displayed underneath it.
Common mistake — Don't set this to run every hour - HubSpot's API will throttle you after 100 requests in 10 seconds.
2

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.

  1. 1Click the '+' button to the right of Schedule Trigger
  2. 2Search for 'HubSpot' and select it
  3. 3Choose 'Deal' as the resource
  4. 4Select 'Get All' as the operation
  5. 5Click 'Create New Credential' and enter your HubSpot API key
What you should see: The HubSpot node should show 'Connected' status with a green checkmark next to your credential name.
3

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.

  1. 1Click 'Add Field' in the HubSpot node options
  2. 2Select 'Properties to Get' from the dropdown
  3. 3Enter 'dealname,dealstage,notes_last_contacted,hs_lastmodifieddate'
  4. 4Click 'Add Field' again and select 'Pipeline Stage'
  5. 5Choose 'Open' stages only (exclude Closed Won/Lost)
What you should see: The Properties field should show your 4 field names, and Pipeline Stage should show your open stage selections.
Common mistake — Don't request all properties - it slows the API response and uses more bandwidth than needed.
HubSpot
HU
trigger
filter
Deal Stage
matches criteria?
yes — passes through
no — skipped
Gmail
GM
notified
4

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.

  1. 1Click '+' after the HubSpot node
  2. 2Search for 'Code' and select it
  3. 3Choose 'Run Once for All Items' mode
  4. 4Paste the date calculation code into the editor
  5. 5Click 'Test Step' to verify the logic works
What you should see: The Code node should output only deals where the last contact date is 7+ days ago, with a new field called 'days_since_contact'.
Common mistake — Use 'Run Once for All Items' not 'Run Once for Each Item' - you're filtering the entire array, not processing individual records.
5

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.

  1. 1Click '+' after the Code node
  2. 2Select 'IF' from the Logic section
  3. 3Set Condition to 'Number'
  4. 4Enter '{{ $json.days_since_contact }}' in the Value 1 field
  5. 5Choose 'Larger Equal' and enter '7' in Value 2
What you should see: The IF node should show True/False outputs, with True leading to deals that need follow-up.
Common mistake — Use 'Larger Equal' not 'Equal' - you want to catch deals at 7+ days, not just exactly 7 days.
6

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.

  1. 1Click '+' after the True output of the IF node
  2. 2Search for 'HTML' and select it
  3. 3Choose 'Generate HTML Template'
  4. 4Enter your email subject: 'Follow up needed: {{ $json.dealname }}'
  5. 5Add body template with deal details and HubSpot link
What you should see: The HTML node should show a preview of your email template with placeholder data filled in.
Common mistake — Map fields using the variable picker — don't type field names manually. Hand-typed variable names often have invisible spacing errors that produce blank output.
7

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.

  1. 1Click '+' after the HTML node
  2. 2Search for 'Gmail' and select it
  3. 3Choose 'Send Email' as the operation
  4. 4Click 'Create New Credential'
  5. 5Select 'OAuth2' and follow the Google authorization flow
What you should see: Gmail credential should show 'Connected' status with your email address displayed.
Common mistake — Make sure you authorize with the Gmail account where you want to receive reminders - N8n will send from and to the same address.
8

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.

  1. 1Set 'To' field to your email address
  2. 2Map Subject to '{{ $('HTML').item.json.subject }}'
  3. 3Set Message to '{{ $('HTML').item.json.body }}'
  4. 4Choose 'HTML' for Message Format
  5. 5Enable 'Send to Me' if sending to yourself
What you should see: Gmail node should show all required fields mapped with green checkmarks next to each field.
Common mistake — Test with your own email first - don't accidentally spam your entire team during setup.
9

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.

  1. 1Click 'Test Workflow' in the top toolbar
  2. 2Check each node's output by clicking the execution number
  3. 3Verify the IF node filtered correctly
  4. 4Check your Gmail for the test reminder email
  5. 5Review email formatting and deal details
What you should see: You should receive a Gmail reminder for each deal that hasn't had email activity in 7+ days, with proper formatting and HubSpot links.
Common mistake — The first test might be slow if you have many deals - HubSpot's API processes 100 records at a time.
n8n
▶ Run once
executed
HubSpot
Gmail
Gmail
🔔 notification
received
10

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.

  1. 1Click the toggle switch in the top right to 'Active'
  2. 2Click 'Executions' to monitor workflow runs
  3. 3Set up error notifications in Settings > Workflow Settings
  4. 4Save the workflow with a descriptive name
  5. 5Add it to a folder for organization
What you should see: The workflow toggle should show green 'Active' status, and you should see scheduled executions in the Executions tab.
Common mistake — Check the Executions tab after 4 hours to make sure the first automated run completed successfully.

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.

1

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.

2

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.

3

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

VerdictWhy n8n for this workflow

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.

Cost

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.

Tradeoffs

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 NotificationsCreate 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 TemplatesBuild 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 SuccessAdd 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

Was this guide helpful?
HubSpot + Gmail overviewn8n profile →