Mixpanel
Mixpanel is a product analytics platform with people
profiles, group analytics, and cohort-based reporting. This destination forwards
walkerOS events to Mixpanel via the official
mixpanel-browser SDK,
translating events into mixpanel.track(...) calls and resolving identity,
people properties, group assignments, and consent opt-in/opt-out.
Mixpanel is a web destination in the walkerOS flow:
Loads the Mixpanel SDK, forwards every walkerOS event, and lets you layer on identity, people profile operations, group analytics, and consent handling.
Installation
Setup
- Integrated
- Bundled
Configuration reference
| Property | Type | Description | More |
|---|---|---|---|
apiKey | string | Your Mixpanel project token. Find it in your Mixpanel project settings under "Project Settings" and "Access Keys". Passed to mixpanel.init() as the first argument (like a1b2c3d4e5f6789012345678abcdef12). | |
api_host | string | Mixpanel ingestion host. Default: https://api-js.mixpanel.com. Use https://api-eu.mixpanel.com for EU residency. | |
persistence | 'cookie' | 'localStorage' | Client-side persistence backend. Default: cookie. | |
cross_subdomain_cookie | boolean | Share cookie across subdomains. Default: true. | |
cookie_expiration | integer | Cookie expiration in days. Default: 365. | |
secure_cookie | boolean | Only send cookie over HTTPS. Default: false. | |
ip | boolean | Enable server-side IP geolocation. Default: true. | |
batch_requests | boolean | Use the /batch endpoint instead of individual requests. Default: true. | |
batch_size | integer | Max events per batch. Default: 50. | |
batch_flush_interval_ms | integer | Batch flush interval in ms. Default: 5000. | |
debug | boolean | Enable verbose SDK logging. Default: false. | |
opt_out_tracking_by_default | boolean | Start in opted-out state until opt_in_tracking() is called. Default: false. | |
track_pageview | boolean | string | Enable Mixpanel auto-pageview tracking. walkerOS default: false — walkerOS sources handle page views. | |
autocapture | any | Enable Mixpanel web autocapture. walkerOS default: false — walkerOS sources handle event capture. | |
record_sessions_percent | number | Session replay sampling rate (0-100). Default: 0 (disabled). Session replay is bundled in the npm build. | |
record_mask_all_inputs | boolean | Mask all input values in session replay. Default: true. | |
identify | any | walkerOS mapping value resolving to an identity object. Keys: distinctId. | |
group | any | walkerOS mapping value resolving to { key, id } → mixpanel.set_group(key, id). Runs on destination init or per-event. |
Mapping data.examples
The code data.examples are interactive. You can edit the code to generate your individual event mapping.
Default event forwarding
Every walkerOS event becomes mixpanel.track(event.name, properties).
Without include config, properties is empty. Add include: ['data']
to the destination config to forward event data as properties.
Identify with people properties
Resolve a mapping value into Mixpanel's identity vocabulary. distinctId is
the new user identity, and set/setOnce/increment/append/union operate
on the user's people profile via mixpanel.people.*.
People profile operations only
When the resolved object has no distinctId, identity is unchanged but the
people operations still fire, which is useful for profile updates that should not
create a new identity.
Group association and group profiles
settings.group calls mixpanel.set_group(key, id) to associate the user
with a group. settings.groupIdentify writes properties on the group profile
itself via mixpanel.get_group(key, id).set/setOnce/union/....
Logout
settings.reset: true calls mixpanel.reset() to clear distinct ID and
super properties on logout. Combine with skip: true so the rule does not
fire a default track() call.
Consent
Declare required consent keys via config.consent. When a walker consent
event arrives with all declared keys granted, the destination calls
mixpanel.opt_in_tracking(). When any declared key is revoked, it calls
mixpanel.opt_out_tracking(), which stops Mixpanel from capturing or
queueing events:
Without config.consent the destination takes no action on consent changes;
the walkerOS config.consent gate still blocks unconsented events from
reaching the destination in the first place.
Intentionally not supported
Mixpanel features that are deferred or not in scope for v1:
alias(): anonymous-to-identified merging is handled by walkerOS identity (the source resolves the user before pushing).register()/ super properties: use destination-levelsettings.includeto attach properties on every event instead. Mixpanel's super-property pattern overlaps with walkerOS's mapping model.people.track_charge: deprecated by Mixpanel since v2.78. Send revenue events as regulartrack()calls with arevenueproperty.time_event/ page view auto-tracking: walkerOS sources handle event capture and timing.
All other built-in mixpanel-browser config options pass through settings
directly (e.g. api_host, persistence, cross_subdomain_cookie,
secure_cookie, ip, property_blacklist, loaded callback, etc.).