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 that rates new leads in a Google Sheet. Each new row goes to OpenAI with your rules for a good lead, and the answer, qualified or not qualified, is written into the row’s Rating column.
Lead rating added to new Google Sheets rows by OpenAI 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.
New row in Google Sheets
It starts when a row is added to your sheet, checked every minute, and it needs:
The word “qualified” or “not qualified” in the Rating column of the lead’s row
What you need before you start.
Lead list
Supplies each new row and takes the rating back.
NeedsGoogle account sign-in
Lead rater
Rates each lead against your rules and gives a reason.
NeedsOpenAI API key
Checked by Mindket on 13 Nov 2026
This n8n workflow rates each new lead in a Google Sheet. It checks the sheet every minute for a new row. When one appears, it sends the lead’s name, email, business area and team size to OpenAI with your rules for a good lead. The model replies with a rating, qualified or not qualified, and a short reason. The workflow writes the rating into the row’s Rating column and leaves the reason out. Five nodes do the work, and four sticky notes explain the steps.
Sales and community teams that collect leads in a sheet or a Google Form and sort them by hand. Skip it if your leads live in a CRM, or if a wrong rating on a person would cost more than a slow manual pass.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Software | Founders | Sort sign-ups for a closed community | A founder reads the Rating column and invites the rows marked qualified. |
| Consulting | Solo consultants | Pick which form replies to answer first | A consultant calls the qualified rows first and leaves the rest for later. |
| Agencies | Account managers | Screen inbound enquiries | An account manager reads each rating next to the team size the lead gave. |
| Events | Organizers | Sort requests for a limited number of seats | An organizer filters the sheet to qualified rows before sending invites. |
You need a little n8n: import a file, add a Google and an OpenAI credential and edit one prompt.
Any n8n that can reach Google Sheets and OpenAI will run it. It starts when a row is added, so the workflow has to be published before it checks the sheet by itself.
Extract JSON reply at its textDownload saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. You need a Google account with a sheet of leads and an OpenAI key.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| A sign-in that can read and edit your sheet | |
| OpenAI | An API key |
| A sheet | A tab with the columns Timestamp, Email Address, Your name, Your business area, Your team size and Rating |
workflow.json.Check for new entries and in Update lead status. The first is a trigger credential, so n8n asks for two.Qualify leads with GPT.Add leads to the sheet, or let your form add them, and read the Rating column. A row says “qualified” or “not qualified”. Change the rules, and the next rows follow them. The workflow rates rows that arrive after you publish it.
| To change | Where |
|---|---|
| The rules for a good lead | The system message in Qualify leads with GPT |
| The details the model sees | The user message in the same node |
| The sheet and the column | Check for new entries and Update lead status |
| How often it checks | The poll time in Check for new entries |
| The model | The Model field in Qualify leads with GPT |
A founder collects join requests for a closed community in a Google Form. A new row arrives with the name “Dana Reyes”, the business area “Logistics” and a team size of 40. The model replies with the rating “qualified” and a reason that the lead runs a team of 40. The row’s Rating cell then reads “qualified”, and the reason is not saved.
If the model answers with anything besides the JSON, the parse step stops the run for that row.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. A trigger node starts a run, here a new row. A Merge node lines up two streams of items, and a Set node reshapes one item.
For experts. Check for new entries feeds both Merge and Qualify leads with GPT. Extract JSON reply runs JSON.parse on message.content, and Merge pairs each row with its reply by position. Update lead status matches on Timestamp and writes Rating only.
| Node | What it does | What to know |
|---|---|---|
Check for new entries | Polls the sheet for added rows | Checks every minute |
Qualify leads with GPT | Asks OpenAI to rate the lead | One call per row |
Extract JSON reply | Reads the reply into fields | Needs clean JSON |
Merge | Joins each row to its reply | Matches by position |
Update lead status | Writes the rating back | Matches on Timestamp |
One model line needed a swap, and only the rating goes back to the sheet.
gpt-4-turbo-preview down on 26 March 2026 and names gpt-5 or gpt-4.1, which are on the shutdown list themselves. Mindket’s copy uses gpt-6-luna, the name OpenAI gives those. A rating is a plain reply with no tools, so that model fits. The temperature setting is gone, because its page lists noneAn n8n workflow that rates new leads in a Google Sheet. It checks the sheet every minute for a new row and sends the lead's name, email, business area and team size to OpenAI with your rules for a good lead. The answer, qualified or not qualified, is written into the row's Rating column.
workflow.json: the workflow as n8n exports it, 9 nodes. Five run: a sheet trigger, the OpenAI step, a step that reads the reply, a Merge and the sheet update. Four are sticky notes. It holds no credential.README.md: these notes.Qualify leads with GPT used gpt-4-turbo-preview with a temperature of 0.3. OpenAI's deprecation page, read on 12 November 2026, shut that model down on 26 March 2026 and names gpt-5 or gpt-4.1. Both are on the same page's shutdown list, gpt-5 on 11 December 2026 and gpt-4.1 on 14 January 2027, with gpt-5.6-sol and gpt-6-luna as their replacements. The node now uses gpt-6-luna. A rating is a plain reply with no tools, so that model fits. The temperature is gone, because the model's page lists no temperature setting.Mindket read this copy against n8n's source. It was not run on a live n8n and was not tried against a real sheet.
workflow.json.Check for new entries and in Update lead status. The first is a trigger credential, so n8n asks for two.Qualify leads with GPT.Check for new entries looks at the sheet every minute and passes on each row added since the last look.Qualify leads with GPT sends two messages to the model. The system message holds your rules: a decision maker with a team counts, the bigger the team the better, and an email on a company domain counts as a second reason. One reason is enough for qualified. The model is told to think step by step and to reply qualified or not qualified in a JSON with a rating and an explanation. The user message fills in the row's name, email, business area and team size.Extract JSON reply reads the reply into a reply field.Merge pairs each row with its reply by position.Update lead status finds the row by its Timestamp and writes reply.rating into the Rating column. The explanation is not written.Qualify leads with GPT.Check for new entries and Update lead status.Check for new entries.Qualify leads with GPT.Explanation column and map reply.explanation to it in Update lead status.Extract JSON reply stops the run for that row.Timestamp, so keep that column filled for every row, as a form does.NOTICE.md 655 B README.md 4 KB workflow.json 9 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…