PostHog
Server-side event delivery to PostHog for product analytics, identity resolution, group analytics, and feature flags via the official posthog-node SDK.
PostHog is a server destination in the walkerOS flow:
Sends events server-side to PostHog's ingestion API, translating walkerOS events into `capture`, `identify`, and `groupIdentify` calls with full control over identity and group resolution.
Installation
- Integrated
- Bundled
Configuration
This destination uses the standard destination config wrapper (consent, data, env, id, ...). For the shared fields see destination configuration. Package-specific fields live under config.settings and are listed below.
Settings
| Property | Type | Description | More |
|---|---|---|---|
apiKey | string | PostHog project API key (starts with "phc_"). Find it in PostHog project settings. | |
host | string | PostHog API host. Defaults to https://us.i.posthog.com. Use https://eu.i.posthog.com for EU or your self-hosted URL. | |
flushAt | number | Number of events queued before auto-flush. Default: 20. | |
flushInterval | number | Milliseconds between periodic flushes. Default: 10000. | |
personalApiKey | string | Personal API key (phx_...) for local feature flag evaluation. | |
featureFlagsPollingInterval | number | Milliseconds between feature flag definition polls. Default: 30000. | |
disableGeoip | boolean | Disable GeoIP lookups globally. Useful for GDPR compliance. | |
debug | boolean | Enable PostHog SDK debug logging. Default: false. | |
identify | any | walkerOS mapping value resolving to an identity object. Keys: distinctId, $set, $set_once. Resolved on every push (server is stateless). | |
group | any | walkerOS mapping value resolving to a group object. Keys: type, key, properties. Resolved on every push. | |
include | Array<string> | Event sections to flatten into capture() properties (e.g. ["data", "globals"]). |
Mapping
Per-event rules under config.mapping. For the standard rule fields (consent, condition, data, batch, name, policy) see mapping.
| Property | Type | Description | More |
|---|---|---|---|
identify | any | Per-event identity mapping. Resolves to { distinctId, $set?, $set_once? }. Fires client.identify() when $set/$set_once present. | |
group | any | Group assignment. Resolves to { type, key, properties? }. Fires client.groupIdentify() when properties present, adds groups to capture(). |
Examples
Capture with group
A destination-level group mapping attaches the resolved group context to every PostHog capture call.
Capture with include
Destination-level include flattens data and globals sections into prefixed PostHog event properties.
Consent granted
A walker consent command with analytics granted calls client.enable on the PostHog client.
Consent revoked
A walker consent command with analytics denied calls client.disable on the PostHog client.
Default capture
A walker event becomes a PostHog capture call with the user id as distinctId and no extra properties.
Group identify
A company update fires PostHog groupIdentify with group type, key, and associated group properties.
Identify with $set
A user login fires PostHog identify with $set and $set_once person properties and skips the capture.