Intercom Conversation Volume + Mixpanel Activation Rate: Correlated Weekly Health Score to Slack via Zapier

One number every Monday that tells you whether support is up because you're growing or because something broke.

The flow
Mixpanel logo
Source
Mixpanel
Intercom logo
Process
Intercom
Zapier logo
Process
Zapier
Slack logo
Destination
Slack

The stack in the order it runs — data flows from the source through to where it lands.

Why this stack

Support volume going up is ambiguous on its own. Could mean growth. Could mean a bad release. Activation rate going down is the same — worse-fit users, or a broken flow. Correlate both signals together weekly and the pattern becomes readable: volume up + activation down = product problem. Volume up + activation stable = growth. Volume down + activation up = product getting better.

Zapier is here because its Mixpanel and Intercom integrations are mature and handle auth reliably. This is a weekly scheduled workflow a non-engineer needs to own and maintain. If you're already running n8n or Make, swap Zapier out — the logic is identical. The real tradeoff with Zapier is cost at scale. At high task volume, self-hosted n8n is cheaper.

Mixpanel's Data Export API (`/api/2.0/insights`) lets you pull a weekly funnel report by passing your funnel ID. You need to have already built your activation funnel in Mixpanel's UI — this workflow reads it, it doesn't define it. Intercom's Reports API (`/reports/conversation_totals`) returns opened, closed, and unanswered conversation counts for a date range.

Don't use this as a replacement for looking at the underlying data. This is a triage signal — a weekly 'should I dig in?' indicator. When the health score flags red, you still need to open Mixpanel and Intercom to understand why. The automation gets you to the right question faster. It doesn't answer it.

The stack (4)

  1. Mixpanel logo

    Product analytics for events and funnels.

    The export/query API turns product metrics into scheduled reports you push to chat.

  2. Intercom logo

    Customer messaging + support inbox.

    Conversation data surfaces churn/expansion signals worth routing to chat.

  3. Zapier logo

    No-code automation across 6k+ apps.

    Fastest path from "when X happens, do Y" without standing up infrastructure.

  4. Slack logo

    Team chat where most ops alerts and reports land.

    The default place a small team already lives — pipe reports here instead of email nobody opens.

How it runs

  1. 1

    Set up a Zapier Schedule trigger for Monday mornings

    Create a new Zap. Set the trigger to 'Schedule by Zapier' — choose 'Every Week' on Monday at 8:00 AM. It fires once weekly regardless of what else has changed. Name the Zap `Support-Activation Health Score`. You'll need Zapier's Webhooks and Code by Zapier steps — both are on paid plans — for the API calls and computation ahead.

  2. 2

    Pull last week's Intercom conversation totals

    Add a 'Webhooks by Zapier' step set to GET. URL: `https://api.intercom.io/reports/conversation_totals?start={last_monday_unix}&end={last_sunday_unix}`. Add an Authorization header: `Bearer YOUR_INTERCOM_ACCESS_TOKEN`. Use 'Code by Zapier' (Python) to compute `last_monday_unix` and `last_sunday_unix` dynamically — don't hardcode dates. The response includes `total_count`, `open`, `closed`, and `resolved_rate`. Capture `total_count` and `resolved_rate`.

  3. 3

    Pull last week's activation funnel from Mixpanel

    Add another 'Webhooks by Zapier' GET step. URL: `https://mixpanel.com/api/2.0/funnels/?funnel_id={YOUR_FUNNEL_ID}&from_date={last_monday}&to_date={last_sunday}&unit=week`. Authenticate with HTTP Basic Auth using your Mixpanel Service Account username and secret. The response returns `data.values` — extract the overall funnel conversion rate from step 1 to your final activation step. That's your `activation_rate` for the week.

  4. 4

    Fetch the prior week's baseline values for comparison

    Repeat steps 2 and 3 with date ranges shifted back 7 days — the week before last. This gives you `prior_conversation_count` and `prior_activation_rate`. You're computing week-over-week deltas, not comparing against a static hardcoded baseline. That's intentional — it makes the health score adaptive to your growth stage. Store all four values in Zapier's 'Storage by Zapier' key-value store, keyed by date, so you have a lightweight history.

  5. 5

    Compute the health score in a Code step

    Add a 'Code by Zapier' step in JavaScript. Compute `volume_delta_pct = ((current_conversations - prior_conversations) / prior_conversations) * 100` and `activation_delta_pp = current_activation_rate - prior_activation_rate`. Health score logic: GREEN if volume_delta < 20% AND activation_delta > -2pp; YELLOW if volume_delta > 20% OR activation_delta is between -5pp and -2pp; RED if volume_delta > 40% AND activation_delta < -2pp, or if activation_delta < -5pp regardless of volume. Output `{ health_score, volume_delta_pct, activation_delta_pp, current_conversations, current_activation_rate }`.

  6. 6

    Post the health score to Slack with emoji-coded severity

    Add a Slack 'Send Channel Message' step. Post to `#product-ops`. Message format: '**Weekly Product Health — {date_range}** 🟢/🟡/🔴 {health_score} Support Volume: {current_conversations} convos ({volume_delta_pct}% WoW) Activation Rate: {current_activation_rate}% ({activation_delta_pp}pp WoW) Support Resolution Rate: {resolved_rate}% {interpretation}' For the interpretation field: hardcode three short strings based on the health score state. Don't call Claude or any LLM for this. It adds latency and cost for what is just a conditional string.

  7. 7

    Add a Slack alert-only message when the score is RED

    Add a Zapier 'Filter' step after the health score computation: only continue if `health_score === 'RED'`. After the filter, add a second Slack step that posts to `#alerts` — not just `#product-ops` — in a more urgent format: '🚨 Product Health RED this week — Support volume up {X}% while activation dropped {Y}pp. Review Mixpanel funnel and Intercom conversation tags immediately.' Tag the relevant PM and support lead by Slack user ID directly in this message.

Want me to build this for you instead?

Product Audit and CTO Mode run out of this same thinking. If you’re reading this thinking “I want this, but in my product” — let’s talk.

See services

More like this