Destinations
Destinations are the endpoints where walkerOS sends your processed events. They transform standardized walkerOS events into the specific formats required by analytics platforms, marketing tools, data warehouses, and custom APIs.
Each destination operates independently, so one failed destination won't affect others.
Analytics tools
| Destination | Web | Server |
|---|---|---|
| Amplitude | Yes | Yes |
| Clarity | Yes | - |
| GA4 | Yes | - |
| GTM | Yes | - |
| Mixpanel | Yes | Yes |
| Piwik PRO | Yes | - |
| Plausible | Yes | - |
| PostHog | Yes | Yes |
| Segment | Yes | Yes |
| Snowplow | Yes | - |
Marketing tools
Data warehouses
| Destination | Web | Server |
|---|---|---|
| API | Yes | Yes |
| AWS Firehose | - | Yes |
| GCP BigQuery | - | Yes |
Create your own
Build a custom destination for any endpoint. See Create your own destination for a step-by-step guide.
Configuration
These fields are available on every destination, regardless of package. They
wrap the package-specific settings field, which is documented on each
destination's page.
| Property | Type | Description | More |
|---|---|---|---|
consent | WalkerOS.Consent | Required consent states to send events to this destination | |
settings | Destination.Settings | Implementation-specific configuration | |
data | any | any | Global data transformation applied to all events for this destination | |
include | Array<string> | Event sections to flatten into context.data | |
env | Destination.Env | Environment dependencies (platform-specific) | |
id | string | Destination instance identifier (defaults to destination key) | |
init | boolean | Whether to initialize immediately | |
loadScript | boolean | Whether to load external script (for web destinations) | |
mapping | Mapping.Rules | Entity-action specific mapping rules for this destination | |
policy | Mapping.Policy | Pre-processing policy rules applied before event mapping | |
queue | boolean | Whether to queue events when consent is not granted | |
require | Array<string> | Defer destination initialization until these collector events fire (e.g., ["consent"]) | |
logger | Logger.Config | ||
setup | boolean | object | One-time setup options applied during destination registration (boolean enables defaults, object configures specifics) | |
before | RouteWithoutMany | Post-collector transformer chain applied before this destination receives the event. `many` is not valid here — use multiple destinations for post-collector fan-out. | |
next | RouteWithoutMany | Post-push transformer chain. Runs after destination push completes; push response is available at ingest._response. `many` is not valid here — use multiple destinations for post-collector fan-out. | |
cache | EventCache.Config | Cache configuration for deduplication; skip push on cache HIT | |
state | State.Config | State.Config[] | Declarative store get/set operations applied around this destination | |
disabled | boolean | Completely skip this destination (no init, no push, no queue) | |
mock | Destination.Mock | ||
queueMax | number | Maximum consent-denied events retained in queuePush for this destination. FIFO drop on overflow. Default 1000. | |
dlqMax | number | Maximum failed-push entries retained in dlq for this destination. FIFO drop on overflow. Default 100. | |
batch | number | object | Batch scheduling: bare number is the debounce wait window (legacy); object form supports wait (debounce ms), size (count cap, default 1000), age (max ms since first entry, default 30000). |
💡 Need implementation support?
elbwalker offers hands-on support: setup review, measurement planning, destination mapping, and live troubleshooting. Book a 2-hour session (€399)