> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Mixpanel Webhook Setup Guide

> Configure Mixpanel to deliver events to StackOne.

## Prerequisites

The connector should already be set up, with a Connector Profile and a Linked Account. See [Getting Started](/connectors/mixpanel#getting-started) on the Mixpanel connector page.

<section data-guide-section data-guide-scopes="">
  <h2>Retrieve the Native Webhook URL from StackOne</h2>

  <p>The <strong>Native Webhook URL</strong> is a computed field on the linked account. It is generated once the account has been linked, and you paste it into Mixpanel in the sections below.</p>

  <Steps>
    <Step title="Open the linked account and copy the URL">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Open the linked account in StackOne Hub and copy the <strong>Native Webhook URL</strong> value. Keep it private — the URL includes a delivery token.</p>

        <ul>
          <li>Open the linked account in StackOne Hub.</li>
          <li>Copy the value from <strong>Native Webhook URL</strong>.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Open the Destination Library</h2>

  <p>Both Mixpanel webhook types are added from the Destination Library. Open it once, then follow the Cohort Sync or Custom Alert section below (or both).</p>

  <Steps>
    <Step title="Open the Destination Library">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to <a href="https://mixpanel.com" target="_blank" rel="noopener noreferrer">Mixpanel</a>, then open the destinations catalog and filter it to webhooks.</p>

        <ul>
          <li>Click the <strong>Settings</strong> (gear) icon at the bottom of the left sidebar, then click <strong>Destinations</strong>.</li>
          <li>Click <strong>Add Destination</strong> to open the <strong>Destination Library</strong>.</li>
          <li>Under <strong>Category</strong>, click <strong>Webhooks</strong> to show only <strong>Custom Webhook</strong> and <strong>Notification Webhook</strong>.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/CEZ3w51DK20s6_bR/connectors/mixpanel/images/events-destination-library.png?fit=max&auto=format&n=CEZ3w51DK20s6_bR&q=85&s=8d1d98473c783a5516c30d0b260055fa" alt="The Destination Library filtered to Webhooks, showing the Custom Webhook and Notification Webhook cards" width="1280" height="800" data-path="connectors/mixpanel/images/events-destination-library.png" />
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Set up Cohort Sync webhooks</h2>

  <p>A <strong>Custom Webhook</strong> destination sends a cohort's membership to StackOne — the full membership on the first sync, then incremental diffs of users who enter (`add_members`) or exit (`remove_members`) the cohort. Cohorts sync roughly every 30 minutes, and members are paginated at 1000 users per call.</p>

  <Steps>
    <Step title="Create the Custom Webhook connection">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click the <strong>Custom Webhook</strong> card to open the <strong>Connect to Custom Webhook</strong> dialog, then fill in the connection.</p>

        <ul>
          <li>Enter a <strong>Connector Name</strong> for the connection.</li>
          <li>Paste the Native Webhook URL into the <strong>URL</strong> field.</li>
          <li>Optionally add fields under <strong>Properties To Export</strong> to include extra user properties.</li>
          <li>Leave <strong>HTTP BasicAuth (Optional)</strong> blank, or set a <strong>Username</strong> and <strong>Password</strong> if you want Mixpanel to authenticate to the URL.</li>
          <li>Click <strong>Continue</strong>.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/CEZ3w51DK20s6_bR/connectors/mixpanel/images/events-custom-webhook.png?fit=max&auto=format&n=CEZ3w51DK20s6_bR&q=85&s=9738227d687abfed08a8c1b691f7de6b" alt="The Connect to Custom Webhook dialog with the Connector Name and URL fields highlighted" width="1280" height="800" data-path="connectors/mixpanel/images/events-custom-webhook.png" />
      </div>
    </Step>

    <Step title="Sync a cohort to the webhook">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Open the cohort you want to sync and select the Custom Webhook connection as its destination.</p>

        <ul>
          <li>Open a saved cohort and sync it to the Custom Webhook connection you created.</li>
          <li>Mixpanel sends the full membership first, then incremental diffs on each sync.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Set up Custom Alert webhooks</h2>

  <p>A <strong>Notification Webhook</strong> destination lets a Custom Alert notify StackOne (`custom_alert_triggered`) when the alert's threshold or anomaly condition is met. Register the webhook once, then select it on each alert that should notify StackOne.</p>

  <Steps>
    <Step title="Create the Notification Webhook">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click the <strong>Notification Webhook</strong> card to open the <strong>Create Webhook</strong> dialog, then fill in the webhook.</p>

        <ul>
          <li>Enter a <strong>Name</strong> for the webhook.</li>
          <li>Paste the Native Webhook URL into the <strong>URL</strong> field.</li>
          <li>Optionally set a <strong>Username</strong> and <strong>Password</strong> for Basic Authentication.</li>
          <li>Click <strong>Submit</strong> to save the webhook. <strong>Test connection</strong> may report a failure — StackOne only accepts recognized alert payloads, and the test ping is not one, so it is expected. Real alert deliveries are still received.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/CEZ3w51DK20s6_bR/connectors/mixpanel/images/events-notification-webhook.png?fit=max&auto=format&n=CEZ3w51DK20s6_bR&q=85&s=79da00f26b7308cb6a8ef7d484f2c4f3" alt="The Create Webhook dialog with the Name and URL fields highlighted" width="1280" height="800" data-path="connectors/mixpanel/images/events-notification-webhook.png" />
      </div>
    </Step>

    <Step title="Select the webhook on a Custom Alert">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Open or create a Custom Alert on an Insights or Funnels report, then route its notifications to the webhook you created. The alert fires only when its threshold or anomaly condition is met.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Available webhook events</h2>

  <p>Mixpanel delivers four webhook events across the two mechanisms. StackOne forwards the raw payload for each and routes it to the connected account by Project ID.</p>

  <Steps>
    <Step title="Cohort Sync events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sent when a cohort is synced to a Custom Webhook destination.</p>

        <ul>
          <li><strong>Cohort Full Sync</strong> (`members`) — The full cohort membership, sent on the first sync or as a full refresh after prolonged downtime.</li>
          <li><strong>Cohort Members Added</strong> (`add_members`) — Users who entered the cohort since the last sync.</li>
          <li><strong>Cohort Members Removed</strong> (`remove_members`) — Users who exited the cohort since the last sync.</li>
        </ul>
      </div>
    </Step>

    <Step title="Custom Alert event">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sent when a Custom Alert's condition is met.</p>

        <ul>
          <li><strong>Custom Alert Triggered</strong> (`custom_alert_triggered`) — Fired when a Custom Alert's threshold is breached or an anomaly is detected.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Delivery format</h2>

  <p>Details of how Mixpanel delivers webhooks to StackOne.</p>

  <Steps>
    <Step title="Review the payload">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Cohort Sync payloads carry the Project ID at `parameters.mixpanel_project_id`, with cohort metadata and a paginated `members` array. Custom Alert payloads carry it at `alert.project_id`.</p>

        <ul>
          <li>Cohort deliveries are paginated at 1000 users per call — use `parameters.page_info` to reassemble the full set.</li>
        </ul>
      </div>
    </Step>

    <Step title="Authentication">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Both mechanisms optionally support Basic Authentication on the webhook URL, set in Mixpanel when you create the destination.</p>

        <ul>
          <li>Mixpanel does not send a verification challenge or a signature header.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

## Verify

Your Connector should now be able to receive and process events. Try triggering an event and you should see an Event appear in the Connector logs.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.