Integration

PostHog: The product's pulse, read against the release and the money.

Vesqo reads one PostHog project: the hourly count of everything it saw, the one event that means the product worked, and what each customer did each day. Set against a release, it catches a checkout that stopped converting; set against Stripe, it catches a paying customer going quiet.

What the integration does

PostHog is Vesqo's record of whether the product is being used and whether it is working. Every fifteen minutes it reads the hourly event count and the hourly count of your key event (signup_completed, checkout_completed, whatever means the product did its job), and once a day the activity of each customer: events and active people, grouped by the PostHog group type that stands for a company, or failing that by the domain of each person's email.

Two things come from that. After a release, each hour is set against the same hour of the day over the week before, so a quiet night is not mistaken for a broken checkout, and a drop in the key event is the other half of a regression. Month against month, a paying customer using the product a lot less is the quiet before a cancellation, and one using it a lot more is the moment to talk about a bigger plan.

What Vesqo reads from PostHog

  • The hourly count of all events in the project, and of the one key event you name.
  • Daily active people.
  • Each customer's daily activity: events and active people, by group or by email domain.
  • Nothing else: no session recordings, no feature flags, no person profiles beyond the email domain, and no writes.

How it connects

Sign in to PostHog Cloud (US or EU) and approve Vesqo, an OAuth application asking for project:read, query:read and organization:read, then pick the project. Self-hosted, or would rather not: paste a personal API key with read access to the project's query endpoint, with the host and the project id. If a group type stands for a customer in your PostHog (company, organization), name it and activity is grouped by it; otherwise people are grouped by the domain of their email.

Why connect PostHog

PostHog can show that a funnel dropped. It does not know that a release went out eleven minutes earlier, that Sentry's errors went up tenfold in the same window, or that the people who dropped out of the funnel pay you €798 a month between them. Vesqo reads those together and writes one signal instead of three charts.

For customer health, usage is the earliest sign there is. A customer whose activity halved this month will not show up in Stripe until the cancellation. With PostHog connected, they show up in the brief now, with what they pay next to the drop.

Questions Vesqo can answer with it

  • Did checkouts drop after v2.14.0, compared with the same hours last week?
  • Which paying customers used the product less this month than last?
  • Who is using us a lot more than last month, and what plan are they on?
  • How many people were active yesterday, against the week before?
  • Is the key event down for everyone, or for one customer?

Signals it writes

  • Conversion drop: the key event happens less after a release, each hour against the same hour of the day over the week before.
  • Usage drop: a paying customer using the product a lot less, this month against last, by their own activity.
  • Expansion opportunity: a customer using it a lot more than last month, more people on it, healthy, paying.
  • And PostHog's half of the release card: the checkouts next to the errors, the inbox and the money.

Example

See what it finds in a workspace with a bad afternoon in it.

The demo is Farol Jobs, a made-up job board with a bad release in it, every screen open. Ask it anything. Then connect your own.

Vesqo would like to count visits with Google Analytics. Google's cookies are set only if you say yes, and the site is the same either way. Cookie notice