The moment it happens
Create a research brief on a client or property in Google Docs
Send a client name or a property address and get a Google Doc with background, recent news and talking points, built from fresh search results.
- Runs
- The moment it happens
- Apps
- Google Docs, SerpApi
- AI
- Yes, uses the built-in AI allowance
- Access
- SerpApi key; folder shared with service account
Send this to your assistant
Create a ClickRuntime automation: when I send a client name or address to this link, search the web and news with SerpApi, write a brief with background, news and talking points into a new Google Doc, and email me the link.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A commercial real estate broker meets new owners, tenants and investors every week. Before each meeting they want a page of context: who the company is, what has been in the news, what the building or area is known for. Pulling that together from search results takes an hour they rarely have, so they often go in with only what is in the CRM.
This automation produces the page. They send a name or address to the trigger link, it searches Google web and news through SerpApi, and AI writes a brief with background, recent news and talking points. It lands as a Google Doc in a shared folder, so colleagues on the deal can read it too.
What you get out of it
Walk into meetings prepared
A brief with recent news and talking points makes for a sharper conversation. Clients notice when you already understand their situation.
Shareable with the whole deal team
Briefs are Google Docs in a shared folder. Everyone involved in a deal reads the same background.
An hour of research in a minute
Searching, reading and summarising happen in one step. The time goes into preparing your pitch instead.
Sources for every fact
Each brief lists the pages it drew on. You can confirm a detail before relying on it in a negotiation.
How it works
What happens, step by step
When a name or address arrives at the automation's trigger link, ClickRuntime searches Google web results and Google News for it through SerpApi.
AI writes a brief with background, recent news and talking points from those results, and lists the sources.
A new Google Doc named after the client or property is created in your shared folder.
You get an email with a link to the brief.
Before it runs live
- Connect Google Docs
- Connect SerpApi
- Paste your automation's link into the other app's webhook settings
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 Docs and SerpApi 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_event, credentials, http, ai, notify
FOLDER_ID = "your-drive-folder-id"
def new_doc(title, text):
creds = Credentials(credentials.connection("google", "work"))
docs = build("docs", "v1", credentials=creds, cache_discovery=False)
doc_id = docs.documents().create(body={"title": title}).execute()["documentId"]
docs.documents().batchUpdate(documentId=doc_id, body={"requests": [{"insertText": {"location": {"index": 1}, "text": text}}]}).execute()
build("drive", "v3", credentials=creds, cache_discovery=False).files().update(fileId=doc_id, addParents=FOLDER_ID, fields="id").execute()
return f"https://docs.google.com/document/d/{doc_id}/edit"
@on_event
def handle(event):
name = ((event.json or {}).get("name") or "").strip()
if not name:
return {"error": "no name"}
key = credentials.secret("SERPAPI_API_KEY")
web = http.get("https://serpapi.com/search", params={"engine": "google", "q": name, "api_key": key}).json().get("organic_results", [])[:6]
news = http.get("https://serpapi.com/search", params={"engine": "google", "q": name, "tbm": "nws", "api_key": key}).json().get("news_results", [])[:6]
lines = "\n".join(f"- {r['title']}: {r.get('snippet', '')} ({r['link']})" for r in web + news)
brief = ai.generate(f"Subject: {name}\n{lines}", system="Write a brief with sections: Background, Recent news (with dates), Notable facts, Talking points, Sources.", max_output_tokens=1200).text
url = new_doc(f"Brief: {name}", brief)
notify.email_me(f"Brief ready: {name}", url)
return {"doc": url}FAQ
Common questions
What can I send it?
What does the brief cover?
Where are the briefs saved?
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
Turn a topic into a Google Doc of researched drafts
Send a topic to your trigger link and get a new Google Doc with researched drafts for your channels, such as a blog outline and social posts, in your shared folder.
See how it worksGet error alerts with a plain-English explanation
When one of your jobs or systems fails, #ops gets the error and a one-line guess at the cause, without the same error twice in an hour.
See how it worksSend your best leads to sales straight away
Every contact form message is scored, and the promising ones reach #sales while they're still warm.
See how it worksKeep exploring
Set up “Create a research brief on a client or property in Google Docs” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
