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:
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 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
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 { distinctId } → mixpanel.identify(distinctId). | |
people | any | Per-event people operations. Resolves to an object with any of: set, set_once, increment, append, union, remove, unset, delete_user. Each key fires a separate mixpanel.people.* call. | |
group | any | Per-event group assignment. Resolves to { key, id } → mixpanel.set_group(key, id). | |
groupProfile | any | Per-event group profile operations. Resolves to { key, id, set?, set_once?, unset?, union?, remove?, delete? } → mixpanel.get_group(key, id).set/... calls. | |
reset | any | Logout trigger. Resolves to a truthy value → mixpanel.reset(). Typically used with skip: true on a user logout rule. |
Examples
Delete user
An account delete fires Mixpanel people.delete_user to remove the user profile from the project.
Group profile
A company update sets Mixpanel group profile properties via get_group.set and get_group.set_once.
Consent granted
A walker consent command with analytics granted calls mixpanel.opt_in_tracking to resume event capture.
Consent revoked
A walker consent command with analytics denied calls mixpanel.opt_out_tracking to stop event capture.
Default track
A walker event becomes a Mixpanel track call with the event name and empty properties.
Destination identify
Destination-level identify calls mixpanel.identify with a resolved distinctId before firing the default track.
Include data
Destination-level include flattens the event data section into prefixed Mixpanel track properties.
All people operations
A profile update exercises the full Mixpanel people vocabulary including set, increment, append, union, and remove.
Rule include overrides
A per-rule include replaces the destination-level include for this event, forwarding only globals here.
Group association
A user login associates the user to a company group via mixpanel.set_group and fires the default track.
User login identify
A user login identifies the user and fires Mixpanel people set, set_once, and increment operations.
User logout reset
A user logout calls mixpanel.reset to clear persistence and generate a new anonymous distinct id.
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.).