Skip to content

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.

Paste it into your assistant. It tells you what it will send or change before it runs live.

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

  1. Every morning, ClickRuntime asks PostHog for yesterday's daily active users and sign-ups.

  2. It gets the same numbers for the same day last week.

  3. You get an email with both numbers and the percentage change for each.

Before it runs live

  • Connect PostHog

What you get

RunsDaily
Email yourself yesterday's PostHog numberstoday, 9:00Succeeded
Email · PostHog numbers for 2026-10-18Daily active users: 3,208 (+9% vs 2026-10-11) Sign-ups: 96 (-4% vs 2026-10-11)

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
daily_product_metrics_digest.pyexample
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?
You choose them. Common picks are daily signups, active users and the count of a core event like project created. Let your AI assistant know the events and properties you want and review the query before it is used.
How is the change calculated?
Each metric is compared with the same metric from the prior period, usually the day before or the same weekday last week. The email shows the absolute and percentage difference. A same-weekday comparison avoids confusing weekends with weekdays, because traffic differs between them. Most products behave very differently on Saturday.
Do I need a PostHog personal API key?
Yes, a personal API key with read access to the project is used to run the query. It is stored as a secret in ClickRuntime, and the digest only reads data from PostHog. The key never leaves the secure store and is not shown in emails.
What permissions does it need?
query:read. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it runs (daily). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

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.