# Mixpanel: track event

The **Mixpanel: track event** Point template sends one event to a Mixpanel project through the [Import API](https://developer.mixpanel.com/reference/import-events), with the properties you list.

This point authenticates with its own Mixpanel service account — it doesn't use any account-level Mixpanel integration configured elsewhere in Settings.

Pushwoosh sets Mixpanel's `$insert_id` for you from the traveler, so the same traveler passing through this exact point twice — for example on a second lap of a looping journey — lands as one deduplicated event in Mixpanel, not two. Deduplication is scoped to insert ID and event name together, so give every Track event point on the canvas its own **Event name** — reusing one across two different points can drop one traveler's event as a duplicate of the other's.

## Configure the point

1. Drag **Mixpanel: track event** 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.
4. In **Project ID**, enter the numeric project ID from Mixpanel: **Settings > Project Settings**.
5. In **Service account username**, enter the username of a Mixpanel service account with the **Ingestion** role, from **Organization Settings > Service Accounts**.
6. In **Service account secret**, enter that service account's secret. Pushwoosh combines the username and secret into the request's Basic Authorization header for you. The secret is stored masked, like a webhook secret header, and Mixpanel only ever shows it once, when the service account is created — copy it then.
7. In **Distinct ID**, enter who the event belongs to in Mixpanel. Defaults to `{{device:user_id}}`; use `{{device:hwid}}` instead to key events by device.
8. In **Event name**, enter the event name Mixpanel should show, for example `journey_welcome_push_sent`.
9. In **Event properties**, add the property name mapped to the value to send — see [key/value fields](/product/customer-journey/journey-elements/integrations/#configuring-list-and-keyvalue-fields). A value that's a single macro keeps its own type in Mixpanel (`{{tag:Age}}` arrives as a number, `{{tag:Trial Ends}}` as a date); any other text is sent as a string.
10. Click **Save**.

This point doesn't map any response data back into the journey. A failed request drops the traveler from the journey — see [Errors and failed requests](/product/customer-journey/journey-elements/integrations/#errors-and-failed-requests).