Skip to content

Mixpanel: set profile

Use Mixpanel: set profile to update the Mixpanel profile of the traveler from a journey step, through the Engage API, authenticating with a project token. No separate connection or service account is needed.

Typical uses:

  • Sync tags into Mixpanel segments: push plan, email, or another tag onto the Mixpanel profile so Mixpanel cohorts match Pushwoosh audiences.
  • Keep profiles current without a separate sync job: update the profile at the exact journey step where the tag changed.
  • Pair with Track event: use the same Distinct ID as the paired Mixpanel: track event point so events and profile updates land on the same Mixpanel person.

Configure the point

Anchor link to
  1. Drag Mixpanel: set profile from the Integrations section onto the canvas.
  2. Double-click the point and enter a Step Name.
  3. In API host, pick the region the Mixpanel project stores its data in: api.mixpanel.com for a US project, api-eu.mixpanel.com for an EU one.
Mixpanel set profile drawer with Step Name filled and API host set to api.mixpanel.com
  1. In Project token, enter the project token from Mixpanel: Settings > Project Settings. The profile API takes the token in the request body, so, unlike Mixpanel: track event, no service account is required here.
Project token field with a placeholder value
  1. In Distinct ID, enter whose profile to update. Use the same identifier as the paired Mixpanel: track event point, since both default to {{device:user_id}}. A mismatch sends events and profile updates to two different Mixpanel people.
Distinct ID field set to a device user_id macro
  1. In Update mode, choose $set to overwrite the listed properties every time, or $set_once to write them only where the profile doesn’t already have a value.
Update mode field set to $set
  1. In Profile properties, add one row per property to set on the Mixpanel profile. Enter the property name and the value. Names must be non-empty and unique. Use Mixpanel’s own reserved names where they apply, for example $email or $name. A value that’s a single traveler macro keeps its own type ({{tag:Age}} arrives as a number). Any other text is sent as a string. Macros use the same syntax as a Webhook body. Or click Insert Dynamic Value to pick an attribute an earlier step in this journey produced, for example an LLM response or a mapped Webhook value.
Profile properties table with $email and $name mapped to tag macros
  1. Click Save.

The traveler continues to whatever step you connect next on the canvas.

Attributes after the step runs

Anchor link to

This point doesn’t map any response data back into the journey.

Failures and unexpected responses

Anchor link to

A failed request drops the traveler from the journey. See Errors and failed requests.

Example scenario: Keeping a Mixpanel profile in sync with a journey update

Anchor link to

A team wants a traveler’s plan tier to update on their Mixpanel profile as soon as it changes in Pushwoosh.

  1. Add Mixpanel: set profile right after the step where the plan tier changes. Set Distinct ID to {{device:user_id}} (matching the paired Mixpanel: track event point) and Update mode to $set. In Profile properties, set $email to {{tag:Email}}.
  2. Click Save.

Once this runs, the Mixpanel profile reflects the plan change without a separate sync job.