Yes, there are a few approaches you can take to prevent consultants from seeing first and last names in the Users view:
1. Don't Send Names in the First Place (Best Practice)
The simplest and most recommended approach is data minimization â avoid sending $name, $first_name, and $last_name as user profile properties if they aren't needed for your analytics. [Data Privacy Guide]
2. Use Classified Data
If names are already being collected and you need to keep them for some users (e.g., admins), you can mark those properties as "Classified" in Mixpanel. This restricts visibility so only users explicitly granted access to classified data can see them. Consultants without that permission would not be able to view the values. [Data Access Setup]
3. Use Data Views
You can create a Data View that excludes the name properties and assign your consultants to that view. This curates what data is visible to specific groups of users without affecting data ingestion. [Governance & Access]
4. Pseudonymize the User ID
If the names are being used as identifiers, consider switching to a hashed internal user ID instead. This way, users cannot be traced back to their real identity within Mixpanel. [Anonymizing Users]
Recommended approach: Combine Classified Data (to tag name properties) with a Data View that excludes classified properties for your consultants' role. This is the most practical solution if you still need names accessible to certain internal users.
âšī¸Â Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
When using the CDN snippet method, the Mixpanel SDK is automatically exposed as a global window.mixpanel object. The snippet sets window.mixpanel = b before the library loads, so you can call mixpanel.* methods anywhere on the page immediately. [Installing the Library] Just paste the snippet before your closing </head> tag and call mixpanel.init():
<script type="text/javascript">
(function (f, b) { if (!b.__SV) { var e, g, i, h; window.mixpanel = b; /* ... full snippet ... */ } })(document, window.mixpanel || []);
mixpanel.init("YOUR_PROJECT_TOKEN", {
track_pageview: true,
});
</script>The key part is window.mixpanel = b inside the snippet â this ensures mixpanel is globally accessible. [Installing the Library]
If you're using npm/yarn instead, the SDK is not automatically global. You import it as a module and use it within your JS files:
import mixpanel from 'mixpanel-browser';
mixpanel.init("YOUR_PROJECT_TOKEN", {
track_pageview: true,
persistence: "localStorage",
});If you need it globally in an npm setup, you can manually assign it after importing:
import mixpanel from 'mixpanel-browser';
window.mixpanel = mixpanel;However, the knowledge sources don't explicitly recommend this pattern â it's generally better to import the module where needed rather than relying on a global.
âšī¸Â Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
The knowledge sources do not contain information about sending data from Mixpanel to Hotjar as an integration. Mixpanel and Hotjar are separate tools, and the available documentation does not describe a native integration between them for data export. What the knowledge sources do mention is that Mixpanel can receive data from various sources (SDKs, CDPs like Segment, data warehouses, etc.) and can export cohorts to destinations via webhooks or native integrations. However, Hotjar is not listed among Mixpanel's supported integration destinations. [All Integrations] If you're looking to use both tools together, I'd recommend checking Hotjar's own documentation for any Mixpanel integration they may support on their end. You could also explore Mixpanel's integrations directory for the full list of supported partners.
âšī¸Â Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
This is a nuanced situation. Here's what's happening and how to interpret it:
Why $search_engine is set but other properties are empty
Mixpanel's JavaScript SDK sets $search_engine by detecting the referring domain and matching it against a list of known search engine domains (e.g., google.com, bing.com). It also captures mp_keyword if search keywords are present in the referrer URL. [Default Event Properties] However, $referrer and $referring_domain are session-level properties that can be absent in certain situations:
"Might not be present if document.referrer does not return a value. As opposed to $initial_referrer and $initial_referring_domain, this property will be omitted if the user lands directly or the referring website adds the rel="noreferrer" parameter." [Default Event Properties]
So what likely happened:
The first page view in the session captured the referrer from a search engine, allowing $search_engine to be set (and possibly stored as a super property or in the cookie).
Subsequent page views in the same session may no longer have document.referrer set (since the user is now navigating within your site), so $referrer and $referring_domain are absent.
UTM parameters (utm_source, utm_medium) are simply not present because the user arrived organically â no UTM tags were in the URL.
Should you count these as "Organic Search"?
Yes, you should. The presence of $search_engine is a strong signal that the user arrived via an organic search engine visit. The absence of UTM parameters is consistent with organic traffic (UTMs are only present in paid/tagged campaigns). [Web Attribution] A practical approach:
Use $search_engine is set as your primary filter/condition to identify organic search traffic.
You can use Mixpanel's Custom Properties to create a "Marketing Channel" property that classifies traffic as "Organic Search" when $search_engine is set and UTM parameters are absent. [Custom Properties Use Cases]
This is consistent with the general guidance that a (not set) UTM value indicates organic or direct traffic, and $search_engine being populated confirms it's specifically organic search rather than direct. [Web Attribution]
âšī¸Â Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
Based on the knowledge sources available, here are the relevant rate limits for Mixpanel APIs that could be causing your 429 errors:
Mixpanel Rate Limits
API | Rate Limit |
Ingestion API (/track or /import) | 2GB uncompressed JSON/min or ~30k events/second |
Query API | 60 queries/hour, max 5 concurrent queries |
Raw Data Export API | 60 queries/hour, 100 concurrent, 3 queries/second |
Lexicon Schemas API | 5 requests/minute |
GDPR API | 1 request/second |
Regarding "remote evaluation" specifically â the knowledge sources do not contain explicit documentation on a "remote evaluation" rate limit as a standalone feature. However, if you are referring to Feature Flags with remote evaluation, the docs mention it exists but do not specify a dedicated rate limit for it. [Feature Flags]
Recommendations to Handle 429 Errors
If you're hitting the Ingestion API at 1000 RPM, you are likely well within limits, but if you're hitting the Query API, 1000 RPM would far exceed the limit of 60 queries/hour. Here's what Mixpanel recommends:
Spread queries over a longer period to stay within hourly limits.
Consolidate multiple queries into a single query where possible.
Use exponential backoff with jitter â start with a 2s backoff, doubling up to 60s, with 1â5s of jitter. [Import Events]
Batch events â up to 2000 events per request to reduce total request count.
Use gzip compression (Content-Encoding: gzip) to reduce data size.
Next Steps
If you need a higher rate limit (e.g., for a one-time backfill or enterprise use case), Mixpanel recommends contacting your CSM or sales representative with your project_id and use case. [Import Events] Could you clarify which specific Mixpanel API endpoint you're calling? That would help pinpoint which rate limit applies to your situation.
âšī¸Â Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
Thank you for the clarification. You are correct that the Mixpanel UI displays that message. Unfortunately, the knowledge sources provided to me do not contain information about this 90-day limitation for Optimized Re-entry, so I'm unable to confirm the details of this restriction or provide an officially documented workaround. Based on what the knowledge sources do cover, here is what I can say:
The Optimized Re-entry documentation describes how the feature works but does not mention the 90-day cap or any workaround for it. [Optimized Re-entry]
Your current approach of splitting the date range and aggregating results in a spreadsheet is a reasonable workaround, but I cannot confirm whether it is the officially recommended approach.
What I'd suggest
Since this is a specific product limitation that isn't covered in the available documentation, I'd recommend:
Contacting Mixpanel Support directly at mixpanel.com/get-support to ask if there is an official workaround or if this limitation is on the product roadmap to be lifted.
Submitting a feature request through Mixpanel's feedback channels, as your use case (multi-reentry conversion tracking over long windows) is a valid and common need.
I'm sorry I can't provide a more definitive answer â this specific limitation is outside the scope of the knowledge sources available to me.
âšī¸Â Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
I want to clarify something important based on the knowledge sources available: the 90-day limitation you're referring to actually applies to the Query API's length parameter (when querying funnel data via API), not to the Optimized Re-entry feature itself as configured in the Mixpanel UI. Here's what the knowledge sources do and don't say:
Optimized Re-entry (UI)
The documentation on Optimized Re-entry does not mention a 90-day cap on the conversion window for this feature when used in the Mixpanel UI. The general funnel conversion window can be set up to 366 days (or equivalent, e.g., 12 months, 52 weeks). [Funnels Advanced]
Query API Limitation
The 90-day restriction appears specifically in the Query API for funnels, where the length parameter (conversion window) may not exceed 90 days. [Query API Funnels]
Recommendations
If you're using the Mixpanel UI: Try setting your conversion window beyond 90 days directly in the funnel report settings â the UI supports up to 366 days. Optimized Re-entry should work within that window.
If you're querying via the API: The 90-day limit on the length parameter is a hard API constraint, and the knowledge sources do not describe a workaround for this specific limitation.
The knowledge sources do not contain enough information to confirm whether Optimized Re-entry itself has a separate 90-day restriction, or to provide an official workaround for the API limitation beyond what's documented. I'd recommend reaching out to Mixpanel Support directly to clarify whether the 90-day cap applies to your specific use case and whether any workaround exists.
âšī¸Â Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
I'm sorry, but the knowledge sources do not contain enough information to answer specifically about adding labels/rotules directly on chart visualizations (such as on a pie/pizza chart) in Mixpanel. What the knowledge sources do cover related to chart labeling and customization is:
Axis labels â You can add custom labels to the X and Y axes in Line, Stacked Line, Column, Stacked Column, Funnel Steps, and Retention Curve charts. [Chart Customization]
Axis Units â You can add a prefix or suffix unit to axis markers (e.g., "$", "%"). [Chart Customization]
Metric Units â You can configure units, abbreviations, and precision for each metric, which updates in the chart, tooltip, and table. [Metric Units]
Annotations â You can add text notes tied to specific dates on time-series charts. [Annotations]
For more specific information about data labels directly on pie charts or other chart types, I'd recommend checking the full Mixpanel documentation or reaching out to Mixpanel Support directly.
âšī¸Â Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
Learning About Data Visualization in Mixpanel
Here's what the knowledge sources cover about data visualization in Mixpanel:
Chart Types Available
In Insights
Depending on whether you want a time-segmented or aggregate view: [Insights Charts]
Time-Segmented | Aggregate (full period) |
Line chart | Bar chart |
Stacked Line | Stacked Bar |
Column chart | Pie chart |
Stacked Column | Metric chart |
| Table chart |
In Funnels
Funnel Steps, Line, Bar, Metric [Funnels Visualization]
In Retention
Retention Curve (heatmap table + line chart) [Retention Charts]
Chart Customization
You can customize your charts with: [Chart Customization]
Axis labels, units, and ranges (min/max thresholds)
Linear or Logarithmic scale
Primary and secondary Y-axes (useful for comparing metrics on different scales)
Hide/show weekends on Line and Column charts
Color themes per report or entire project
Decimal precision on axis markers
Combining Multiple Metrics in One Chart
You can now plot Insights, Funnels, and Retention metrics together in a single Insights report, allowing you to compare different behaviors side by side without switching between reports. [Multi-metric Insights]
Recommended Learning Resources
The Mixpanel demo project has pre-built boards you can copy into your own project to explore visualizations hands-on. [Discover Insights Guide]
The Guides by Topic section covers measurements, filters, breakdowns, formulas, and custom buckets with video walkthroughs. [Discover Insights Guide]
The knowledge sources provided cover the main visualization concepts, but for a more comprehensive learning path, I'd recommend also checking the full Mixpanel documentation and their YouTube tutorials directly.
âšī¸Â Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
