Artikelen over: Developers

How to push Crisp Chat events to a product analytics software like Mixpanel, Posthog or Amplitude?

When a customer or a lead starts a chat with your team, that moment is more than just a support touchpoint, it’s a *key product signal*. Tracking these events in your analytics stack (Posthog, Mixpanel, Amplitude) helps you answer big questions: Do conversations accelerate conversions? Which campaigns drive the most chat activity? How does support volume correlate with retention? This guide shows you how to *push Crisp Chat events into your analytics tool* with a few lines of JavaScript, so your product and support data live in the same place.


Prerequisites


  • Crisp Chat Widget installed on your website.
  • Analytics SDK loaded (Posthog, Mixpanel, or Amplitude).
  • Access to edit your site ` `<head> `` code.z


Send Crisp events to Posthog

<script>  // Capture first conversation in Posthog  window.$crisp.push(["on", "message:send", function() {    if (sessionStorage.getItem("ph_crisp_conversation_started")) return;    posthog.capture("crisp_conversation_started", {      source: "crisp",      page: location.pathname + location.search    });    sessionStorage.setItem("ph_crisp_conversation_started", "1");  }]);</script>


This will create an event named *crisp_conversation_started* in Posthog, once per session.


Send Crisp events to Mixpanel

<script>  window.$crisp.push(["on", "message:send", function() {    if (sessionStorage.getItem("mp_crisp_conversation_started")) return;    mixpanel.track("crisp_conversation_started", {      source: "crisp"      page: location.pathname + location.search    });    sessionStorage.setItem("mp_crisp_conversation_started", "1");  }]);</script>


Send Crisp events to Amplitude

<script>  window.$crisp.push(["on", "message:send", function() {    if (sessionStorage.getItem("amp_crisp_conversation_started")) return;    amplitude.getInstance().logEvent("crisp_conversation_started", {      source: "crisp",      page: location.pathname + location.search    });    sessionStorage.setItem("amp_crisp_conversation_started", "1");  }]);</script>


Best practices


  • Use consistent event names (` `crisp_conversation_started ``) across tools.
  • Add extra context (e.g. campaign UTM, Crisp session ID) if useful.
  • Decide if you want *sessionStorage* (fires once per tab) or *localStorage* (fires once per browser).
  • Test in Incognito mode to simulate a fresh visitor.


Now every time a conversation starts in Crisp, your analytics software will record it, helping your team measure support impact on product adoption and revenue.

Bijgewerkt op: 12/02/2026

Was dit artikel nuttig?

Deel uw feedback

Annuleer

Dankuwel!