Handling customer issues
Contents
As the dedicated PostHog human for your customers, you're the first stop for issues. You have the most context on them, so you're best placed to triage and escalate.
Support and engineering are always available to help, but try to solve issues yourself first. You'll level up your product knowledge faster.
Raising issues
Zendesk
We use Zendesk Support as our internal platform for support tickets. For specifics on how we use Zendesk, see here.
Tickets from Slack
Customers can create tickets from Slack by adding the 🎫 emoji reaction (or mentioning @SupportHog). This means they can get help even when you're asleep or on holiday. Let your customer know about this, and remind them now and then.
If you're working on a ticket the customer raised in Slack, assign yourself as the owner in PostHog Support, and then either resolve it or assign it to Team Support if you need to escalate it.
Tip: Customer messages from SupportHog channels also go to #support-managed-customers. Find the ticket there and follow the link to see the ticket in PostHog.
Investigating issues
Ask for specifics: links to the insight, feature flag, or dashboard; a screenshot or the exact error message.
If it helps, log in as the customer. Clicking a link from their PostHog instance will sometimes offer a "log in as" option. Otherwise, go to US admin (EU admin), search for the org or user, and click "Log in as user". If you don't see that option, ask
Dana Zou
Dana Zou to add you as a staff member in admin.
Use our docs, troubleshooting tips, and search Slack, PostHog Support, Zendesk, and GitHub for similar issues. If you've just joined, spend 30 mins to an hour investigating yourself before asking for help — onboarding is when you learn the products best. Use common sense based on urgency.
Keep the customer in the loop while you investigate — progress, blockers, next steps.
Using the MCP server while impersonating
You can connect the PostHog MCP server while logged in as a customer. This is useful when you want to investigate their setup from Codex, Claude Code, Cursor, or another MCP client.
Log in as the customer using the steps above. Leave Read-only mode selected unless the customer has explicitly agreed to you making changes.
Add the PostHog MCP server to your client. For Codex, run:
TerminalFor Claude Code, install the PostHog plugin:
TerminalDisconnect any existing PostHog MCP session so the OAuth flow starts again:
- For Codex, run
codex mcp logout posthog. - For Claude Code, run
/mcp, find theposthogplugin, and select Clear authentication.
- For Codex, run
Start a fresh OAuth flow while you're still logged in as the customer:
- For Codex, run
codex mcp login posthog. - For Claude Code, run
/mcp, find theposthogplugin, and select Authenticate.
Only authorize the organization and project you need for the investigation.
- For Codex, run
Work within the scope of the ticket. If you need to make changes, get the customer's permission first, upgrade the impersonation session to read-write, then log out and log in to the MCP server again so it gets the right scopes.
Disconnect the MCP server, then log out of the impersonation session when you're done. OAuth tokens created while impersonating are short-lived and revoked when the impersonation session ends.
If you use Claude Code for repeat customer audits, the impersonation toolkit wraps this flow, copies safer permission rules into each customer folder, and disables the PostHog plugin when you exit.
If the organization has disabled PostHog AI data processing, the OAuth flow will return a 403 and the MCP connection won't be authorized while you're impersonating them. This is intentional. Ask the customer to authorize the MCP connection themselves instead. Their connection will work, but MCP tools that use PostHog AI internally will stay unavailable while PostHog AI data processing is disabled. Don't enable PostHog AI on their behalf.
Escalating tickets
Escalate to support or the relevant engineering team:
- Need more context or further digging → support
- Issue needs deep technical domain knowledge → engineering
Our support team are technical engineers and handle most tickets. When in doubt, escalate to support.
If you're escalating to support, no action needed — the ticket stays in the support queue.
If you're escalating to engineering, set the esc. dropdown in Zendesk's left sidebar to escalated and check the group assignee makes sense. You may need to upgrade your Zendesk role to full agent — remember to downgrade after.
Either way, leave an internal note explaining what you're escalating and why, plus what you've already tried. Even confirming you followed the customer's repro steps and saw the same issue is valuable context.
Auditing impersonations
Customers sometimes ask who from PostHog has accessed their account. Use this SQL query on project 2 to get an impersonation log for a specific organization. Get the organization ID from Vitally.