Skip to main content

RudderStack

Server Source code Package Beta

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().

Where this fits

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

Loading...
Loading...

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

PropertyTypeDescriptionMore
writeKey*stringRudderStack source write key. Find it in the RudderStack dashboard under Sources > Setup.
dataPlaneUrl*stringRudderStack data plane URL. Required. Example: https://your-data-plane.rudderstack.com
userIdstringwalkerOS mapping value path to resolve userId from each event (like user.id).
anonymousIdstringwalkerOS mapping value path to resolve anonymousId from each event (like user.session).
pathstringAPI path route (like /v1/batch).
flushAtintegerEvents to enqueue before flushing a batch. Default: 20.
flushIntervalintegerMax milliseconds before auto-flush. Default: 10000.
maxQueueSizeintegerMaximum batch payload size in bytes. Default: 460800 (~500KB).
maxInternalQueueSizeintegerMaximum in-memory queue length. Default: 20000.
logLevelstringSDK log level: 'info', 'debug', 'error', or 'silly'. Default: 'info'.
retryCountintegerRetry attempts for failed batches. Default: 3.
enablebooleanSet to false to no-op all SDK calls. Default: true.
gzipbooleanEnable gzip compression for requests. Default: true.
identifyanyDestination-level identity mapping. Resolves to { traits } object. Fires identify() on the first push and re-fires when values change.
groupanyDestination-level group mapping. Resolves to { groupId, traits }. Fires group() on the first push and re-fires on change.
integrationsRecord<string, any>Enable/disable downstream RudderStack destinations. Example: { "All": true, "Mixpanel": false }.
* Required fields

Mapping

Per-event rules under config.mapping. For the standard rule fields (consent, condition, data, batch, name, policy) see mapping.

PropertyTypeDescriptionMore
identifyanyPer-event identity mapping. Resolves to { userId?, traits? }. Use with rule-level skip: true on login/identify events.
groupanyPer-event group assignment. Resolves to { groupId, traits? }. Use with rule-level skip: true on company/team events.
pageanyPer-event page call. Resolves to { name, properties? } or true for minimal page(). RudderStack requires name (falls back to empty string). Use with skip: true.
screenanyPer-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.
aliasanyPer-event alias call. Resolves to { previousId }. Links anonymous user to identified user. Use with rule-level skip: true.

Examples

alias user

Event
Mapping
Out

anonymous only

Event
Out

company group

Event
Mapping
Out

default track

Event
Out

destination identify

Event
Out

mapped event name

Event
Mapping
Out

page view

Event
Mapping
Out

screen view

Event
Mapping
Out

user login identify

Event
Mapping
Out

wildcard ignored

Event
Mapping
Out

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.

💡 Need implementation support?
elbwalker offers hands-on support: setup review, measurement planning, destination mapping, and live troubleshooting. Book a 2-hour session (€399)