Opening Problem Statement
Meet Sarah, a sales manager at a mid-sized software firm. Every day, her team collects numerous leads through Google Forms, which are then logged manually into multiple systems—Google Sheets for tracking and HubSpot for CRM management. This tedious process wastes her team over two hours daily and leads to frequent missed follow-ups on hot leads due to the lack of timely alerts.
Sarah often finds herself scrambling to locate lead data, sending redundant emails, or worse, losing potential sales because the follow-ups were delayed or forgotten. This manual juggling between Sheets, email, Slack, and CRM creates inefficiencies that derail her team’s productivity and negatively impact revenue.
What This Automation Does
This n8n workflow is a powerful solution designed exactly for situations like Sarah’s. It automates the lead tracking process from Google Sheets triggered by new form submissions, pushing the data into HubSpot CRM and notifying the sales team instantly through Slack and Gmail. Here’s what it accomplishes:
- Detects new lead entries added to a Google Sheet every minute via the Google Sheets Trigger node.
- Sends formatted lead notifications to a specified Slack channel, ensuring the team receives real-time alerts.
- Emails detailed lead summaries to a designated inbox through the Gmail node for easy follow-up and record keeping.
- Enters the lead’s contact information and details directly into HubSpot CRM, eliminating double data entry.
- Monitors if leads with a ‘Hot’ interest level have been followed up on, using a conditional If node and a ‘Followed Up?’ column in the sheet.
- Automatically sends a Gmail reminder after a 3-minute wait if the ‘Followed Up?’ status is empty, prompting timely action.
With this, Sarah’s team can save several hours a day, reduce human errors, and never miss the opportunity to engage a promising lead promptly.
Prerequisites ⚙️
- A Google account with a Google Sheet connected to a Google Form where leads are submitted.
- A configured HubSpot account for CRM integration and OAuth2 credentials for authentication.
- A Slack workspace with an accessible channel and OAuth2 authorization for sending messages.
- A Gmail account authorized for sending emails featuring lead notifications and reminders.
- An active n8n account where this workflow can be imported, customized, and run.
Optionally, you can self-host n8n for full control and better scaling, such as through Hostinger hosting services.
Step-by-Step Guide to Create This Workflow
1. Set Up Google Sheets Trigger to Detect New Leads
Start in n8n by adding the Google Sheets Trigger node. Navigate to the node panel, click ‘Add Node’ → select ‘Google Sheets Trigger’ from the list. Configure it to watch your specific Google Sheet linked to the form responses.
Enter the Document ID from your Google Sheet URL, and select the exact sheet tab (such as “Form Responses 1”). Set the polling interval to “Every Minute” to check for new rows frequently.
You should see that n8n is connected and polling without errors after saving the node. If OAuth credentials are incorrect, you’ll get an authentication error here. Fix this by reauthorizing in the credentials section.
2. Send Real-Time Lead Alerts in Slack
Add the Slack node and connect it from the Google Sheets Trigger’s main output. In Slack node settings, select your channel from the dropdown or enter the channel ID manually.
Use the provided template message in the node parameters, for example:
=🎯 *New Lead Alert!*
*Name:* {{ $json['Name Surname'] }}
*Email:* {{ $json['E-Mail'] }}
*Phone:* {{ $json["Phone"] }}
*Interest Level:* {{ $json[' Interest Level '] }}
*Source:* {{ $json[' Lead Source '] }}
📝 Notes:
{{ $json['Notes '] }}This message picks dynamic content from the Google Sheets row and formats it neatly.
Upon execution, check your Slack channel to confirm the lead alert appears as expected.
3. Email Detailed Lead Notification Using Gmail
Attach the Gmail node to the same Google Sheets Trigger output. Configure it with your recipient’s email address.
Use the HTML message template from the workflow to format lead details:
=New Lead Received!
- Name: {{ $json['Name Surname'] }}
- Email: {{ $json['E-Mail'] }}
- Phone: {{ $json["Phone"] }}
- Interest Level: {{ $json[' Interest Level '] }}
- Source: {{ $json[' Lead Source '] }}
Notes: {{ $json['Notes '] }}
The subject line uses dynamic input as well, e.g., “📩 New Lead Received: {{ $json[‘Name Surname’] }}”.
After activation, test by submitting a new lead and confirm the email lands in the inbox.
4. Add Leads to HubSpot CRM Automatically
Add the HubSpot node to the flow after your Google Sheets Trigger node. Map the lead’s email, phone number, interest level, and notes fields from the sheet to HubSpot’s fields in the node parameters under “Additional Fields”.
This node authenticates via OAuth2, so ensure your HubSpot credentials are set correctly.
After firing the workflow with a new lead, check your HubSpot contacts list to verify the lead appears with correct details.
5. Implement Conditional Check for Follow-Up Status
Add an If node connected downstream from a Wait node that delays processing by 3 minutes.
In the If node settings, configure two conditions:
- Check if the “Followed Up?” column in the sheet is empty (using the ‘exists’ operation).
- Check if the “Interest Level” field contains the word “Hot”.
Only when both conditions are met (unfollowed hot leads) will the node activate the reminder.
6. Wait Node to Delay Follow-Up Reminder
Configure the Wait node to delay the flow for 3 minutes after the initial lead entry.
This helps prevent premature reminders and gives the sales team a brief window to update the follow-up status manually.
7. Send Follow-Up Reminder Email If Needed
Connect the If node’s true output to another Gmail node named Gmail_Reminder. This node sends an email to notify the sales team about leads that have not yet been followed up.
Use the message format from the node:
=🔔 The following lead has not been followed up yet! 🔥 Interest level is hot
- Name: {{ $json['Name Surname'] }}
- Email: {{ $json['E-Mail'] }}
- Interest Level: {{ $json[' Interest Level '] }}
Please follow up and update the spreadsheet ✅
The subject uses: “⏰ *Follow-up Reminder!*”.
This ensures no hot leads fall through the cracks.
8. Handle Non-Hot or Already Followed-Up Leads
For leads that either do not have a “Hot” interest level or have already been followed up, connect the If node’s false output to a No Operation node. This prevents any further unnecessary actions for those records.
Customizations ✏️
- Adjust Reminder Delay Time: In the Wait node, change the delay from 3 minutes to any preferred time (e.g., 1 day for real-world follow-ups). This helps tailor your urgency cycle.
- Modify Notification Channels: Replace the Slack node with Microsoft Teams or Discord by swapping the node type and updating credentials while preserving message templates.
- Add More Lead Qualification Fields: Extend the HubSpot node’s ‘Additional Fields’ to include company size, lead source category, or potential deal value for richer analytics.
- Customize Email Message Templates: Edit the Gmail nodes’ HTML message parameters to include branding, banners, or other personalized content.
- Track Follow-up Status Automatically: Include a Google Sheets Write node to update the “Followed Up?” column automatically after sending a reminder or on lead contact.
Troubleshooting 🔧
- Problem: “Authentication Failed” in Google Sheets Trigger or Gmail nodes.
Cause: Expired or incorrect OAuth2 credentials.
Solution: Go to n8n Credentials → Reauthorize the Google Sheets and Gmail OAuth2 accounts by removing and re-adding them. - Problem: Slack messages don’t send or appear blank.
Cause: Incorrect channel ID or OAuth token missing.
Solution: Verify Slack channel ID in Slack node parameters and reauthenticate OAuth2 credentials in n8n. - Problem: Follow-up reminders trigger for all leads, regardless of the ‘Hot’ interest level.
Cause: If node conditions not properly configured.
Solution: Check that the If node uses “exists” for “Followed Up?” and “contains” “Hot” with case sensitivity turned on exactly as shown.
Pre-Production Checklist ✅
- Verify Google Sheets Trigger is correctly connected to your specific sheet and polling every minute.
- Test Slack node by sending a sample message to the target channel.
- Send a test lead to confirm Gmail lead notification arrives properly with formatting.
- Ensure HubSpot contact is created with sample lead data.
- Confirm the If node correctly identifies leads with empty “Followed Up?” and “Hot” interest level.
- Check the reminder Gmail email triggers only after the set delay when criteria are met.
- Prepare a data backup of your Google Sheets before going live.
Deployment Guide
After finalizing the workflow, activate it in your n8n editor by toggling the active switch.
Run manual tests with sample leads to ensure each node completes successfully and notifications appear.
Regularly monitor n8n execution logs to catch errors early.
If self-hosting, consider setting up system monitoring and backups for reliability.
FAQs
- Can I use Airtable instead of Google Sheets? Yes, by swapping the Google Sheets Trigger with the Airtable node configured similarly.
- Does this workflow consume many API credits on HubSpot? No, simple contact creation and updates are low-cost API operations.
- Is my lead data secure in Slack and Gmail notifications? OAuth2 authentication ensures secure trusted connections. However, avoid including highly sensitive data in channels.
- Can this handle high lead volumes? This setup handles moderate volumes well. For thousands of leads daily, consider pagination and throttling adjustments in n8n.
Conclusion
By following this guide, you’ve transformed Sarah’s tedious and error-prone lead management into a seamless automated workflow using n8n. This system saves hours daily, reduces data entry errors, and ensures hot leads never slip through the cracks.
Next, you might build upon this foundation by adding SMS follow-up via Twilio, advanced lead scoring, or integrating with other marketing platforms like Mailchimp.
You’re now equipped to manage your leads smarter and faster—giving your sales team the edge they need to convert more deals.