AutomationFlowsEmail & Gmail › Track Leads from Google Sheets to HubSpot

Track Leads from Google Sheets to HubSpot

Original n8n title: N 01 Simple Lead Tracker Automation V4

N_01_Simple_Lead_Tracker_Automation_v4. Uses googleSheetsTrigger, slack, gmail, hubspot. Event-driven trigger; 14 nodes.

Event trigger★★★★☆ complexity14 nodesGoogle Sheets TriggerSlackGmailHubSpot
Email & Gmail Trigger: Event Nodes: 14 Complexity: ★★★★☆ Added:

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 →

Download .json
{
  "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![Google Form](https://feedbacklabs.org/wp-content/uploads/2023/10/GoogleForms_logo-1-1024x695.png#full-width)"
      },
      "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.

Pro

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 →

More Email & Gmail workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Email & Gmail

Fluidflow Licensing Framework. Uses httpRequest, xero, googleSheetsTrigger, slack. Event-driven trigger; 25 nodes.

HTTP Request, Xero, Google Sheets Trigger +4
Email & Gmail

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

Google Sheets Trigger, HTTP Request, Slack +3
Email & Gmail

Brand Asset Folder Automation & Client Notification. Uses googleDrive, slack, gmail, googleSheetsTrigger. Event-driven trigger; 8 nodes.

Google Drive, Slack, Gmail +1
Email & Gmail

This template is ideal for HR teams, startup founders, operations leads, remote-first companies, and freelancers managing onboarding manually or across multiple tools.

Google Sheets Trigger, Jira, HubSpot Trigger +7
Email & Gmail

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

Gmail, Slack, Google Sheets Trigger +1