Customer Spine

Connect PostHog to Customer Spine

Product events and identified users, so a profile shows what someone actually did in the app — not just what they paid.

Where the data goes

Every teamspace gets one endpoint for all sources — the signature header each vendor sends tells us which integration delivered the event. You are given the real one when you sign in — the last segment is your teamspace id.

https://ingest.customerspine.com/ingest/<your-teamspace-id>

Method POST · Header X-PostHog-Signature

How it authenticates

PostHog sends fixed headers and cannot compute a per-request signature, so it authenticates with a secret token we generate. Copy it when it is shown; it is not retrievable afterwards.

Steps

  1. 1Open destinations in PostHogIn your PostHog project, go to Data pipelines and add a new outgoing destination of type HTTP Webhook.
  2. 2Point it at your URLSet the method to POST and the URL to the address above. Leave the payload as the default event body — we read PostHog's own event shape and do not need a custom template.
  3. 3Add the authentication headerAdd a custom header named X-PostHog-Signature with the generated secret as its value. Requests without it are rejected.
  4. 4Filter if you want toSending every event is fine. If you would rather not, $identify and $create_alias are the ones that link an anonymous visitor to a real person, so keep those.

Worth knowing

PostHog is the one source that can tell us two identities are the same person. $merge_dangerously is irreversible at PostHog's end, so we apply it unconditionally — if PostHog has merged two people, we cannot un-merge them either.

Get your endpointPostHog destinations documentation

Other sources