Every 10 minutes
Fill a category column for new rows
New rows get a category filled in from the text in another column.
- Runs
- Every 10 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 10 minutes, for rows in my Feedback sheet with an empty Category, read the Comment, pick a category (bug, pricing, feature request, praise) and write it back.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A marketing coordinator pastes product descriptions, support messages or survey answers into a Google Sheet, and each needs a category or a short summary in the next column. For two hundred rows that is a day of reading and typing. The labels drift as the week goes on, so the same type of message gets Billing from one person and Payments from another, and any filter or pivot table built on that column gives unreliable counts.
Every 10 minutes, ClickRuntime reads the range, finds rows where the target cell is still empty and sends each row's text to ClickRuntime's built-in AI with your instructions, such as choose one of these five categories. The results are written back in one batch update, so the column fills itself as rows arrive.
It works for categories, summaries, tags, translations or any column that can be derived from another one.
What you get out of it
Labels follow one set of rules
The same instructions apply to every row, so similar items get the same category. Filters, pivot tables and charts built on the column can be trusted, which they cannot when labels were typed by different people.
Rows are done as they arrive
Because new rows are picked up every 10 minutes, the column is rarely empty for long. Reports built on it are up to date, without waiting for someone to batch through a backlog.
Hours of typing disappear
Reading and labeling two hundred rows is a day of repetitive work. Having the column filled in the background frees that time for reviewing exceptions and acting on what the data says.
Existing data is left alone
Only rows with an empty target cell are processed. Anything a person has already filled in or corrected stays as it is, so manual fixes are never overwritten by a later run.
Easy to adapt to new tasks
Changing the instruction turns the same setup from categorizing into summarizing or tagging. The same sheet can serve several different needs with only a new description of the output. Nothing needs to be rebuilt when your needs change.
How it works
What happens, step by step
Every 10 minutes ClickRuntime reads your Google Sheet for rows where the category column is still empty.
AI reads each row's text and picks one of your categories, such as bug, pricing, feature request or praise.
The categories are filled into the empty cells all at once.
Before it runs live
- Connect your Google Sheets account and pick the spreadsheets it may use
What you get
Build your own
Need it to work differently?
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
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"
CATEGORIES = ["bug", "pricing", "feature request", "praise"]
@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="Feedback!A2:C").execute().get("values", [])
todo = [(i, r[1]) for i, r in enumerate(rows, start=2) if len(r) > 1 and (len(r) < 3 or not r[2])]
report_fetched(len(todo))
if not todo:
return {"summary": "Nothing new"}
data = []
for i, comment in todo[:50]:
label = ai.generate(f"Pick one of {CATEGORIES} for this comment. Reply with the category only.\n{comment[:1000]}",
max_output_tokens=10).text.strip().lower()
data.append({"range": f"Feedback!C{i}", "values": [[label if label in CATEGORIES else "feature request"]]})
sheets.values().batchUpdate(spreadsheetId=SHEET_ID, body={"valueInputOption": "RAW", "data": data}).execute()
return {"filled": len(data)}FAQ
Common questions
How do I make sure categories are consistent?
What if a label is wrong?
Is there a limit on how many rows it handles at once?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
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.
See how it worksTag customer feedback by sentiment and topic
Every feedback row gets a sentiment and topic, and the negative ones are flagged to you.
See how it worksGet notified about new rows
Whenever a row is added to your sheet, you see it in Slack within minutes.
See how it worksKeep exploring
Set up “Fill a category column for new rows” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.