Pro View is the customizable layer above Overview. It stores chart and funnel definitions in SQLite while querying analytics facts from ClickHouse. A dashboard belongs to its creator, who can edit it or share a read-only view with other members of the same app. Editing a definition does not mutate the underlying events or give a recipient control of the creator’s dashboard.
Custom chart definitions
Section titled “Custom chart definitions”A chart chooses a tracked event, tracking rule, or future event definition as its source. Supported visualizations are line, bar, donut, pie, scatter, and map. Maps group events by their recorded country. Events with no known country cannot be placed on the map.
Widgets have ordered compact or wide display sizes. Free-form drag coordinates and arbitrary resizing are not part of the current contract, which keeps the responsive layout predictable.
The preview endpoint queries real event facts for line, bar, donut, pie, scatter, and country-map views. A future-event source is useful when preparing a dashboard before an event ships; its preview stays honestly empty until that event is captured. Live query failures and empty results are never replaced with invented browser data.
Date ranges and optional comparison
Section titled “Date ranges and optional comparison”Choose a rolling duration from 1 to 365 days. New widgets start with the last 30 days and no comparison. One day means the last 24 hours, with hourly buckets; longer ranges use daily buckets. Turn on Compare with previous period to add the immediately preceding period of equal length. Only retained data are available: a longer date range does not restore expired events. Existing saved widgets keep their legacy date and comparison behavior until they are edited and saved with the new duration controls.
Chart breakdowns
Section titled “Chart breakdowns”Group by supports date/time, browser, country, operating system, city and country, device, campaign, campaign source, campaign medium, referrer host, page path, and an event property such as format or plan. Choose Occurrences, Unique visitors, or Sessions for the selected event or rule. Visitors and sessions are estimates, counted distinctly within each group and period; the same visitor may appear in several groups. Existing widgets default to occurrences. Pie and donut charts are available for occurrences; visitor/session category charts use bars because their groups can overlap.
Category charts show the top 20 groups by the combined selected metric across both periods, plus Other for the remaining groups. Other deduplicates visitors and sessions across the tail rather than adding each group’s count. Both periods use the same groups; a category missing from one period has a zero count in that period. A map uses country grouping and shows separate labeled maps when comparison is enabled.
- No campaign means the event has no recorded campaign tag.
- Direct means no referrer host was recorded. It can include visits where the browser withheld a referrer, so it does not prove that someone typed the URL.
- Unknown browser, OS, country, city, and device values have explicit unknown labels.
- City labels include their country to distinguish identically named cities.
Optional page-path, ISO country-code, and property filters narrow the selected source before grouping. Property filters support equals, does not equal, contains, and exists, joined with all (AND) or any (OR). Property-key suggestions come from the selected event or rule’s catalog. Rare or sensitive keys are omitted; a manually entered key outside the catalog shows a warning. String, numeric, and boolean property values can be grouped; missing values appear as (not set). Both periods apply the same filters. Campaign fields require campaign capture in the integration; no arbitrary query parameters or visitor identifiers are exposed by these breakdowns.
Property reports omit groups with fewer than five visitors before selecting the top groups or computing Other. Both comparison periods must meet the threshold wherever a group has activity. Suppressed groups are not zero. Known personal-looking values are removed, and sensitive property keys or filter values are rejected. Shared dashboard definitions redact known sensitive keys and values, including legacy definitions; this is a pattern-based safeguard, not a guarantee that arbitrary developer-supplied data is anonymous.
Use Download CSV in the preview to export the displayed aggregate rows for both periods. It does not export individual events or visitor identifiers.
Funnels are ordered journeys, not a signup template
Section titled “Funnels are ordered journeys, not a signup template”An OwlEye funnel is any ordered sequence of two to ten page, event, or rule conditions. For example, a marketing team could model:
campaign landing page→ product detail viewed→ pricing CTA clicked→ checkout started→ purchase completedAnother team could model documentation adoption, an onboarding checklist, a content campaign, or a renewal flow. The funnel engine does not reserve special meaning for signup.
SDK 1.0.3 automatically captures bounded utm_source, utm_medium, utm_campaign, utm_term, and utm_content values from the current page. Arbitrary query parameters and URL fragments remain excluded by default. Use broad, non-personal campaign labels; never put emails, recipient IDs, secrets, or click IDs in campaign fields. No campaign settings or browser storage are required, and attribution is not persisted after the tags disappear from the URL. Referrer host means the observed browser referrer. Existing funnels can continue to use page paths and explicit events.
Each step can use an exact or starts_with condition and optional property filters. Property groups support and or or; filters support equals, not_equals, contains, and exists.
Funnel controls include:
- Closed entry: a cohort must start at the first step. This is the supported query mode today. The UI shows open entry as coming next because correct open funnels must let a person enter at their first qualifying step and then preserve sequence; unrelated per-step totals are not a valid substitute.
- Ordered: unrelated events may occur between steps. Exact: the next matching event must be the immediately following event in the sequence.
- Conversion window: same session, one hour, one day, seven days, or 30 days.
Same-session funnels use the pseudonymous session cohort. Longer funnels use the site-scoped visitor cohort. Preview results include step counts, step and overall conversion, drop-off counts and rates, plus average and median time to the next completed step when available.
Draft charts and funnels can be previewed before a dashboard exists. The draft endpoint is read-only: previewing never creates a dashboard as a side effect.
Read-only dashboard sharing
Section titled “Read-only dashboard sharing”The dashboard creator can invite active members of the same app. Sharing is an explicit lifecycle, not an automatic workspace mutation:
- The recipient gets a pending invitation and can preview the dashboard read-only.
- Accepting adds the shared dashboard to the recipient’s Pro View picker. It remains read-only; only the creator can edit its name, widgets, or recipients.
- Dismissing rejects the pending invitation without affecting the creator or another recipient.
- An accepted recipient can later remove for me. This removes only that recipient’s shared copy from their workspace.
- The creator can revoke one recipient or delete for others, which revokes every shared copy while keeping the canonical dashboard.
- Delete for all removes the creator’s canonical dashboard, its widgets, and access for every recipient.
Pending, accepted, dismissed, and revoked share states are persisted in SQLite. Dashboard list and detail responses include server-derived capability flags, so clients can present only the actions the signed-in member is allowed to perform. The API remains the enforcement boundary.
Public Pro View snapshots
Section titled “Public Pro View snapshots”The app owner can add selected Pro View captures to the app’s public Overview on an eligible cloud plan. Existing dashboards stay private unless the owner chooses to publish a capture.
- Open the app’s Settings → Public Overview and expand Pro View snapshots · optional.
- Choose an eligible saved chart or funnel from a dashboard you created, then click Preview snapshot. Review the exact aggregate data that would become public.
- Check Include this snapshot for up to three captures, enable public sharing, and click Publish selected statistics. Previewing alone does not publish anything. Publish a new preview within 15 minutes; if it expires before publication, preview again.
A snapshot is a static capture, with its capture time and expiry shown on the public page. It expires 24 hours after capture; republishing the same capture does not extend that lifetime. There is no automatic public refresh of the Pro View query. To update the data, preview and publish a fresh capture. The public page’s range selector changes Overview statistics, not the periods already captured in Pro View snapshots.
Public captures use stricter release rules than a private chart. Released groups and funnel stages need at least five distinct visitors; sparse groups or intervals can be withheld, so a public preview may differ from the private result. A capture may also omit events whose retention ends before the capture expires. Missing or withheld values do not establish zero activity. Review the public preview rather than assuming that a private chart will be reproduced unchanged.
Eligible chart groups are date/time, country, browser, operating system, and device. Titles and displayed labels must pass the public safety checks. Property groups, property filters, acquisition filters, and other source filters are not eligible. Closed-entry v2 funnels can be captured; legacy and open-entry funnels cannot. The total captured history, including any previous-period comparison, must fit within the public sharing history limit.
Editing or deleting a source widget, losing the required access, or changes to retention or plan eligibility can make a capture unavailable. Turning off public sharing revokes future loads of the public page. Copies someone has already downloaded or saved cannot be retracted.
Dashboard API
Section titled “Dashboard API”GET /v1/sites/{siteId}/dashboardsGET /v1/sites/{siteId}/dashboards/property-catalogPOST /v1/sites/{siteId}/dashboardsPOST /v1/sites/{siteId}/dashboards/previewGET /v1/sites/{siteId}/dashboard-invitesGET /v1/sites/{siteId}/dashboard-invites/{dashboardId}POST /v1/sites/{siteId}/dashboard-invites/{dashboardId}/acceptPOST /v1/sites/{siteId}/dashboard-invites/{dashboardId}/dismissGET /v1/sites/{siteId}/dashboards/{dashboardId}PUT /v1/sites/{siteId}/dashboards/{dashboardId}DELETE /v1/sites/{siteId}/dashboards/{dashboardId}GET /v1/sites/{siteId}/dashboards/{dashboardId}/sharesPOST /v1/sites/{siteId}/dashboards/{dashboardId}/sharesDELETE /v1/sites/{siteId}/dashboards/{dashboardId}/sharesDELETE /v1/sites/{siteId}/dashboards/{dashboardId}/shares/meDELETE /v1/sites/{siteId}/dashboards/{dashboardId}/shares/{userId}POST /v1/sites/{siteId}/dashboards/{dashboardId}/widgetsPUT /v1/sites/{siteId}/dashboards/{dashboardId}/widgets/{widgetId}DELETE /v1/sites/{siteId}/dashboards/{dashboardId}/widgets/{widgetId}POST /v1/sites/{siteId}/dashboards/{dashboardId}/widgets/previewOnly the creator can use the share-management routes. Invitation preview, accept, dismiss, and shares/me act on the signed-in recipient’s own share state. All routes resolve the app in the path and verify current membership before reading or changing a dashboard.
Public captures use separate owner-authorized preparation routes:
GET /v1/sites/{siteId}/public-overview/pro-viewPOST /v1/sites/{siteId}/public-overview/pro-view/previewPUT /v1/sites/{siteId}/public-overviewGET /v1/public/overviewThe preview prepares a bounded capture from an eligible saved widget. The existing sharing update publishes only the selected snapshot IDs. The anonymous Overview response includes the published aggregate captures; it does not run a Pro View query for each visitor.
Growth review can open a chart or funnel draft with its suggested metric. Review the source and filters, preview it, and save it explicitly. A missing activation event or funnel definition needs your input before saving. Web Vitals drafts support approximate p75 LCP and INP in milliseconds and p75 CLS as a unitless score, grouped over time. Performance charts with fewer than five visitors in a bucket withhold that bucket instead of displaying a zero.