# Analytics & insights

Real-time metrics, charts, and conversion data for every form.

> ✅ **Pro feature** — included in the Pro plan.


## Analytics & insights

The Analytics tab is a real-time dashboard of form performance — a request block on every plan, and views, completions, device breakdowns and traffic sources on Pro and Business.

<h2 id="opening-analytics">Opening analytics</h2>

> ℹ️ **Visitor analytics require a Pro or Business plan**
> <p>
>     Visitor events are only recorded while the workspace owner is on Pro or Business — on Free, formbase records no visits at all, and the
>     Viewed and drop-off numbers in the <a href="/submissions-analytics/question-summary">question summary</a> stay at zero too. When you
>     upgrade, recording starts right away and the dashboard fills from that day forward; nothing is backfilled.
>   </p>
>   <p>
>     The <a href="#requests-block">request block</a> is the exception. It counts request rows rather than visitor events, so it works on
>     every plan.
>   </p>

<h2 id="requests-block">The request block</h2>

When the form has requests in the date range, a **Requests** section sits at the top of the tab, headed "Requests created in range · all devices". It counts the request rows themselves, so its numbers match the ones the Requests page pages through, and the Device filter does not reach it.

Five metric cards:

Below them, the **Request Funnel** — Created, Opened, Started, Completed. Sending an invitation is not a funnel stage, because a request can equally be handed over as a bare link.

The block hides itself on the Public link channel, and on the Requests channel with no requests in range it says so.

<h2 id="overview-metrics">Overview metrics</h2>

Seven metric cards head the event half of the dashboard. Together they tell the story from first view to completed submission.

A view and an engagement are counted once per visitor per session, so a refresh does not inflate them. A visitor is identified by an id kept in their browser, so the same person on two devices counts twice. Previews of an embed or popup are never counted.

<h2 id="charts">Charts</h2>

Below the metric cards are seven charts, each showing a different angle on your form's performance.

<h3 id="activity-over-time">Activity Over Time</h3>

A line chart with three series — Views, Engaged, and Submissions — plotted over the selected date range. Use it to spot trends, identify spikes from campaigns, or see where engagement drops off before submission.

<h3 id="device-breakdown">Device Breakdown</h3>

A donut chart splitting traffic into desktop, mobile, and tablet. If mobile is a large share but completion is low, your form may need layout tweaks for smaller screens.

<h3 id="location-breakdown">Location Breakdown</h3>

A chart of visitors by country. The country is guessed from the visitor's browser time zone, falling back to the edge network's own country header — good enough for a regional picture, not for anything precise.

<h3 id="traffic-sources">Traffic Sources</h3>

A bar chart showing where visitors arrive from — direct links, social media, search engines, email campaigns, and more. Click a category to drill down and see which specific platforms, campaigns, or referrer domains drove traffic. Cross-reference with your share links to find your best channel.

formbase classifies each visit into one of five categories based on UTM parameters (checked first) or the referrer URL (fallback). See [How traffic sources are classified](#traffic-source-classification) below for the full rules.

<h3 id="browser-breakdown">Browser Breakdown</h3>

A ring chart of browser usage (Chrome, Safari, Firefox, Edge, etc.). Helpful if you notice lower completion rates from a specific browser.

<h3 id="completion-funnel">Completion Funnel</h3>

A three-stage funnel: **Viewed, Engaged, Completed**. The drop between each stage tells you where you are losing people. See the dedicated [Completion funnel](/submissions-analytics/completion-funnel) page for tips on reading and improving each stage.

<h3 id="peak-activity-hours">Peak Activity Hours</h3>

A 24-hour bar chart showing when submissions happen throughout the day. Schedule campaigns or set form availability based on when your audience is most active.

<h2 id="filtering">Filtering your data</h2>

Up to four filters sit at the top of the Analytics tab.

<h3 id="channel">Channel</h3>

**Channel** decides which of the form's two audiences you are looking at:

- **All channels** — the default. Both the request block and the event widgets.
- **Public link** — share-link traffic only. The request block disappears.
- **Requests** — request traffic only. The share link filter disappears, since requests have no share link.

<h3 id="date-range">Date range</h3>

Choose from preset ranges — **Last 7 days**, **Last 30 days**, **Last 90 days**, or **All time**. When you drill into a specific window from a chart, the filter shows that custom range instead of a preset. Date range reaches both halves of the tab; for the request block it selects the requests _created_ in the range.

<h3 id="device-type">Device Type</h3>

Narrow the event widgets to **Desktop**, **Mobile**, or **Tablet**. Device type is read from the browser's user agent, and the filter does not reach the request block.

<h3 id="share-link">Share Link</h3>

Appears when your form has two or more share links, counting both active and revoked links (a revoked link keeps its past responses, so you can still filter by it). The filter uses checkboxes, so you can pick any combination:

- **All Links** — everything the form collected, including traffic no link could be attributed to. The default.
- **One link** — its metrics in isolation.
- **Several links** — the selected links combined.

> 💡 **Combine filters**
> <p>
>     Filters stack. For example, pick "Last 7 days" + "Mobile" + a specific share link to see how your latest social campaign performed on
>     phones.
>   </p>

<h2 id="comparing-share-links">Comparing share links</h2>

When your form has multiple share links, you can combine any number of them into a single aggregated view. Check the links you want in the share link filter and all metrics and charts update to reflect only traffic from those selected links.

To compare channels, check one set of links, note the numbers, then switch to a different set. Or check a single link at a time to see each channel in isolation. See [Share link analytics](/submissions-analytics/share-link-analytics) for the full workflow.

<h2 id="live-data">Live data</h2>

Analytics update in real time. A green pulsing dot and the **Live data** label show that numbers refresh as new responses arrive.

Need a stable snapshot (for a presentation, say)? Click the toggle to pause. The label switches to **Paused**. Click again to resume.

<h2 id="truncation">When the numbers are capped</h2>

A single view aggregates at most 10,000 events. Past that a notice appears — "Showing aggregates from the most recent 10,000 events" — and asks you to narrow the date range or filter by share link. With a share-link filter on, the wording changes to say older events for that link weren't scanned.

The request block has its own cap and will say "Showing the first N requests in this range" when it applies.

<h2 id="data-history">How long analytics data is kept</h2>

Analytics events are kept for **365 days**, then deleted automatically — the dashboard always covers your last 12 months. Letting a subscription lapse does not shorten that clock: recording stops, but the history you already have ages out normally.

Submissions themselves are never affected. They stay until you delete them or a [retention rule](/submissions-analytics/submission-retention) you set removes them. Want a permanent record of the answers? [Export your submissions](/submissions-analytics/exports) — exports include every response regardless of analytics history.

<h2 id="common-use-cases">Common use cases</h2>

<h3 id="measuring-a-campaign">Measuring a campaign</h3>

Launch a campaign with a dedicated share link, wait a few days, then filter analytics to that link. Compare completion rate and average time against your baseline.

<h3 id="identifying-mobile-issues">Identifying mobile issues</h3>

Filter by **Mobile** and check completion rate versus desktop. A big gap suggests layout or input issues on small screens. Review your form on a phone and shorten long pages or simplify complex inputs.

<h3 id="finding-peak-submission-hours">Finding peak submission hours</h3>

Open the Peak Activity Hours chart to see when your audience is most active. Schedule reminder emails or social posts to coincide with those windows.

<h3 id="comparing-share-link-performance">Comparing share link performance</h3>

Use the share link filter to view each channel's metrics independently. Double down on what works and retire underperforming links. See [Share link analytics](/submissions-analytics/share-link-analytics) for more.

<h2 id="traffic-source-classification">How traffic sources are classified</h2>

formbase categorizes every share-link visit into one of five buckets — Direct, Email, Social, Search, Referral. Classification is case-insensitive: all matching happens in lowercase. A visit through a request link is stamped as coming from a request instead, whatever its URL.

<h3 id="priority-1-utm-parameters">Priority 1: UTM parameters</h3>

When a share link URL includes `utm_medium` or `utm_source`, formbase uses those values first:

Social keywords: `facebook`, `instagram`, `linkedin`, `tiktok`, `twitter`, `x`, `threads`. A keyword matches when it appears anywhere in the value, so `x` matches any `utm_source` containing an x — name your sources explicitly if that matters.

Search keywords: `google`, `bing`, `duckduckgo`, `yahoo`, `baidu`, `yandex`.

`utm_campaign` is stored and visible in the drill-down but does not affect which category a visit falls into.

These UTM values power analytics only. They aren't saved on individual responses, so they don't appear in the Submissions table. To capture one per submission, add a [hidden field](/building-forms/hidden-fields) with that parameter name (for example `utm_source`).

<h3 id="priority-2-referrer-url">Priority 2: Referrer URL</h3>

When no UTM parameters are present, formbase checks the browser's referrer:

Domain matching uses substring checks — `facebook.com` matches `m.facebook.com`, `l.facebook.com`, and so on.

> 💡 **Use UTM parameters for precise tracking**
> <p>
>     Append UTM parameters to your share link URL for reliable classification. Without them, formbase falls back to the browser referrer,
>     which can be stripped by some platforms.
>   </p>

```
https://forms.yoursite.com/feedback?utm_source=facebook&utm_medium=social&utm_campaign=may-launch
```

<h2 id="deleting-analytics-data">Deleting analytics data</h2>

To erase all analytics for a form, open **Form settings → Danger Zone** and click **Delete** next to **Delete analytics data**. This cannot be undone — new events start accumulating from scratch.

The Danger Zone also has **Delete all submissions**, which erases every response without touching analytics, and **Delete form**, which moves the form to trash. The two delete actions only become available once the form has been published at least once.

<h2 id="next-steps">Next steps</h2>

<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Completion funnel](/submissions-analytics/completion-funnel) — See where respondents drop off at each stage
  - [Partial submissions](/submissions-analytics/partial-submissions) — Recover leads from abandoned forms
  - [Share link analytics](/submissions-analytics/share-link-analytics) — Compare distribution channel performance
  - [Exporting submissions](/submissions-analytics/exports) — Download as CSV, Excel, or PDF
</div>
