Every 30 minutes
Turn topics in a sheet into researched video scripts
Each new topic in your sheet is researched and a 30-second video script is written in the next column, ready to record.
- Runs
- Every 30 minutes
- Apps
- Google Sheets, Perplexity
- AI
- Yes, uses the built-in AI allowance
- Access
- Perplexity key; Sheets read+write
Send this to your assistant
Create a ClickRuntime automation: every 30 minutes, for each new topic in my Video ideas sheet, research it with Perplexity and write a 30-second script with a hook, three points and a call to action in the next column.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Short videos need a steady supply of scripts, and each one needs facts that are right. Researching and writing a tight 30-second script takes far longer than recording it, which is why posting schedules slip.
Creators, marketing teams and small brands use it to keep a backlog of ready-to-record scripts, grounded in current sources, in the sheet they already plan from.
What you get out of it
A backlog that fills itself
Add topics whenever ideas come up; scripts appear next to them.
Facts checked against sources
Scripts are written from current research, and the sources are kept so you can double-check claims.
Written for the format
Each script has a hook, three short points and a call to action, sized to about 30 seconds of speech.
Plan in one place
Topics, scripts and status live in the same sheet you use to schedule filming.
How it works
What happens, step by step
Every 30 minutes, ClickRuntime reads your sheet for topics that have no script yet.
Perplexity researches each topic with current sources.
AI writes a 30-second script with a hook, three points and a call to action.
The script and its sources are written into the next columns.
Before it runs live
- Connect your Google Sheets account and pick the spreadsheets it may use
- Connect Perplexity
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 and Perplexity 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, http, ai
SHEET_ID = "your-spreadsheet-id"
def sonar(prompt):
r = http.post("https://api.perplexity.ai/chat/completions", headers={"Authorization": f"Bearer {credentials.secret('PERPLEXITY_API_KEY')}"},
json={"model": "sonar", "messages": [{"role": "user", "content": prompt}]}, timeout=90).json()
return r["choices"][0]["message"]["content"], [s["url"] for s in r.get("search_results", [])]
@on_trigger
def run(event):
sheets = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")),
cache_discovery=False).spreadsheets().values()
rows = sheets.get(spreadsheetId=SHEET_ID, range="Video ideas!A2:C").execute().get("values", [])
new = [(i + 2, r[0]) for i, r in enumerate(rows) if len(r) == 1 and r[0]]
report_fetched(len(new))
if not new:
return {"new": 0}
for n, topic in new:
facts, links = sonar(f"Give the key current facts about: {topic}. Short bullets with numbers where possible.")
script = ai.generate(f"Write a 30-second video script (about 75 words) about '{topic}': a hook, three short points, "
f"a call to action. Use only these facts:\n{facts[:3000]}", max_output_tokens=250).text
sheets.update(spreadsheetId=SHEET_ID, range=f"Video ideas!B{n}:C{n}", valueInputOption="RAW",
body={"values": [[script.strip(), "\n".join(links[:5])]]}).execute()
return {"scripts": len(new)}FAQ
Common questions
Can I change the length or style?
Where are the sources kept?
Does it write captions or hashtags?
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
Write researched blog drafts for topics marked ready
Each topic you mark ready in your sheet becomes a researched blog draft, saved back to the sheet with its sources.
See how it worksResearch each new lead in your sheet
Every new prospect row gets a short profile of the person and company and a personal opening line, written back into the sheet.
See how it worksDraft a researched LinkedIn post each morning from your topic list
Each morning the next topic in your sheet is researched and turned into a LinkedIn post draft, saved in the sheet for you to edit and post.
See how it worksKeep exploring
Set up “Turn topics in a sheet into researched video scripts” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.