Daily
Get all your sites' numbers in one post
One daily message lists users and conversions for every GA4 property you manage.
- Runs
- Daily
- Apps
- Google Analytics
- AI
- Not needed
- Access
- analytics.readonly
Send this to your assistant
Create a ClickRuntime automation: every day at 9am, post yesterday's users and conversions for each of my GA4 properties to #marketing in Slack as one table.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
An agency looks after nine client websites, each with its own Google Analytics 4 property. Every morning someone opens each one in turn to check that traffic looks normal, which takes half an hour and is the first task dropped when a deadline looms. A site can go dark for days without anyone noticing, because the checking depends on one person remembering to do it.
Each day, ClickRuntime lists the GA4 properties your login can access through the Admin API, runs a report for each and posts one combined table with the key numbers for every site. The table lands in an email or a Slack channel, so a single glance covers the whole portfolio.
Owners of several small sites, such as a network of niche blogs, use it the same way.
What you get out of it
Whole portfolio in one glance
One table shows every site's numbers side by side. An outlier jumps out immediately, which beats opening nine dashboards and trying to remember what each normally looks like. It also makes it easy to compare sites of different sizes.
Sites cannot silently go dark
If one property shows near-zero traffic, the table makes it obvious the same morning. A broken tag or expired hosting is found by the agency before the client starts asking.
Half an hour saved every day
Checking nine properties by hand eats real time that adds up to over two working days a month. Automating the routine frees that time for work that clients actually pay for.
Newly added properties appear automatically
Because properties are listed from the account, a new client site shows up in the digest without extra setup. Nothing falls through the cracks during fast onboarding. New clients are covered from their first day.
Shared visibility across the team
Posting to Slack means account managers, developers and the owner see the same picture. Questions about which site looks off get answered in the thread, not in separate emails. Everyone works from the same facts.
How it works
What happens, step by step
Every day, ClickRuntime finds every Google Analytics property you have access to.
For each one it pulls yesterday's users and conversions.
It posts one message to your #marketing Slack channel with a line per site, such as "Northwind Shop: 4,210 users, 96 conversions".
Before it runs live
- Connect Google Analytics
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
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Google Analytics steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, notify
@on_trigger
def run(event):
h = {"Authorization": f"Bearer {credentials.connection('google', 'work')}"}
accounts = http.get("https://analyticsadmin.googleapis.com/v1beta/accountSummaries", headers=h).json().get("accountSummaries", [])
lines = []
for acc in accounts:
for prop in acc.get("propertySummaries", []):
rows = http.post(f"https://analyticsdata.googleapis.com/v1beta/{prop['property']}:runReport", headers=h,
json={"dateRanges": [{"startDate": "yesterday", "endDate": "yesterday"}],
"metrics": [{"name": "totalUsers"}, {"name": "conversions"}]}).json().get("rows", [])
users, conv = (r["value"] for r in rows[0]["metricValues"]) if rows else ("0", "0")
lines.append(f"{prop['displayName']}: {users} users, {conv} conversions")
notify.slack("Yesterday across all GA4 properties\n" + "\n".join(lines), channel="#marketing")
return {"properties": len(lines)}FAQ
Common questions
How does it know which properties to include?
Which numbers appear for each site?
Will it work if the properties belong to different Google accounts?
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
Hear when yesterday's traffic falls short
You get an email only on days when sessions dropped well below the recent average.
See how it worksPost live visitor counts during a launch
Your team sees how many people are on the site each hour while the launch runs.
See how it worksCompare this week with last in one email
A Monday table shows users, sessions and conversions for the last two weeks with the percent change.
See how it worksKeep exploring
Set up “Get all your sites' numbers in one post” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.