1What FoxPlug reads from PostHog
These are the exact things it reads, and nothing else.
| What | The details it takes |
|---|---|
| Daily unique visitors | uniq(person id) per day over pageview events |
| Daily sessions | uniq of the $session id property per day |
| Daily pageviews | count() of the $pageview event per day, last 30 days (HogQL query API) |
| Rage and dead clicks by page | $rageclick and $dead click events: page ($pathname), clicked element's text when present, unique sessions in the last 7 days and in the 30 before, first time seen; pages with at least 3 sessions, top 15 |
| A leaving customer's last visit | when a cancelled Stripe customer's email matches a PostHog person: time of last visit and pages in it, plus errors seen |
2Moments it finds, and what each becomes
A moment is one thing that happened in PostHog worth a second look. Each one is scored, then it becomes a post, a changelog entry, a thing to fix or an idea to email, or it is skipped.
Visits drop after a deploy
The moment is titled like this: Fix line: 'Visits are down 42 percent since you deployed. Look before you post.'
A deploy on Tuesday; PostHog's daily visitors averaged 120 before and 70 since. The fix line comes first in Today. The numbers are the brain page's own example.
Rage clicks or dead clicks concentrate on a page or button
The moment is titled like this: Friction row: source PostHog, kind rage or dead, page, element text, sessions this week against before
12 sessions of dead clicks on the 'Start free' button of /pricing in the last 7 days, first seen the day after a commit. Used only when the read is from the last 8 days and a deploy or commit falls 3 days before to 1 day after. Page is an example.
A paying customer cancels
The moment is titled like this: Why they left: one plain line of facts
If PostHog has a person with that email, the line states how many days ago they last visited and how many pages they saw. No reason is guessed. With no match it says PostHog has no person with that email and how to identify users.
Arrivals more than double between the two halves of the 30 days
The moment is titled like this: Traffic board question: 'Arrivals more than doubled in the second half of this window. What changed, and is it repeatable?'
Visitors 150 in the first 15 days and 340 in the last 15. The card asks what changed; the source-split button needs referrer data, which PostHog's pull does not store.
3How the brain uses it
The rules below are the ones that apply to PostHog. The same rules, with worked examples, are on the brain page.
- Nothing is read until the owner presses Build the brief (Today) or Refresh on the traffic board; a failed pull leaves the last real numbers on screen. How the brain decides
- Reads are read-only: FoxPlug never changes anything in the analytics tool. How the brain decides
- Visits down after a deploy: a deploy made 2 to 6 days ago, at least 3 days of data before it, at least 2 full days after and at least 10 visits a day before; a drop of 30 percent or more becomes a fix line. How the brain decides
- With at least 6 days of daily visits, arrivals that more than double (or more than halve) between the first and second half of the window raise a question card on the traffic board. How the brain decides
- Friction is used only when the read is from the last 8 days and matched to a deploy or commit; it becomes a fix line. How the brain decides
- Reasons for leaving are facts from your tools, never a guess. How the brain decides
4Set up PostHog in a few steps
Access: Personal API key (read scopes) plus Project ID and host. What to give it: a personal API key (read scopes) plus your Project ID and instance host; the key starts phx_, not the phc_ project key or a phs_ secret key.
- Open your PostHog account settings, Personal API keys (us.posthog.com, eu.posthog.com or your own address).
- Click Create a personal API Key, label it, choose read scopes.
- Copy the key at once; it starts phx_ and is shown once.
- Open Settings, Project and copy the Project ID (digits only).
- Note the host from the address bar (leave blank for US cloud).
- Paste the key, Project ID and host into FoxPlug.
5Limits worth knowing
Where it stops, so nothing surprises you.
- Visits, sessions and pageviews cover the last 30 days
- Friction card looks 7 days against the 30 before, 37 days back, top 15 rows with at least 3 sessions
- Host defaults to https://us.posthog.com when blank; EU and self-hosted need the host
- Needs pageview events: a project that does not capture $pageview returns empty
- Person lookup for cancellations needs the user identified with their email in PostHog
6What it never reads
Read only means read only, and the list below is what the code leaves alone.
- Bounce rate or session length (PostHog has no such field and FoxPlug does not compute one)
- Session replays (the code queries events only)
7How PostHog differs from the tools next to it
PostHog is an event store, not a stats API, so FoxPlug asks it a HogQL question for daily visitors, sessions and pageviews, and a second one for rage and dead clicks by page and element. Unlike Plausible, Fathom or Umami it also gives frustrated-click rows and, for cancelled customers, a last-visit lookup by email. It has no bounce rate or session length.
8Questions
Which PostHog key does FoxPlug need?
A personal API key that starts phx_, with read scopes, made in your account settings. The phc_ key from your tracking snippet and a phs_ project secret key will not work.
Does FoxPlug read my session replays or person data?
It runs aggregate queries over pageview, rage-click and dead-click events. The one person-level read is a lookup by email for a customer who cancelled in Stripe, to state their last visit as a fact.
Why is bounce rate empty for PostHog?
PostHog does not define a bounce rate, and FoxPlug does not invent one. The field stays empty and no rule uses it.
FoxPlug reads this tool only when you press Check for what's new, and only to read. Plans and limits are on the pricing page. Questions: support.