Mindket

Website leads scored, logged to Sheets and routed by Gmail

Newversion 1 · updated

Overview

An n8n workflow with a webhook for website leads. It tidies each form, scores it, logs a row in Google Sheets, emails the right inbox by priority, warns leadership about big ones and answers the form with the score.

Website leads scored, logged to Sheets and routed by Gmail is an n8n workflow in the Business category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • n8n Cloud: import the file and publish it
  • Your own n8n server: the same file and steps, with the webhook reachable from the internet
  • Google Sheets: one tab called Leads
  • Gmail: four inboxes that receive the alerts

Platform

Connects 2 apps

How it works

Trigger

A website lead arrives

It starts when your form posts a lead to the webhook. It brings:

  • The name, email and phone
  • The company and the role
  • The message, the budget and the timeline
  • The page address and the campaign

Actions

  1. Tidies the field names, scores the lead from 0 to 100 and sets a priority, a response time and an owner team
  2. Turns away a lead with no email and no phone, with a clear reply to the form
  3. Reads the title and description of a page on your own site and adds a few points
  4. Appends a full audit row to your Google Sheet
  5. Emails a hot, review or normal alert to the inbox you set, and warns leadership about big hot leads
  6. Answers the form with the score and the response time

Result

A row in your Google Sheet for every lead, an alert email in the right inbox, and a JSON reply to the form with the score, the priority and the owner team

Integrations

What you need before you start.

Google Sheets

Lead log

Appends one audit row for each lead.

NeedsA Google Sheets OAuth2 credential and a tab called Leads

Gmail

Alerts

Sends the hot, review, normal and leadership emails.

NeedsA Gmail OAuth2 credential and four addresses

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
20 steps, starting when its webhook is called
AI
No step calls an AI model
Sign-ins
Signs in to: Google Sheets and Gmail
API keys
No API key is left in the file
Step types
Mindket’s checker reads all 9 of its step types

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow is a small lead desk behind your website form. A webhook receives each lead. A Code step tidies the field names and scores the lead from 0 to 100. It also sets a priority, a response time in minutes and an owner team. A lead with no email and no phone is turned away with a clear reply. For every other lead the workflow reads the title and description of the page it came from, logs a row in Google Sheets and emails an inbox that fits the priority. A hot lead can also warn leadership. The form gets a short JSON answer with the score. Twenty nodes run it, beside two sticky notes.

Who it suits

Teams that sell to businesses and get demo or quote requests through a form, and want the urgent ones seen within minutes. Skip it if you need a real CRM or a timer that escalates when nobody answers. The score comes from keyword rules, not from an AI.

Who uses it, and how
IndustryWho uses itHow they use itExample
SoftwareSales teamsPut demo requests with a budget and a deadline at the top of the queueA team lead gets a 15-minute alert for a lead that says “demo this week”.
AgenciesFoundersSpot integration and rescue requests among general enquiriesA founder sees the automation team on a lead whose old setup is broken.
IT servicesOperations managersKeep an audit row for every enquiryA manager filters the sheet by priority at the end of the week.
ConsultingPartnersAlert leadership to enterprise or security requestsA partner gets an email about a lead that mentions procurement.

You need to know n8n’s settings: import a file, add two credentials and replace a few placeholders.

Where to use it

Any n8n that can reach Google Sheets and Gmail will run it, and your form must be able to reach the webhook.

  • n8n Cloud: import the file and publish it
  • Your own n8n server: the same file and steps, with the webhook reachable from the internet
  • Google Sheets: one tab called Leads
  • Gmail: four inboxes that receive the alerts

Setup

Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Setup is two credentials, a sheet id, four addresses and one domain.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
Google SheetsAn OAuth2 credential and a tab called Leads. Row 1 can be empty, because the step writes the column names
GmailAn OAuth2 credential, plus four addresses for hot, review, normal and leadership alerts
A web formAnything that can post JSON to a webhook
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Add a Google Sheets credential and select it in Append Lead Audit Row. Replace <YOUR_SHEET_ID> with your sheet’s id.
  3. Add a Gmail credential and select it in the four Gmail nodes.
  4. In those nodes, replace <YOUR_SALES_EMAIL>, <YOUR_OPS_EMAIL>, <YOUR_INBOX_EMAIL> and <YOUR_LEADERSHIP_EMAIL> with your own addresses.
  5. In Normalize, Score, and Assign Owner, replace <YOUR_SITE_DOMAIN> with your site’s domain, such as yourshop.com.
  6. Publish the workflow, point your form at the webhook’s production address and send three test leads: a hot one, an ordinary one and one with no contact details.

How to use it

Send each form submission to the webhook as JSON. Read the alert emails by priority and use the sheet as the record of every lead.

What to change for a different result
To changeWhere
The score, the keywords and the priority limitsThe code in Normalize, Score, and Assign Owner, and the limits in Extract Page Signals
The response timesThe sla_minutes numbers in those two Code steps
Who gets each alertThe address in each Gmail node
The alert textThe three Build nodes before the alert emails
The pages that are readThe domain in Normalize, Score, and Assign Owner

Example

A CTO of a company called Corp posts a lead from your pricing page. The message asks for a demo this week and says the budget is approved and an API integration is needed.

{"ok": true, "status": "hot", "score": 73, "sla_minutes": 15, "owner_team": "automation_ops", "dedupe_key": "ana@corp.com:corp:https://www.yoursite.com/pricing"}

The sheet gets a row, the sales inbox gets a hot alert marked with 15 minutes, and the form receives that JSON. With the domain unset, the page step adds no points.

For newcomers and experts

If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. This one receives a form, gives it points, writes it down and sends an email. Start by sending three made-up leads from a tool that can post JSON.

For experts. Two Code steps hold all the scoring, and the Gmail nodes replace the item.

Where to look closer
NodeWhat it doesWhat to know
Lead Intake WebhookReceives the POST and waits for a reply nodeAnyone who knows the address can post
Normalize, Score, and Assign OwnerMaps field names, scores, tags and sets the owner teamIt also decides which page address may be fetched
Fetch Submitted Page ContextReads the page the lead came fromIt fails quietly, and then no points are added
Extract Page SignalsReads the title and description and adds up to 8 pointsIt sets hot at 72, review at 42
Append Lead Audit RowAppends every field of the leadIt adds new columns for new fields
Route by PrioritySends hot, review and normal leads to three alertsNormal is the fallback output
Needs Executive Escalation?Checks the flag on the hot alertA Gmail reply has no lead data, so it reads the earlier node
Build Success ResponseBuilds the reply to the formIt reads the audit row for the same reason

Good to know

Anyone can post to the webhook, so a bot could fill your inboxes.

  • Fixes: the two If nodes used the old condition shape under a newer version, so they are rewritten and the Switch has full conditions. A Gmail reply replaces the lead data, so the leadership check, the leadership email and the form reply read earlier nodes and not the Gmail reply. The score from the page step now also sets the leadership flag
  • Safety: the original fetched whatever address the caller sent, which lets a stranger make your n8n request internal pages. It now fetches only addresses on your own domain, and a failed fetch no longer stops the run
  • Gmail: the alerts are plain text, since the default is HTML, and the “sent with n8n” footer is off. The four recipients are placeholders, and the webhook path is a neutral name
  • Keywords: the rules match parts of words, so “association” counts as the word SSO and escalates a lead
  • Dedupe: the key is only written to the sheet. Nothing blocks a repeat lead
  • Response time: sla_minutes is a number in the alert, and no timer escalates when it passes
  • Not run: Mindket did not run it against Google Sheets or Gmail, and the Code steps were tested only on sample leads on a local computer
  • Credentials: the JSON holds none

README and files

README

Website leads scored, logged to Sheets and routed by Gmail

An n8n workflow that works as a small lead desk behind your website form. A webhook receives each lead. The workflow
tidies the fields, scores the lead from 0 to 100 and sets a priority, a response time and an owner team. It logs a row in
Google Sheets, emails the right inbox, warns leadership about big leads and answers the form with the score.

What is inside

  • workflow.json: the workflow as n8n exports it, twenty-two nodes. Two are sticky notes. It holds no credential.
  • README.md: these notes.

What we changed from the original copy

  • Has Usable Contact? and Needs Executive Escalation? were If nodes at version 2 with conditions in the older version 1
    shape. They are now version 2.2 nodes with proper conditions. Route by Priority has full conditions too.
  • Gmail's send step returns only the sent message, not your lead. The leadership check, the leadership email and
    Build Success Response read $json after a Gmail node, so the check never fired and the form reply had empty fields.
    They now read Build Hot Lead Alert and Build Audit Row by name.
  • Extract Page Signals raised the score with the page's points, but left the leadership flag as it was. A lead that
    crossed 82 only because of the page now sets the flag.
  • Fetch Submitted Page Context requested whatever address the caller put in the form, and fell back to a third-party
    site when there was none. Anyone who knew the webhook could make your n8n request an internal address. The Code step now
    allows only addresses on <YOUR_SITE_DOMAIN> and its subdomains, the fetch no longer stops the run when it fails, and
    there is no fallback site.
  • The Gmail nodes sent HTML by default, which would run the alert lines together. They now send plain text, without the
    "sent with n8n" footer.
  • The four recipient addresses are the placeholders <YOUR_SALES_EMAIL>, <YOUR_OPS_EMAIL>, <YOUR_INBOX_EMAIL> and
    <YOUR_LEADERSHIP_EMAIL>. The sheet id is <YOUR_SHEET_ID>. The webhook path is now lead-intake.
  • The six sticky notes are replaced by two shorter ones.

Before you start

  • A Google Sheet with a tab called Leads. Row 1 can be empty: when the tab has no header, the append step writes the field
    names, and it adds a column for each new field.
  • A Gmail account you can connect to n8n with OAuth2, and four addresses for the alerts.
  • A web form, or any tool, that can post JSON to a webhook.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. Add a Google Sheets OAuth2 credential and select it in Append Lead Audit Row. Replace <YOUR_SHEET_ID> with your
    sheet's id, the part of its address between /d/ and /edit.
  3. Add a Gmail OAuth2 credential and select it in the four Gmail nodes.
  4. In those nodes, replace the four recipient placeholders with your own addresses.
  5. In Normalize, Score, and Assign Owner, replace <YOUR_SITE_DOMAIN> with your site's domain, such as yourshop.com.
  6. Publish the workflow and copy the production URL of Lead Intake Webhook. Send three test leads from a tool that can
    post JSON: a hot one, an ordinary one, and one with no email and no phone.

How a run goes

  1. Lead Intake Webhook receives a POST. The form's fields can sit in the body or at the top level.
  2. Normalize, Score, and Assign Owner maps common field names, such as work_email and job_title. It adds intent
    tags, scores the lead, sets the priority, the response time in minutes and the owner team, and builds a repeat key.
  3. Has Usable Contact? checks for an email address or a phone number of seven characters or more. Without either,
    Build Missing Contact Response and Respond Missing Contact answer with status 400, and the run ends there.
  4. Fetch Submitted Page Context reads the page the lead came from, if it is on your domain.
    Extract Page Signals takes its title and description and adds up to 8 points. It then sets the final priority.
    A score of 72 or more is hot, 42 or more is review, and the rest is normal. The response times are 15 minutes,
    240 minutes and 1,440 minutes.
  5. Build Audit Row and Append Lead Audit Row write the lead to the Leads tab.
  6. Route by Priority picks one of three alerts. Hot goes to the sales inbox, review to the ops inbox and normal to the
    general inbox. After a hot alert, Needs Executive Escalation? also emails leadership when the lead scored 82 or more or
    mentions enterprise, procurement, security, SSO or SOC2.
  7. Build Success Response and Respond Success answer the form with the status, the score, the response time, the owner
    team and the repeat key.

Change the result

  • The score, the keywords and the limits: the code in Normalize, Score, and Assign Owner, and the limits in
    Extract Page Signals.
  • Who gets each alert: the address in each Gmail node.
  • The alert text: Build Hot Lead Alert, Build Review Queue Alert and Build Normal Lead Note.
  • Which pages are read: the domain in Normalize, Score, and Assign Owner.

Good to know

  • Anyone who knows the webhook address can post to it, and each hot lead sends an email. Keep the address out of public
    code, and add a header check or a rate limit in front of it before you publish a form that strangers can reach.
  • The keyword rules match parts of words, so a word such as "association" counts as SSO and can trigger the leadership
    email. Tighten the patterns in the Code step if that matters to you.
  • The repeat key is only written to the sheet. Nothing blocks or merges a repeat lead.
  • sla_minutes is a number in the alert. No timer escalates a lead that nobody answered.
  • When <YOUR_SITE_DOMAIN> is not set, no page is fetched and the page step adds no points.
  • Each lead sends one or two emails from your Gmail account, so mind Gmail's daily sending limits.
  • Mindket did not run this workflow against Google Sheets or Gmail. These notes follow n8n's published node code, and the
    Code steps were run on sample leads on a local computer.
Files
NOTICE.md  677 B
README.md  6 KB
workflow.json  26 KB

3 files, 33 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Business

See all in Business

pplx-decider-v1.1-27b

perplexity-ai · Kit

Picks the best option for a decision from text and images, such as which team should handle a request, with a probability for each choice, for developers who b…

New

NuExtract3

numind · Kit

Reads documents as text or images and fills a JSON template with the fields you ask for, or converts the pages to Markdown. A 4B model for teams that process s…

New

Drex DLM

nace-ai · Kit

Scores yes or no, multiple choice and rating questions about a document in one pass, with a probability for every option. An 8B decision model from Nace.AI tha…

New