Weekly
Write 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.
- 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, turn last week's numbers in my Metrics sheet into a written report in Google Docs and post the key points and link to #marketing.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A marketing lead at a small online shop tracks visits, sign-ups, orders and ad spend in a sheet. Every Monday she turns those numbers into a short written update for the founders: what went up, what went down, and why it might have happened. The writing takes most of a morning that should go to planning the week.
This automation reads last week's row of numbers, compares it with the week before, and has AI write a short report in a new Google Doc. The highlights and the link are posted to Slack, so everyone starts the week with the same picture.
What you get out of it
Monday mornings back
The report is written before you open your laptop. You review and add context instead of writing from scratch.
Numbers with words around them
Founders and colleagues who skip spreadsheets will read a few sentences. Explaining the change week over week makes the numbers useful to more people.
A running archive of reports
Each week gets its own Doc, so you can look back at what was said in any month. That history helps in quarterly reviews.
Everyone sees the same update
Posting the key points in Slack means the whole team works from one version. Questions and discussion happen in the thread, next to the link.
How it works
What happens, step by step
Every Monday, ClickRuntime reads the last two weeks of numbers from your Metrics sheet.
AI writes a short report comparing them and pointing out the main changes.
The report is saved as a new Google Doc.
The key points and the link are posted to your #marketing channel in Slack.
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 google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, ai, notify
SHEET_ID = "your-spreadsheet-id"
@on_trigger
def run(event):
creds = Credentials(credentials.connection("google", "work"))
rows = build("sheets", "v4", credentials=creds, cache_discovery=False).spreadsheets().values().get(
spreadsheetId=SHEET_ID, range="Metrics!A1:Z").execute().get("values", [])
header, prev, last = rows[0], rows[-2], rows[-1]
table = "\n".join(f"{h}: {p} -> {l}" for h, p, l in zip(header, prev, last))
try:
report = ai.generate(table, system="Write a short weekly report: summary, what changed and possible reasons, next steps.", max_output_tokens=900).text
points = ai.generate(report, system="Give 3 one-line key points.", max_output_tokens=150).text
except ai.AIError:
report = points = table
docs = build("docs", "v1", credentials=creds, cache_discovery=False).documents()
doc = docs.create(body={"title": f"Weekly report - week of {last[0]}"}).execute()
docs.batchUpdate(documentId=doc["documentId"], body={"requests": [{"insertText": {"location": {"index": 1}, "text": report}}]}).execute()
notify.slack(f"📊 Week of {last[0]}\n{points}\nhttps://docs.google.com/document/d/{doc['documentId']}", channel="#marketing")
return {"doc": doc["documentId"]}FAQ
Common questions
How should the sheet be laid out?
Can it cover finance numbers instead of marketing?
Can I post it on a different day?
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 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.
See how it worksTurn 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 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 report Doc from your numbers and post it to Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.