Weekly
Write a weekly competitor report into Google Docs and share it in Slack
Every Monday a research report on your competitors is written into a Google Doc, with a short summary and link posted in Slack.
- Runs
- Weekly
- Apps
- Google Docs, Slack
- AI
- Yes, uses the built-in AI allowance
- Access
- service account; chat:write
Send this to your assistant
Create a ClickRuntime automation: every Monday, check my three competitors' blogs and news pages, write a report into a new Google Doc and post a summary with the link to #strategy in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A product marketing manager is supposed to keep the team informed about competitors. In practice, checking their blogs, changelogs and press pages happens only before a big meeting, and the team hears about a competitor's new pricing from a customer first.
A weekly report written into a Google Doc gives the team a steady, dated record of what competitors are doing. The Slack summary means people actually see it, and the doc is there for anyone who wants the detail.
What you get out of it
No more hearing it from customers
Pricing changes, launches and new hires show up in the following Monday's report. Sales can prepare answers before prospects bring them up.
A dated history of the market
One doc per week builds into an archive. When planning, you can look back and see how a competitor's messaging changed over a quarter.
Everyone gets the short version
Most people only need three lines in Slack. Those who need depth click through to the full report, so one piece of work serves both.
Research happens even in busy weeks
Competitive research is the first thing dropped when the team is busy. Running on a schedule means it keeps happening during launches and holidays.
How it works
What happens, step by step
Every Monday morning, ClickRuntime visits the competitor pages you listed.
It collects the text from each page.
AI writes a report covering launches, pricing, messaging and anything else notable, plus a three-line summary.
The report is saved as a new Google Doc, and the summary with a link is posted to your Slack channel.
Before it runs live
- Connect Google Docs
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
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
- Run it at a different time, more or less often, or only on weekdays
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Google Sheets
- Combine it with other Google Docs and Slack steps into one automation
Under the hood
The code that runs this automation
from datetime import date
from bs4 import BeautifulSoup
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from slack_sdk import WebClient
from clickruntime import on_trigger, credentials, http, ai
SOURCES = {"Northwind": "https://northwind.example.com/blog", "Contoso": "https://contoso.example.com/news",
"Fabrikam": "https://fabrikam.example.com/changelog"}
@on_trigger
def run(event):
notes = []
for name, url in SOURCES.items():
text = BeautifulSoup(http.get(url).text, "html.parser").get_text(" ", strip=True)
notes.append(f"## {name} ({url})\n{text[:4000]}")
report = ai.generate("Write a competitor report: launches, pricing, messaging, hiring. End with a 3-line summary after 'SUMMARY:'.\n"
+ "\n\n".join(notes), max_output_tokens=1500).text
body, _, summary = report.partition("SUMMARY:")
docs = build("docs", "v1", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
doc = docs.documents().create(body={"title": f"Competitor report {date.today()}"}).execute()
docs.documents().batchUpdate(documentId=doc["documentId"], body={"requests": [{"insertText": {"location": {"index": 1}, "text": body}}]}).execute()
link = f"https://docs.google.com/document/d/{doc['documentId']}/edit"
WebClient(token=credentials.connection("slack", "work")).chat_postMessage(channel="#strategy", text=f"{summary.strip()}\nFull report: {link}")
return {"doc": doc["documentId"]}FAQ
Common questions
Which sources does it check?
Can I research topics other than competitors?
Where are the reports 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 event feedback into a report doc and Slack highlights
Feedback responses are analysed into a Google Doc report, and the top three insights are posted to your Slack channel.
See how it worksWrite a weekly report Doc from your numbers and post it to Slack
Every Monday last week's numbers become a written report in Google Docs, and the key points and link are posted to Slack.
See how it worksDraft RFP answers in a Google Doc and share them in Slack
Send an RFP questionnaire to a link and get a Google Doc with a draft answer to every question, based on your company profile, posted to #sales for review.
See how it worksKeep exploring
Set up “Write a weekly competitor report into Google Docs and share it in Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.