Amplitude
Server-side event delivery to Amplitude for product analytics, using the official @amplitude/analytics-node SDK. Supports track, identify, revenue, setGroup, groupIdentify, and flush calls with per-event identity via EventOptions.
Amplitude is a server destination in the walkerOS flow:
Sends events server-side to Amplitude's HTTP API, providing reliable delivery with identity resolution, revenue tracking, and group analytics without browser-side SDK overhead.
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 | Your Amplitude project API key. Find it in your Amplitude project settings under "General" -> "API Keys". | |
serverZone | 'US' | 'EU' | Amplitude data residency zone. Use EU for European data residency. Default: US. | |
flushIntervalMillis | integer | How often (in ms) to flush the event queue. Default: 10000. | |
flushQueueSize | integer | Max queued events before a flush. Default: 200. | |
flushMaxRetries | integer | Max retries on failed flush. Default: 12. | |
useBatch | boolean | Use the Amplitude batch endpoint for higher rate limits. Recommended for high-volume server flows. Default: false. | |
minIdLength | integer | Minimum length for user_id and device_id fields. | |
serverUrl | string | Custom server URL for proxies or self-hosted endpoints. | |
optOut | boolean | Initial opt-out state. When true, no events are sent. Default: false. | |
enableRequestBodyCompression | boolean | Enable gzip compression for request payloads. Default: false. | |
identify | any | walkerOS mapping value resolving to per-event identity. Keys: user_id, device_id, session_id, set, setOnce, add, append, prepend, preInsert, postInsert, remove, unset, clearAll. | |
eventOptions | any | walkerOS mapping value resolving to per-event EventOptions. Keys: time, insert_id, ip, city, country, region, language, platform, os_name, os_version, device_brand, device_model, app_version, user_agent. | |
include | Array<string> | walkerOS event sections to include as event_properties (like ['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 an object with any of: user_id, device_id, session_id, set, setOnce, add, append, prepend, preInsert, postInsert, remove, unset, clearAll. | |
revenue | any | Revenue mapping. Resolves to a single object or (via loop) an array, each with: productId, price, quantity, revenueType, currency, revenue, receipt, receiptSig, eventProperties. One amplitude.revenue() call fires per item. | |
group | any | Group assignment. Resolves to { type, name } -> amplitude.setGroup(type, name, eventOptions). | |
groupIdentify | any | Group properties. Resolves to { type, name, set?, setOnce?, ... } -> amplitude.groupIdentify(type, name, identify, eventOptions). | |
eventOptions | any | Per-rule EventOptions override. Resolves to { time?, insert_id?, ip?, ... }. Overrides destination-level eventOptions for this rule. | |
include | Array<string> | Per-rule include override. Replaces destination-level include for this rule. |
Examples
Consent granted
A walker consent command with analytics granted opts back into Amplitude tracking via setOptOut(false).
Consent revoked
A walker consent command with analytics denied opts out of Amplitude tracking via setOptOut(true).
Default event
A walkerOS event forwarded as an Amplitude track call with the event name and empty properties.
Identify per event
Destination-level identify resolves user_id, device_id, and session_id into the Amplitude EventOptions on every call.
Include data section
Destination-level include flattens the event data section into prefixed event_properties on every track call.
Event options
Destination-level eventOptions map walker fields into Amplitude per-event metadata such as time and insert_id.
Group assignment
A company update assigns the user to a group and sets group properties via setGroup plus groupIdentify.
Multi-product order
An order with multiple nested products fires one amplitude.revenue per product plus a single track for the order.
Subscription revenue
A subscription renewal fires a single amplitude.revenue call with productId, price, and a currency fallback.
User login identify
A user login maps to amplitude.identify with set, setOnce, and add operations while the default track call is skipped.