Skip to content

Every 15 minutes

Score new leads in your sheet

New leads get a score from 1 to 10 and a reason, so you know who to call first.

Runs
Every 15 minutes
Apps
Google Sheets
AI
Yes, uses the built-in AI allowance
Access
read+write

Send this to your assistant

Create a ClickRuntime automation: every 15 minutes, score new rows in my Leads sheet from 1 to 10 against my ideal customer (B2B SaaS, 20 to 200 staff, based in Europe) and write the score and reason back.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A B2B sales team collects leads from webinars, downloads and trade shows in one Google Sheet: name, company, role, company size, message. Reps do not know where to start, so they contact leads in the order they were added, and a VP of operations at a 500-person company waits behind a student asking for a free trial. Without a consistent score, forecasting how many real opportunities came out of an event is a rough estimate.

Every 15 minutes, ClickRuntime finds rows without a score and asks ClickRuntime's built-in AI to rate each lead against your criteria, for instance company size, job title and what they wrote. The score, a qualified or not qualified label and a one-line reason are written to the row, and hot leads are posted to Slack.

Sales development teams, agencies and founders selling to businesses use it to put the best leads first.

What you get out of it

  • Reps start with the best leads

    A score and a reason beside each row point reps to the decision makers at suitable companies. Time goes to the conversations most likely to become deals. Fewer promising prospects go cold in the queue.

  • Hot leads are contacted in minutes

    A Slack post for high scores lets someone call while the lead's interest is fresh. Responding within the first hour makes a meeting much more likely than responding the next day.

  • The reason is written next to the score

    Each score comes with a short explanation, such as VP title at a 500-person logistics company. Reps trust a rating they can understand, and managers can check the logic and adjust it.

  • Criteria are applied consistently

    The same rubric scores every lead, whoever entered it and whenever. Differences in how individual reps judge leads no longer decide which prospects get attention. Fairness across the team improves, and so does forecasting.

  • Event results measured honestly

    With scores on every row, you can compare how many qualified leads each webinar or trade show produced. That informs where to spend next quarter's budget, using something better than a headcount of sign-ups.

How it works

What happens, step by step

  1. Every 15 minutes ClickRuntime reads your leads Google Sheet.

  2. It picks the rows that don't have a score yet.

  3. AI compares each lead with your ideal customer, such as business software companies of 20 to 200 staff in Europe, and gives a score from 1 to 10 with a reason.

  4. The score and reason are written back into the lead's row.

Before it runs live

  • Connect your Google Sheets account and pick the spreadsheets it may use

What you get

RunsEvery 15 minutes
Score new leads in your sheettoday, 9:00Succeeded
Google Sheets · LeadsAcme Cloud | 85 staff | Germany | Score 9 | B2B SaaS in the target size range and region.

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Act only on the items that match your own rules, and skip the rest
  • Change what the AI looks for, or how it writes the result
  • Add another app, for example also send it to Slack
  • Combine it with other Google Sheets steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
ai_qualify_and_score_new_leads_in_the_sheet.pyexample
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, report_fetched, credentials, ai

SHEET_ID = "your-spreadsheet-id"
ICP = "B2B SaaS, 20 to 200 staff, based in Europe"
SCHEMA = {"type": "object", "properties": {"score": {"type": "integer"}, "reason": {"type": "string"}}, "required": ["score", "reason"]}

@on_trigger
def run(event):
    sheets = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).spreadsheets()
    rows = sheets.values().get(spreadsheetId=SHEET_ID, range="Leads!A2:G").execute().get("values", [])
    todo = [(i, r) for i, r in enumerate(rows, start=2) if len(r) < 6 or not r[5]]
    report_fetched(len(todo))
    if not todo:
        return {"summary": "Nothing new"}
    for i, row in todo[:25]:
        name, email, company, size, country = (row + [""] * 5)[:5]
        d = ai.generate(f"Score 1-10 against this ideal customer: {ICP}.\nCompany: {company}, staff: {size}, country: {country}",
                        json_schema=SCHEMA, max_output_tokens=80).json
        sheets.values().update(spreadsheetId=SHEET_ID, range=f"Leads!F{i}:G{i}", valueInputOption="RAW",
                               body={"values": [[d["score"], d["reason"]]]}).execute()
    return {"scored": min(len(todo), 25)}

FAQ

Common questions

What criteria does the AI use to score?
The ones you describe: ideal company size, industries, job titles, countries and signals in the message such as a budget or timeline. The clearer your description of a great lead, the more useful the score will be.
Should the AI decide who gets a sales call?
Treat the score as a way to order work, not a final decision. Reps should look at the reason, and borderline cases are worth a quick human review. Compare scores with real outcomes after a month and adjust the criteria.
What happens to leads that are not qualified?
They stay in the sheet with a not qualified label and the reason, so nothing is thrown away. You can send them to a newsletter or revisit them later, and they can be rescored if your criteria change.
What permissions does it need?
read+write. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Score new leads in your sheet” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.