Amplitude
Amplitude is a product analytics platform with
built-in identity, revenue, groups, and optional session replay, feature
experiments, and guides & surveys. This destination forwards walkerOS events
to Amplitude via the official
@amplitude/unified
SDK, translating events into amplitude.track(...), identify(...),
revenue(...), setGroup(...), and setOptOut(...) calls. Loads the
Amplitude Analytics SDK, forwards every walkerOS event, and lets you layer
on identity, revenue, groups, consent toggling, and optional plugins.
Amplitude is a web destination in the walkerOS flow:
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" (like a1b2c3d4e5f6789012345678abcdef12). | |
serverZone | 'US' | 'EU' | Amplitude server zone. Default: US. | |
flushIntervalMillis | integer | How often (in ms) to flush the event queue. Default: 1000. | |
flushQueueSize | integer | Max queued events before a flush. Default: 30. | |
flushMaxRetries | integer | Max retries on failed flush. Default: 5. | |
transport | 'fetch' | 'xhr' | 'beacon' | HTTP transport. Default: fetch. | |
useBatch | boolean | Use the Amplitude batch endpoint instead of the standard endpoint. Default: false. | |
appVersion | string | Application version; tagged onto every event. | |
identify | any | walkerOS mapping value resolving to an identity object. Keys: user, device, session, set, setOnce, add, append, prepend, preInsert, postInsert, remove, unset, clearAll. | |
sessionReplay | any | Session Replay options. When present, session replay is enabled via @amplitude/unified with the provided options. | |
experiment | any | Feature Experiment config. Must include `deploymentKey`. When present, the experiment plugin from @amplitude/unified is configured with the provided options. | |
engagement | any | Guides & Surveys config. Pass `true` for defaults, or an options object for custom configuration. Enabled via @amplitude/unified. |
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, device, session, set, setOnce, add, append, prepend, preInsert, postInsert, remove, unset, clearAll. | |
revenue | any | Revenue mapping. Resolves to a single object or (via loop) an array of objects, 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). | |
groupIdentify | any | Group properties. Resolves to { type, name, set?, setOnce?, ... } → amplitude.groupIdentify(type, name, identify). | |
reset | any | Logout trigger. Resolves to a truthy value → amplitude.reset() (clears userId, regenerates deviceId). Typically used with skip: true on a user logout 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 track
A walker event is forwarded to Amplitude as an amplitude.track call with the event name and empty properties.
Destination identify
Destination-level identify sets userId, deviceId, and sessionId on the Amplitude client before sending events; setters only re-fire when the resolved values change (cached values are not re-applied on subsequent pushes).
Include data
Destination-level include flattens the event data section into prefixed event_properties on every track call.
Group assignment
A company update assigns the user to a group and sets group properties via setGroup and groupIdentify.
Multi-product order
An order fires one amplitude.revenue call per nested product plus a single track for the order totals.
Rule include overrides
A per-rule include replaces the destination-level include for the matched event, here using only globals.
Subscription revenue
A subscription renewal fires a single amplitude.revenue call with productId, price, and currency fallback.
User login identify
A user login sets the Amplitude userId and runs identify with set, setOnce, and add operations.
User logout reset
A user logout calls amplitude.reset to clear the userId and regenerate the deviceId.
Plugins
All three plugin packages are npm-bundled with the destination (~135 KB for Session Replay plus Experiment and Engagement payloads). Enable them via destination settings:
settings: {
apiKey: 'YOUR_KEY',
sessionReplay: { sampleRate: 1 },
experiment: { deploymentKey: 'DEPLOYMENT_KEY' },
engagement: true,
}