This workflow follows the Gmail → Googlesheetstrigger recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "hmgR6wOkuqrn5y4Y",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "N_01_Simple_Lead_Tracker_Automation_v4",
"tags": [],
"nodes": [
{
"id": "a69ff573-797d-4a77-a831-940168046448",
"name": "Google Sheets Trigger",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
-720,
300
],
"parameters": {
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1001688681,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/16xNeIG_QLUtOoFulbWemXrUAOKwxaHaGU7DywJLDiRk/edit#gid=1001688681",
"cachedResultName": "Form Responses 1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "16xNeIG_QLUtOoFulbWemXrUAOKwxaHaGU7DywJLDiRk",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/16xNeIG_QLUtOoFulbWemXrUAOKwxaHaGU7DywJLDiRk/edit?usp=drivesdk",
"cachedResultName": "Simple Lead Tracker (Responses)"
}
},
"credentials": {
"googleSheetsTriggerOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "ce9845a5-09da-44f9-b0c4-da380cf828d4",
"name": "Slack",
"type": "n8n-nodes-base.slack",
"position": [
20,
120
],
"parameters": {
"text": "=\ud83c\udfaf *New Lead Alert!*\n\n*Name:* {{ $json['Name Surname'] }}\n*Email:* {{ $json['E-Mail'] }}\n*Phone:* {{$json[\"Phone\"]}}\n*Interest Level:* {{ $json[' Interest Level '] }}\n*Source:* {{ $json[' Lead Source '] }}\n\n\ud83d\udcdd Notes:\n{{ $json['Notes '] }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C08FJNLQP5G",
"cachedResultName": "test-automation-workflow"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
},
{
"id": "1c2b7aa2-6d30-4b88-ae36-f138fd98f02d",
"name": "Gmail",
"type": "n8n-nodes-base.gmail",
"position": [
20,
320
],
"parameters": {
"sendTo": "dataplusminuss@gmail.com",
"message": "=<h3>New Lead Received!</h3> \n<ul> \n<li><strong>Name:</strong> {{ $json['Name Surname'] }}</li> \n<li><strong>Email:</strong> {{ $json['E-Mail'] }}</li> \n<li><strong>Phone:</strong> {{$json[\"Phone\"]}}</li> \n<li><strong>Interest Level:</strong> {{ $json[' Interest Level '] }}</li> \n<li><strong>Source:</strong> {{ $json[' Lead Source '] }}</li> \n</ul> \n<p><strong>Notes:</strong> {{ $json['Notes '] }}</p>",
"options": {},
"subject": "=\ud83d\udce9 New Lead Received: {{ $json['Name Surname'] }}"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "4fa70ae1-efe9-4da4-8753-aff1540b3420",
"name": "HubSpot",
"type": "n8n-nodes-base.hubspot",
"position": [
-340,
80
],
"parameters": {
"email": "={{ $json['E-Mail'] }}",
"options": {},
"authentication": "oAuth2",
"additionalFields": {
"message": "={{ $json['Notes '] }}",
"salutation": "={{ $json[' Lead Source '] }}",
"phoneNumber": "={{ $json.Phone }}",
"relationshipStatus": "={{ $json[' Interest Level '] }}"
}
},
"credentials": {
"hubspotOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "0cfe0651-5558-420d-8bc2-4ce49f9d2d9c",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
220,
620
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3d4b99e0-4b1e-4dd1-8775-7e89042c43a8",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json['Followed Up?'] }}",
"rightValue": ""
},
{
"id": "fe99deab-c331-46a2-8649-233600fcd36f",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json[' Interest Level '] }}",
"rightValue": "Hot"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "df1270cb-63e3-48a1-8334-a66b9d6b815e",
"name": "No Operation, do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
440,
720
],
"parameters": {},
"typeVersion": 1
},
{
"id": "1999928c-954a-4a68-b4b3-8cfc649ff575",
"name": "Gmail_Reminder",
"type": "n8n-nodes-base.gmail",
"position": [
440,
520
],
"parameters": {
"sendTo": "dataplusminuss@gmail.com",
"message": "=<h3>\ud83d\udd14 The following lead has not been followed up yet! \ud83d\udd25 Interest level is hot </h3>\n<ul>\n <li><strong>Name:</strong> {{ $json['Name Surname'] }}</li>\n <li><strong>Email:</strong> {{ $json['E-Mail'] }}</li>\n <li><strong>Interest Level:</strong> {{ $json[' Interest Level '] }}</li>\n</ul>\n<p><strong>Please follow up and update the spreadsheet \u2705</p>\n\n",
"options": {
"senderName": "N_01_tester"
},
"subject": "\u23f0 *Follow-up Reminder!*"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "b0700cc4-06c7-4a97-8936-d1ff69b928e3",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
0,
620
],
"parameters": {
"unit": "minutes",
"amount": 3
},
"typeVersion": 1.1
},
{
"id": "08a15132-2abd-4efb-ae76-bb76903c0ede",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1040,
120
],
"parameters": {
"color": 6,
"height": 460,
"content": "# Lead Submission\n\n## A user submits a lead form via [Google Forms](https://forms.gle/VLhKeRySSWNKo2aR8).\n\n"
},
"typeVersion": 1
},
{
"id": "c46e9941-82df-4ef5-82ba-d2c83b9342df",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-780,
460
],
"parameters": {
"color": 4,
"height": 320,
"content": "# Automation Trigger (n8n)\n\n## n8n detects the new entry in the sheet and initiates the automation workflow."
},
"typeVersion": 1
},
{
"id": "7a47c74c-fb92-4752-a5bd-69af3c997cde",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-780,
-20
],
"parameters": {
"color": 4,
"height": 280,
"content": "# Data Logging\n## Responses are automatically recorded into a connected [Google Sheet](https://docs.google.com/spreadsheets/d/16xNeIG_QLUtOoFulbWemXrUAOKwxaHaGU7DywJLDiRk/edit?usp=sharing)."
},
"typeVersion": 1
},
{
"id": "2f679e32-ae49-4572-9f71-d9fc6d6bbf58",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-420,
-20
],
"parameters": {
"width": 260,
"height": 780,
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n# CRM Integration\n\n## The lead is automatically added to HubSpot with relevant fields (name, email, phone, interest level, etc.)."
},
"typeVersion": 1
},
{
"id": "ad2d923c-01de-4e9b-a8d7-ed1b4fcedf84",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-20,
-160
],
"parameters": {
"color": 3,
"width": 460,
"height": 640,
"content": "# Notifications\n\n## Simultaneous alerts are sent via:\n\n## * Slack (to a specific channel)\n\n## * Gmail (to a designated inbox)"
},
"typeVersion": 1
},
{
"id": "1750c844-5400-4334-a0f1-cf48b1b6baf6",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
460
],
"parameters": {
"color": 5,
"width": 260,
"height": 420,
"content": "# Follow-up Tracking\n\n## A \u201cFollowed Up?\u201d column in Google Sheets is used to track whether a lead has been contacted.\n\n\n### :warning: If empty after X days (e.g., 3), n8n sends a reminder notification."
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "fe8e49f9-d7dc-47c5-bdfd-814f218e66f9",
"connections": {
"If": {
"main": [
[
{
"node": "Gmail_Reminder",
"type": "main",
"index": 0
}
],
[
{
"node": "No Operation, do nothing",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets Trigger": {
"main": [
[
{
"node": "Slack",
"type": "main",
"index": 0
},
{
"node": "Gmail",
"type": "main",
"index": 0
},
{
"node": "HubSpot",
"type": "main",
"index": 0
},
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
gmailOAuth2googleSheetsTriggerOAuth2ApihubspotOAuth2ApislackOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
This workflow streamlines lead tracking by automatically capturing new entries in a Google Sheet and routing them to your sales team for swift action, ensuring no potential customer slips through the cracks. It's ideal for small businesses or marketing teams handling inbound leads via forms or spreadsheets, without needing complex CRM setups. The key step involves checking lead status in HubSpot; if it's new, it sends a Slack notification and Gmail reminder, while established leads simply update the sheet—leveraging seamless integrations with Google Sheets, Slack, Gmail, and HubSpot to keep everyone aligned and responsive.
Use this when you receive leads sporadically through web forms dumped into Google Sheets and want real-time alerts without manual monitoring, especially for teams relying on Slack for quick communication. Avoid it for high-volume lead flows exceeding thousands daily, as it could overwhelm notifications; opt for more robust enterprise tools like full HubSpot automations instead. Common variations include adding email attachments from Gmail for lead details or extending the wait node to schedule follow-ups at set intervals.
About this workflow
N_01_Simple_Lead_Tracker_Automation_v4. Uses googleSheetsTrigger, slack, gmail, hubspot. Event-driven trigger; 14 nodes.
Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Fluidflow Licensing Framework. Uses httpRequest, xero, googleSheetsTrigger, slack. Event-driven trigger; 25 nodes.
Hiring teams often struggle with document follow-ups, offer letter generation, and stakeholder communication. Manual checks, email back-and-forth, and missing files slow down hiring and create chaos d
Brand Asset Folder Automation & Client Notification. Uses googleDrive, slack, gmail, googleSheetsTrigger. Event-driven trigger; 8 nodes.
This template is ideal for HR teams, startup founders, operations leads, remote-first companies, and freelancers managing onboarding manually or across multiple tools.
Automatically respond to Google Form entries submitted via Google Sheets. This workflow notifies your Slack team, sends a personalized Gmail response to the user, and adds the user to Google Contacts