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…
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.
A website lead arrives
It starts when your form posts a lead to the webhook. It brings:
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
What you need before you start.
Lead log
Appends one audit row for each lead.
NeedsA Google Sheets OAuth2 credential and a tab called Leads
Alerts
Sends the hot, review, normal and leadership emails.
NeedsA Gmail OAuth2 credential and four addresses
Checked by Mindket on 13 Nov 2026
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.
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.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Software | Sales teams | Put demo requests with a budget and a deadline at the top of the queue | A team lead gets a 15-minute alert for a lead that says “demo this week”. |
| Agencies | Founders | Spot integration and rescue requests among general enquiries | A founder sees the automation team on a lead whose old setup is broken. |
| IT services | Operations managers | Keep an audit row for every enquiry | A manager filters the sheet by priority at the end of the week. |
| Consulting | Partners | Alert leadership to enterprise or security requests | A 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.
Any n8n that can reach Google Sheets and Gmail will run it, and your form must be able to reach the webhook.
LeadsDownload 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.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| Google Sheets | An OAuth2 credential and a tab called Leads. Row 1 can be empty, because the step writes the column names |
| Gmail | An OAuth2 credential, plus four addresses for hot, review, normal and leadership alerts |
| A web form | Anything that can post JSON to a webhook |
workflow.json.Append Lead Audit Row. Replace <YOUR_SHEET_ID> with your sheet’s id.<YOUR_SALES_EMAIL>, <YOUR_OPS_EMAIL>, <YOUR_INBOX_EMAIL> and <YOUR_LEADERSHIP_EMAIL> with your own addresses.Normalize, Score, and Assign Owner, replace <YOUR_SITE_DOMAIN> with your site’s domain, such as yourshop.com.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.
| To change | Where |
|---|---|
| The score, the keywords and the priority limits | The code in Normalize, Score, and Assign Owner, and the limits in Extract Page Signals |
| The response times | The sla_minutes numbers in those two Code steps |
| Who gets each alert | The address in each Gmail node |
| The alert text | The three Build nodes before the alert emails |
| The pages that are read | The domain in Normalize, Score, and Assign Owner |
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.
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.
| Node | What it does | What to know |
|---|---|---|
Lead Intake Webhook | Receives the POST and waits for a reply node | Anyone who knows the address can post |
Normalize, Score, and Assign Owner | Maps field names, scores, tags and sets the owner team | It also decides which page address may be fetched |
Fetch Submitted Page Context | Reads the page the lead came from | It fails quietly, and then no points are added |
Extract Page Signals | Reads the title and description and adds up to 8 points | It sets hot at 72, review at 42 |
Append Lead Audit Row | Appends every field of the lead | It adds new columns for new fields |
Route by Priority | Sends hot, review and normal leads to three alerts | Normal is the fallback output |
Needs Executive Escalation? | Checks the flag on the hot alert | A Gmail reply has no lead data, so it reads the earlier node |
Build Success Response | Builds the reply to the form | It reads the audit row for the same reason |
Anyone can post to the webhook, so a bot could fill your inboxes.
sla_minutes is a number in the alert, and no timer escalates when it passesAn 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.
workflow.json: the workflow as n8n exports it, twenty-two nodes. Two are sticky notes. It holds no credential.README.md: these notes.Has Usable Contact? and Needs Executive Escalation? were If nodes at version 2 with conditions in the older version 1Route by Priority has full conditions too.Build Success Response read $json after a Gmail node, so the check never fired and the form reply had empty fields.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 thatFetch Submitted Page Context requested whatever address the caller put in the form, and fell back to a third-party<YOUR_SITE_DOMAIN> and its subdomains, the fetch no longer stops the run when it fails, and<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.Leads. Row 1 can be empty: when the tab has no header, the append step writes the fieldworkflow.json.Append Lead Audit Row. Replace <YOUR_SHEET_ID> with your/d/ and /edit.Normalize, Score, and Assign Owner, replace <YOUR_SITE_DOMAIN> with your site's domain, such as yourshop.com.Lead Intake Webhook. Send three test leads from a tool that canLead Intake Webhook receives a POST. The form's fields can sit in the body or at the top level.Normalize, Score, and Assign Owner maps common field names, such as work_email and job_title. It adds intentHas 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.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.Build Audit Row and Append Lead Audit Row write the lead to the Leads tab.Route by Priority picks one of three alerts. Hot goes to the sales inbox, review to the ops inbox and normal to theNeeds Executive Escalation? also emails leadership when the lead scored 82 or more orBuild Success Response and Respond Success answer the form with the status, the score, the response time, the ownerNormalize, Score, and Assign Owner, and the limits inExtract Page Signals.Build Hot Lead Alert, Build Review Queue Alert and Build Normal Lead Note.Normalize, Score, and Assign Owner.sla_minutes is a number in the alert. No timer escalates a lead that nobody answered.<YOUR_SITE_DOMAIN> is not set, no page is fetched and the page step adds no points.NOTICE.md 677 B README.md 6 KB workflow.json 26 KB
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…
Qwen · Kit
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…
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…
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…
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…
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…