RudderStack
Server-side event delivery to RudderStack via the official @rudderstack/rudder-sdk-node SDK. Implements the full Segment Spec surface (track, identify, group, page, screen, and alias) with automatic identity deduplication and graceful shutdown via flush().
RudderStack is a server destination in the walkerOS flow:
Receives events server-side from the collector, resolves identity, and forwards them to RudderStack's data plane for routing to 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 | RudderStack source write key. Find it in the RudderStack dashboard under Sources > Setup. | |
dataPlaneUrl | string | RudderStack data plane URL. Required. Example: https://your-data-plane.rudderstack.com | |
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). | |
path | string | API path route (like /v1/batch). | |
flushAt | integer | Events to enqueue before flushing a batch. Default: 20. | |
flushInterval | integer | Max milliseconds before auto-flush. Default: 10000. | |
maxQueueSize | integer | Maximum batch payload size in bytes. Default: 460800 (~500KB). | |
maxInternalQueueSize | integer | Maximum in-memory queue length. Default: 20000. | |
logLevel | string | SDK log level: 'info', 'debug', 'error', or 'silly'. Default: 'info'. | |
retryCount | integer | Retry attempts for failed batches. Default: 3. | |
enable | boolean | Set to false to no-op all SDK calls. Default: true. | |
gzip | boolean | Enable gzip compression for requests. Default: true. | |
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. | |
integrations | Record<string, any> | Enable/disable downstream RudderStack 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 { name, properties? } or true for minimal page(). RudderStack requires name (falls back to empty string). Use with skip: true. | |
screen | any | Per-event screen call (mobile backends). Resolves to { name, properties? } or true for minimal screen(). RudderStack requires name (falls back to empty string). Use with skip: true. | |
alias | any | Per-event alias call. Resolves to { previousId }. Links anonymous user to identified user. Use with rule-level skip: true. |
Examples
alias user
anonymous only
company group
default track
destination identify
mapped event name
page view
screen view
user login identify
wildcard ignored
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.
Alias support
Unlike Segment, RudderStack also supports per-event alias() calls, useful for linking an anonymous identity to an identified user after signup or login. Configure via mapping.settings.alias with a previousId field.