Daily
Email yourself yesterday's PostHog numbers
Each morning you get daily active users and sign-ups with the change from the same day last week.
- Runs
- Daily
- Apps
- PostHog
- AI
- Not needed
- Access
- query:read
Send this to your assistant
Create a ClickRuntime automation: every morning at 7:30, run my PostHog queries for daily active users and sign-ups and email me yesterday's numbers next to the same day last week.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Product and growth teams using PostHog usually have a dashboard with signups, active users and key events. The problem is that nobody opens it every day, so a drop in activations on Tuesday is noticed on Friday, if at all. Someone then has to check what changed, usually a release, a broken tracking snippet or a campaign that ended, and by then days of data are affected.
Each morning, a HogQL query runs against PostHog for the previous day's key numbers, such as signups, active users and a core event. The results are compared with the earlier period and an email shows each metric with its change. You start the day knowing whether yesterday was normal, without logging in. Teams after a lightweight alternative to a weekly metrics meeting also adopt it.
It suits founders, product managers and growth leads who want a regular pulse on the product without building a new dashboard.
What you get out of it
Problems noticed the next morning
A drop in signups or key events appears in your inbox within hours. That helps you check a recent deploy or campaign while the cause is still easy to find. The cause is far easier to find the morning after a release than a week later, when many other changes have piled on top.
Numbers with context
Showing the change next to each metric tells you whether a figure is good or bad. A number alone does not help, but compared with last week it becomes meaningful. A figure alone means little, but beside last week's number it tells you whether the day was good, bad or ordinary.
Shared view across the team
When the same email goes to product, growth and engineering, everyone starts the day with the same numbers. That cuts down on debates about whose dashboard is right. Shared numbers cut debates about whose dashboard is right, so meetings can move straight to what to do about them.
A habit that takes a minute
Reading a short email is easier to sustain than visiting a dashboard. Over weeks, you build a feel for what normal looks like and spot trends sooner. Over several weeks you develop a feel for normal ranges, so a real change stands out without any chart to read.
Flexible metrics from HogQL
Because the numbers come from a query, you can track whatever matters, such as trial starts or a funnel step. The digest evolves with the product. New questions, such as trial starts or one funnel step, are a query change away rather than a new dashboard project.
How it works
What happens, step by step
Every morning, ClickRuntime asks PostHog for yesterday's daily active users and sign-ups.
It gets the same numbers for the same day last week.
You get an email with both numbers and the percentage change for each.
Before it runs live
- Connect PostHog
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 PostHog steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, notify
PROJECT_ID = 12345
def hogql(query):
resp = http.post(f"https://us.posthog.com/api/projects/{PROJECT_ID}/query/",
headers={"Authorization": f"Bearer {credentials.secret('POSTHOG_API_KEY')}"},
json={"query": {"kind": "HogQLQuery", "query": query}})
resp.raise_for_status()
return resp.json()["results"]
@on_trigger
def run(event):
rows = hogql("""
SELECT toDate(timestamp) AS day, count(DISTINCT person_id), countIf(event = 'user signed up')
FROM events WHERE toDate(timestamp) IN (yesterday(), yesterday() - 7) GROUP BY day ORDER BY day
""")
(last_wk, dau_wk, su_wk), (day, dau, su) = rows
def pct(a, b):
return f"{(a - b) / b:+.0%}" if b else "n/a"
notify.email_me(f"PostHog numbers for {day}",
f"Daily active users: {dau:,} ({pct(dau, dau_wk)} vs {last_wk})\n"
f"Sign-ups: {su:,} ({pct(su, su_wk)} vs {last_wk})")
return {"dau": dau, "signups": su}FAQ
Common questions
Which metrics are included?
How is the change calculated?
Do I need a PostHog personal API key?
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
Get a Slack alert when PostHog sign-ups dip
If an hour's sign-ups are 30% below the same hour last week, you know before the day is over.
See how it worksGet a Monday summary of your saved PostHog insights
Each week you read a short write-up of how your saved insights moved, instead of opening each one.
See how it worksKnow the moment your website goes down
Your team hears in Slack when the site stops responding or slows down, and again when it's back.
See how it worksKeep exploring
Set up “Email yourself yesterday's PostHog numbers” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.