PostHog Exception Triage Agent with Codex

The issue body has a fixed order, HOW WIDE then WHAT THEY WERE DOING then RECORDING then STACK then the active flags, and each part comes from a different call. Codex is comfortable on concrete work with a tight scope, and the tightness here is that every section has exactly one source and no section may be filled from another.

Loading preview…
Free to start · guided setup

Watch it work before it's live

Run a staged conversation — no account needed. The agent handles it for real while a simulated world answers its tool calls; nothing touches real accounts, and nothing is actually sent.

TypeError: t.workspaceId is undefined

user_8841 (dana.okoro@brightsidehealth.io)web app, project Production

at resolveWorkspace (assets/index-4f2a91.js:1:88214), at WorkspaceSwitcher (assets/index-4f2a91.js:1:91002), at renderWithHooks. Thrown on /settings/members three minutes into the session, with flag new-workspace-switcher active.

Set up in minutes

Using this template drops you into a guided setup. It asks exactly this, nothing else:

  1. Connect PostHog

    One sign-in. The agent acts through your account, scoped to what this template uses.

  2. Connect Linear

    One sign-in. The agent acts through your account, scoped to what this template uses.

  3. Connect Slack

    One sign-in. The agent acts through your account, scoped to what this template uses.

  4. Triage rules

    How you decide an exception matters and where it goes - the person and occurrence counts for each severity, the window you count over, the Linear team that receives issues, and the exceptions you already know about and want left alone.

  5. Runs on Codex

    Preselected for this page — connect your Codex account during setup, or switch to NoClick's built-in models with one click.

  6. Watch it handle a test run

    A staged conversation against a simulated world — then it’s live.

Why Codex for this agent

One source per section

Counts come from the query, steps from the event list, the link from the recording check. Keeping those separate is what stops an impression turning into a statistic.

Frames quoted as written

The top of the stack goes in unedited even when it points somewhere absurd, like a browser extension. Tidying it loses the one clue that made triage possible.

Before you fork

What does a wrong run actually look like here?

An issue that reads well with no query behind it: a severity word in place of a person count, or reproduction steps describing what the code does rather than what the user clicked. Not Our Code is the fastest tell, because the correct output reports counts with no theory attached while a drifting run explains the extension's behaviour as though it were yours.

Run it with a different agent

Put PostHog Exception Triage Agent to work on Codex

Free to start. Guided setup, a test run against staged conversations, and it's live.