PostHog

Live audit of your PostHog project — confirms analytics is actually receiving events, the events your code declares are actually firing, and the conversion funnel exists.

Available on the Growth tier. Read-only personal API key — we never write events, never modify projects.

Why this matters

The most common Measurable-pillar failure: PostHog is installed, the snippet is in the layout, but no events are flowing. Or the events are flowing but the funnel a founder needs (signup → activation → first value) doesn’t exist. Repo scanning sees the snippet; only PostHog itself can tell you if the data is actually arriving.

Connect PostHog

01

Generate a personal API key.

PostHog dashboard → Project settings Personal API keysCreate personal API key. Scope it to read on Events, Insights, and Project. Copy the value (PostHog only shows it once).

02

Paste into PulseLight.

Project settings → Connected platforms PostHog → paste the key + your project ID + your PostHog instance URL (cloud or self-hosted). KMS-encrypted at rest; decrypted only at scan time inside the worker.

03

First scan.

Findings roll into the Measurable pillar on the next scan.

What we verify

  • Project is receiving events

    We query the events endpoint for the last 7 days. Zero events on a project that’s past pre-launch → blocker. Your analytics is a placebo if it’s not getting data.

  • Declared events fire in production

    Cross-references your repo (which we already scan) against the events PostHog has actually received. If your code calls posthog.capture('signup_completed') but PostHog has zero signup_completed events in the last 30 days, that’s a finding.

  • Activation event exists

    For first-100-users-stage projects, we look for an event that looks like activation (activation, onboarding_complete, first_*_created, etc.). No activation event → warning. You can’t measure the funnel that matters most without one.

  • Funnel insight configured

    We check whether at least one Funnel-type insight exists. A workspace with PostHog installed but no funnel is a workspace that’s collecting data without acting on it.

Common findings

POSTHOG-INSTALL-001 — No events in the last 7 days
  Project: my-saas (cloud)
  Events:  0 in 7d, 0 in 30d
  Why:     Snippet may be installed but blocked by the user
           or never firing. Real users producing zero events
           is the same outcome as no analytics at all.
  Fix:     Confirm posthog-js is initialised on every page;
           open the network tab and verify the /capture POST.

POSTHOG-EVENT-001 — Declared event has zero captures
  Repo:    apps/web/src/lib/analytics.ts:18
  Code:    posthog.capture('signup_completed', { ... })
  PostHog: 0 'signup_completed' events in 30 days
  Why:     Either the call site never executes, or the event
           name is mistyped vs your funnel. Both fail silently.

What we don’t do

We never read individual user events or person properties. We only count events by name and pull insight metadata. The full list of API calls we make is in our overview page.

Disconnect

From Settings → Connected platforms → PostHog, click Disconnect. PulseLight purges the API key immediately. You can also revoke the key from PostHog’s Personal API keys page directly.

See also: Connected Checks overview.