PostHog as a destination

Send flow (survey) events from getuserfeedback.com into PostHog.

Last reviewed

PostHog as a destination

Use this when you want flow activity from getuserfeedback.com to appear in PostHog next to the rest of your product analytics.

Each enabled flow event is sent to PostHog's batch capture API. We use the event's userId first, then anonymousId, as PostHog distinct_id.

What good looks like: after you turn the destination on, PostHog shows the enabled flow events under Activity or Events, with the same event names you configured in getuserfeedback.com.

1. Create the integration

  1. Open Integrations and click New integration.
  2. Under Data out, choose PostHog.
  3. Click Continue.
  4. Enter your PostHog project token in Project API key. PostHog's capture API sends this value as api_key, and PostHog may label it Project API key or Project token in project settings.
  5. Choose the PostHog endpoint for your project:
PostHog projectEndpoint
US Cloudhttps://us.i.posthog.com
EU Cloudhttps://eu.i.posthog.com

Choose the endpoint for the same PostHog project that owns the project token. Using the wrong region usually looks like an authentication failure.

  1. Choose which events to send and how they should be named in PostHog.
  2. Click Create integration.

The destination starts paused. Open the integration detail page, review the settings, then turn it on.

2. Send a test event

  1. Open the PostHog destination in getuserfeedback.com.
  2. Click Send test event from the actions menu.
  3. Confirm the request succeeds.
  4. In PostHog, open Activity or Events and look for the destination event name you configured.

The request preview in getuserfeedback.com redacts the PostHog api_key.

What we send

We send batches to PostHog's /batch/ capture endpoint. The request body has two top-level fields:

  • api_key: your PostHog project token.
  • batch: one item for each enabled flow event.

Each PostHog batch item includes:

{"event": "Flow Completed","properties": {"distinct_id": "user_123","$insert_id": "msg_123","response_id": "response_123","flow_id": "flow_123","page_path": "/survey","locale": "en-US"},"timestamp": "2026-06-21T00:00:00.000Z","uuid": "018f5d75-2222-5000-9000-abcdefabcdef"}

The default outbound events are:

getuserfeedback.com eventWhen it sends
Flow CompletedA flow was completed successfully.
Flow ViewedA flow was displayed.
Flow DismissedA flow was closed without a response.

You can turn each event on or off and rename the destination event before it is sent to PostHog.

Event fields

FieldHow we set it
eventThe destination event name from your integration settings.
properties.distinct_idThe event userId, falling back to anonymousId. Events without either identity are skipped.
properties.$insert_idThe event message ID.
uuidA stable UUID derived from the event message ID, so retries do not create duplicate PostHog events.
timestampThe original event timestamp.
properties.response_idPresent for response-backed events.
properties.flow_idPresent when the event is tied to a flow.
properties.page_pathThe page path from event context, when available.
properties.page_referrerThe page referrer from event context, when available.
properties.localeThe event locale, when available.
properties.identitiesThe event identities array.
properties.traitsProfile traits included with the event, or null.

What can break

  • PostHog returns 401 or 403. Check that the project token belongs to the selected PostHog project, then check that the endpoint matches the project's region.
  • PostHog returns 429 or a 5xx response. We retry these as temporary delivery failures. If the destination keeps retrying, check PostHog status and rate limits.
  • The event is skipped before sending. The event needs a userId or anonymousId so we can set PostHog distinct_id.
  • The destination says it needs attention. Open the integration detail page for the latest issue. Dead-lettered deliveries need a settings fix before future events can be delivered reliably.
  • You don't see the event in PostHog. Confirm the event is enabled in the destination settings, the destination is turned on, and you are looking at the same PostHog project whose token you entered.

Next