PostHog as a source

Forward product events and person traits from PostHog into getuserfeedback.com for targeting and context.

Last reviewed

PostHog as a source

Use this when PostHog already sees your product activity and you want that activity available for survey targeting and response context.

Each PostHog event becomes a track event in getuserfeedback.com. If the webhook includes a person, their properties become traits on the resolved profile.

1. Create the integration

  1. Open Integrations and click New integration.
  2. Under Data in, choose PostHog.
  3. Click Create integration.

You'll land on the integration detail page. Copy the Webhook URL shown there. It points at the ingestion subdomain and looks like:

https://posthog.ingest.getuserfeedback.com/int_<id>

Copy the Shared secret too. PostHog needs to send it with every webhook request.

2. Add an HTTP Webhook destination in PostHog

  1. In PostHog, open Data pipelines.
  2. Click New → Destination.
  3. Search for Webhook and create the HTTP Webhook destination.
  4. Configure the destination fields:
FieldValue
Webhook URLPaste the Webhook URL from step 1.
MethodPOST
JSON BodyKeep PostHog's default body: {"event":"{event}","person":"{person}"}
HeadersKeep Content-Type: application/json, then add Authorization: Bearer <shared secret>.
  1. Leave filters off until the test works. After that, use PostHog filters if you only want to forward specific events.
  2. Keep Log responses off after adding the shared secret. PostHog logs can include configured request inputs, including headers.
  3. Click Create & Enable.

PostHog will start sending matching events to getuserfeedback.com.

If you also want to send PostHog group or project metadata, customize the PostHog JSON Body before you enable the destination:

{"event": "{event}","person": "{person}","groups": "{groups}","project": "{project}"}

3. Verify it's working

In PostHog, use the destination configuration page:

  1. Open the Testing section.
  2. Click Start testing.
  3. Click Test function.

PostHog should show a successful HTTP response from getuserfeedback.com. Then open Users. The user should appear within a few seconds when the event carries a distinct_id, a distinct ID in properties, or a person ID.

What we accept

We accept PostHog's default HTTP Webhook body:

{"event": {"uuid": "018f5d75-2222-7000-9000-abcdefabcdef","event": "$pageview","distinct_id": "user_123","timestamp": "2026-06-16T03:04:05.000Z","properties": {"$current_url": "https://app.example.com/dashboard?tab=home","$title": "Dashboard"}},"person": {"id": "person_123","name": "Jane Customer","properties": {"email": "jane@example.com","plan": "team"}}}

We also accept PostHog webhook bodies where the event is nested under event, and batch envelopes with a batch array.

How events map

  • event becomes the track event name.
  • properties are stored as event properties.
  • distinct_id becomes a posthog_distinct_id external ID.
  • person.id becomes a posthog_person_id external ID.
  • person.properties become profile traits. If person.name is present and no name trait is set, it becomes traits.name.
  • properties.$current_url becomes the page URL, path, and query string in event context.
  • If present, groups are stored on the event as $posthog_groups.
  • If present, project is stored in the event's integration metadata.

Events without a uuid must include a timestamp so getuserfeedback.com can create a stable fallback message ID. Events without a usable identity are skipped.

What can break

  • PostHog shows 401 responses. Check that the destination sends Authorization: Bearer <shared secret>.
  • No user appears. Confirm the event has distinct_id, person.id, or a distinct ID in properties.distinct_id or properties.$distinct_id.
  • Page targeting looks wrong. Send the browser URL in properties.$current_url. PostHog's top-level event URL points back to PostHog and is not used as the customer page URL.
  • Events are skipped in a batch. One malformed batch item is skipped, but valid items in the same batch are still processed.

Next