Segment
Server-side event delivery to Segment via the official @segment/analytics-node SDK. Implements the full Segment Spec surface (track, identify, group, page, and screen) with automatic identity deduplication and graceful shutdown via closeAndFlush().
Segment is a server destination in the walkerOS flow:
Receives events server-side from the collector, resolves identity and consent context, and forwards them to Segment for routing to 400+ downstream destinations.
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 |
|---|---|---|---|
writeKey | string | Segment source write key. Find it in your Segment workspace under Connections > Sources > Settings > API Keys. | |
userId | string | walkerOS mapping value path to resolve userId from each event (like user.id). | |
anonymousId | string | walkerOS mapping value path to resolve anonymousId from each event (like user.session). | |
host | string | Base URL of Segment API. Set to https://events.eu1.segmentapis.com for EU endpoint. | |
path | string | API path route (like /v1/batch). | |
flushAt | integer | Events to enqueue before flushing a batch. Default: 15. | |
flushInterval | integer | Max milliseconds before auto-flush. Default: 10000. | |
maxRetries | integer | Retry attempts for failed batches. Default: 3. | |
httpRequestTimeout | integer | HTTP request timeout in milliseconds. Default: 10000. | |
disable | boolean | Completely disable the SDK (no-ops all calls). Default: false. | |
identify | any | Destination-level identity mapping. Resolves to { traits } object. Fires identify() on the first push and re-fires when values change. | |
group | any | Destination-level group mapping. Resolves to { groupId, traits }. Fires group() on the first push and re-fires on change. | |
consent | Record<string, string> | Mapping from walkerOS consent keys to Segment categoryPreferences keys. Example: { "marketing": "Advertising", "analytics": "Analytics" }. | |
integrations | Record<string, any> | Enable/disable downstream Segment destinations. Example: { "All": true, "Mixpanel": false }. |
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 { userId?, traits? }. Use with rule-level skip: true on login/identify events. | |
group | any | Per-event group assignment. Resolves to { groupId, traits? }. Use with rule-level skip: true on company/team events. | |
page | any | Per-event page call. Resolves to { category?, name?, properties? } or true for minimal page(). Use with skip: true. | |
screen | any | Per-event screen call (mobile backends). Resolves to { category?, name?, properties? } or true for minimal screen(). Use with skip: true. |
Examples
Anonymous only
When no userId is resolved Segment accepts a track call keyed solely by anonymousId.
Group company
A company update fires Segment analytics.group with groupId and group traits for account-level tracking.
Consent forwarding
Walker consent keys are mapped to Segment categoryPreferences on the analytics context for downstream filtering.
Default track
A walker event becomes a Segment analytics.track call with userId and anonymousId resolved from the event.
Destination identify
Destination-level identify fires Segment analytics.identify with traits on the first push only, then the track call follows.
Renamed event
A mapping renames the event so the Segment track call uses Segment's canonical 'Order Completed' name.
Page view
A page view fires Segment analytics.page with category, name, and properties instead of a generic track.
Screen view
A screen view fires Segment analytics.screen with name, category, and properties for mobile app tracking.
User login identify
A user login fires only Segment analytics.identify with the userId and traits, skipping the track.
Identity is resolved automatically from each event: userId defaults to user.id and anonymousId defaults to user.session. At least one must be present for a call to be sent. Override these paths in settings to match your event structure.