What Mixpanel Tells You That Bubble Can't
Bubble gives you data about what's in your database. Mixpanel tells you what users are doing with your product. These are fundamentally different questions. Your Bubble database tells you that a user has three projects. Mixpanel tells you they created the first project on day one, the second on day five, and haven't created one since — and that users who create three projects in their first week have 4x higher retention than those who create one.
Mixpanel is an event-based product analytics tool. It tracks user actions (events), lets you build conversion funnels, measure retention cohorts, and analyze user flows through your product. For Bubble builders who want to understand how people actually use their app — not just how many people sign up — Mixpanel is the standard tool.
Use Cases for Mixpanel in Bubble
The first and most valuable use case is funnel analysis. You define a sequence of events — sign up, complete onboarding, create first project, invite a teammate — and Mixpanel shows you exactly where users drop off. If 80% of users sign up but only 20% complete onboarding, you know where to focus. You can't get this level of insight from Bubble's database alone.
The second use case is retention analysis. Mixpanel's retention reports show you what percentage of users come back after day 1, day 7, day 30, and beyond. More importantly, you can segment retention by user properties or behaviors. Do users who came from Google Ads retain differently than organic users? Do users who used feature X in their first session retain better? Mixpanel answers these questions automatically.
The third use case is feature adoption tracking. When you launch a new feature in your Bubble app, Mixpanel shows you who's using it, how often, and whether it correlates with better retention or conversion. This data drives product decisions — double down on features users love, kill features nobody touches.
Setting Up Mixpanel in Bubble
Mixpanel offers two integration paths for Bubble: their JavaScript SDK for front-end tracking and their HTTP API for server-side events. Most Bubble apps use both.
For front-end tracking, grab Mixpanel's JavaScript snippet from your Mixpanel project settings. It contains your project token. Add this snippet to your Bubble app's header in Settings, then SEO/metatags. This loads the Mixpanel library and automatically tracks page views if you enable autocapture.
To identify users, call mixpanel.identify with the current user's Bubble unique ID after login. Then call mixpanel.people.set to attach user properties like name, email, plan type, and sign-up date. Use Bubble's Toolbox plugin or an HTML element to execute these JavaScript calls. The identify call must happen on every page load for logged-in users to ensure events are attributed to the right person.
For tracking custom events, use the Toolbox plugin's "Run JavaScript" action in your Bubble workflows. Call mixpanel.track with the event name and a properties object. For example, when a user creates a project: mixpanel.track with "Project Created" and properties including project_type, template, and number_of_fields. Keep event names in a consistent format — Mixpanel recommends Title Case.
Server-Side Tracking with API Connector
Events that happen in Bubble's backend — webhook handlers, scheduled workflows, payment processing — don't run in the browser, so the JavaScript SDK can't capture them. Use Mixpanel's HTTP API for these events.
In Bubble's API Connector, create an API called "Mixpanel" with base URL https://api.mixpanel.com. For the track endpoint, POST to /import with your project token and API secret for authentication. The request body contains an array of event objects, each with event (name), properties including distinct_id (Bubble user's unique ID), time (Unix timestamp), and any custom properties.
Add these API Connector calls to your backend workflows. When a payment succeeds via Stripe webhook, fire a Mixpanel track call for "Payment Completed" with amount, plan, and payment method as properties. When a scheduled workflow runs a daily digest, track "Digest Sent" with recipient count and content type.
The /import endpoint is preferred over /track for server-side events because it supports historical timestamps. The /track endpoint always uses the current server time, which can be inaccurate for events that happened earlier (like processing a webhook that was delayed).
Building Your Event Taxonomy
Before you add tracking code to every workflow, plan your event taxonomy. A good taxonomy for a Bubble SaaS app typically includes lifecycle events (Signed Up, Logged In, Trial Started, Plan Upgraded, Plan Canceled, Account Deleted), core action events (the three to five actions that define what your product does), feature events (tracking usage of specific features), and engagement events (Session Started, Page Viewed, Search Performed).
Each event should have relevant properties. A "Project Created" event might include project_type, template_used, number_of_collaborators, and is_first_project. These properties let you segment your analysis later — comparing retention of users who create projects from templates versus from scratch, for instance.
Limit yourself to 20 to 30 core events when starting out. You can always add more. Too many events early on creates maintenance burden and makes analysis harder. Focus on the events that map to your product's key activation metrics and business KPIs.
Common Pitfalls
The number one mistake is not calling mixpanel.identify consistently. If you forget to identify the user on some pages, those page views and events get attributed to anonymous IDs. Your funnel analysis breaks because Mixpanel thinks step two was performed by a different person than step one. Add the identify call to a reusable header element or page load workflow that runs on every page.
Property types also cause issues. If you send a property as a string in one event and a number in another, Mixpanel stores it as two different types and some reports won't work correctly. For example, sending revenue as "49.99" (string) in one call and 49.99 (number) in another creates problems in Mixpanel's revenue analysis. Be consistent with types across all events.
Timezone handling is a subtle but important pitfall. Mixpanel's JavaScript SDK uses the user's local timezone, but the HTTP API uses UTC by default. If you're mixing front-end and server-side tracking, your time-based reports (daily active users, hourly activity patterns) might be inaccurate. Set explicit timezones in your Mixpanel project settings and use consistent timestamp formatting.
Watch out for duplicate events too. If both your JavaScript SDK and API Connector track the same event (for instance, a form submission that triggers both a front-end JavaScript call and a backend workflow), you'll double-count. Decide which integration point tracks which events and stick to the division.
DIY vs Hiring a Bubble Developer
Basic Mixpanel setup — the JavaScript snippet, user identification, and five to ten custom events — is a one to two day project for most Bubble builders. The JavaScript is minimal and Mixpanel's docs are excellent. Where it gets complex is building a comprehensive event taxonomy, ensuring consistent tracking across dozens of workflows, and setting up server-side tracking through the API Connector.
For products past the MVP stage where analytics drives product decisions, spending a week on proper Mixpanel implementation is one of the highest-ROI investments you can make. If you don't have the bandwidth, a developer experienced with Mixpanel and Bubble can ship a full implementation in three to five days, including the tracking plan, front-end and server-side integration, and initial dashboard setup.
Make Data-Driven Product Decisions
Related guides:
Bubble intercom integration guide
how to build a membership site with Bubble
Mixpanel transforms your Bubble app from a product you guess about to one you measure. Funnel analysis, retention cohorts, and feature adoption tracking give you the data to build what users actually want. Talk to our team at Goodspeed Studio about setting up analytics that drive real product decisions.
Mixpanel Shows You What Bubble's Database Can't
Mixpanel is the difference between knowing how many users you have and knowing what those users actually do. Event-based tracking, funnel analysis, and retention cohorts give you the product insights that drive growth. Plan your event taxonomy before implementation, keep it focused, and ensure consistent user identification across every page. Talk to our Bubble developers.

Harish Malhi
Founder of Goodspeed
Harish Malhi is the founder of Goodspeed, one of the top-rated Bubble agencies globally and winner of Bubble’s Agency of the Year award in 2024. He left Google to launch his first app, Diaspo, built entirely on Bubble, which gained press coverage from the BBC, ITV and more. Since then, he has helped ship over 200 products using Bubble, Framer, n8n and more - from internal tools to full-scale SaaS platforms. Harish now leads a team that helps founders and operators replace clunky workflows with fast, flexible software without writing a line of code.
Frequently Asked Questions (FAQs)
Is Mixpanel free to use with Bubble?
Mixpanel's free plan includes up to 20 million events per month, which is generous enough for most Bubble apps. It includes all core features: funnels, retention, flows, and unlimited saved reports. Paid plans add features like group analytics and data modeling starting at around $25 per month.
How is Mixpanel different from Google Analytics for Bubble?
Google Analytics focuses on website traffic — where visitors come from and which pages they view. Mixpanel focuses on product usage — what users do inside your app after they sign up. For SaaS products built in Bubble, Mixpanel answers product questions (activation, retention, feature adoption) while Google Analytics answers marketing questions (acquisition, traffic sources).
Can I track Bubble database changes in Mixpanel?
Yes. Add Mixpanel API Connector calls to your Bubble workflows wherever database changes occur. When a record is created, updated, or deleted through a workflow, fire a Mixpanel track call with the relevant event name and properties. This captures backend actions that the JavaScript SDK can't see.
How many events should I track in Mixpanel from my Bubble app?
Start with 15 to 25 core events covering your activation funnel, key product actions, and subscription lifecycle. You can always add more later. Tracking too many events early creates noise and maintenance overhead. Focus on events that map to your product's key metrics and business decisions.
Can Mixpanel track events across Bubble's single-page app navigation?
Yes. Since Bubble uses client-side navigation that doesn't reload the page, Mixpanel's JavaScript SDK stays loaded and the user stays identified throughout their session. Track page views manually by calling mixpanel.track with a Page Viewed event in each page's workflow, since automatic page view tracking may not fire on Bubble's client-side page changes.
Does Mixpanel impact my Bubble app's performance?
Mixpanel's JavaScript SDK adds about 40KB to your page load, which is relatively lightweight. Events are sent asynchronously and don't block the UI. The main performance consideration is in your Bubble workflows — each API Connector call to Mixpanel's server-side API adds a small amount of workflow execution time.
