Forms
Analytics
See how a form performs: submissions, views and conversion, page reaches, field interactions, sources, answer summaries and process timings, and how to send events to Google Analytics, Google Tag Manager and Meta.
Every form has an Analytics tab. It shows how many people submit, where they come from, how far they get, what they answered and how quickly your team deals with their entries.
Some figures come from entries and are always there. Others come from tracked visits, which an account admin turns on and respondents agree to. See What needs visit collection.
Open Analytics
Open a form from the project’s form list and select the Analytics tab. It has these sections:
| Section | What it shows |
|---|---|
| Summary | Headline figures, activity over time, the visitor journey and submissions by channel. |
| Performance | Three reports: Pages, Fields and Sources. |
| Responses | A summary of the answers to each question. |
| Process | Current workload, stage turnaround, cycle time and approvals. Only shown when the form has stages. |
The section, dates, filters and chart choices are kept in the page address, so you can bookmark a report or send the link to someone on your team.
What needs visit collection
| Figures | Come from | Need visit collection |
|---|---|---|
| Submissions and submissions by channel | Entries | No |
| Pages | Respondents’ entries as they move between pages | No |
| Responses | Entries’ answers | No |
| Process | Stage moves, due dates and approval decisions | No |
| Tracked views, visitor conversion, median completion time, visitor journey | Tracked visits | Yes |
| Fields and Sources | Tracked visits | Yes |
Visit history starts when collection is turned on. Earlier visits can’t be filled in afterwards. Where there is no visit history, charts show a gap rather than zero, and the headline figures show ”—”.
Dates and filters
Choose Last 7 days, Last 30 days, Last 90 days or Custom dates. Dates use the account’s timezone, and the end date is included. Today is incomplete until the day ends.
Select Filters to open Analytics filters:
| Filter | What it does |
|---|---|
| Start date, End date | A custom period. |
| Version | One published or archived version of the form. |
| Submission channel | How entries were created: Respondent, Team, API, MCP, Automation, Import, Starter or Unknown. |
| Surface | Hosted form, Embedded form or Headless client. Visits only. |
| Device | Desktop, Tablet, Mobile or Unknown. Visits only. |
| Identified automation | Visits from automated browsers that identify themselves are left out by default. Choose Unclassified visitors or Identified automation only to look at them. |
| Stage | One stage. Process only. |
Active filters show as chips above the report. Select a chip to remove it. A filter that doesn’t apply to the current section is marked “(inactive in this report)”.
Export CSV downloads the current section as a CSV file, with the filters applied. It’s available on Pro and Ultimate.
Expand Data coverage under a report to see the timezone, when each kind of data started recording, how far back visits are kept and when the report was worked out. It says Partial history when the period goes back further than the data does.
Summary
Headline figures
| Figure | Meaning |
|---|---|
| Submissions | Entries submitted in the period, from every selected channel, by submission date. With Compare previous period on, it also shows the change. |
| Tracked views | New tracked visits in the period, by visit date. A view counts once the form is on screen: at least a quarter of it, or 200 pixels of its height. |
| Visitor conversion | The share of tracked views that went on to submit, with the counts behind it. |
| Median completion time | For new visits that submitted in the same visit, the middle time from starting to submitting. |
A rate built on few entries or visits is marked “small sample”.
Activity over time
The chart shows one figure a day. Choose Submissions (by submission date), Tracked views, Started visits or Origin conversions (by visit date). Origin conversions can still go up after the day has passed, as people come back and finish drafts.
- Compare previous period adds the period before as a dashed line. It’s only available when your plan and the retained history cover all of the previous period.
- Dashed Published lines mark the days a new version was published.
- Daily figures lists the numbers behind the chart.
Visitor journey
For new tracked visits in the period: how many Viewed, Started and Eventually submitted, and the completion rate of started visits. Someone who comes back later and submits counts against their first visit. Journey details adds return visits, the median time from first answer to submission and the number of inactive drafts (no activity for seven days).
Submissions by channel
Submissions split by how they were created. Select a channel to filter the whole report by it.
Performance
Pages
For forms with more than one page. For each page, how many respondent entries could reach it (Eligible), how many did (Reached) and how many stopped there (Inactive exits, drafts with no activity for seven days). Entries are counted by the date someone first interacted with them.
Conditional logic and jumps change which pages each person can reach, so these figures aren’t a step-by-step drop-off, and an exit doesn’t tell you why someone left. Select a page title to open it in the builder. Page figures lists the numbers.
Fields
Available on Ultimate. For each field: the Average focus time, the Visits that used it, Error events (validation messages shown, not people) and Inactive exits (the last field used before 30 minutes without activity). Answers are never recorded here.
Results are kept separately for each version, with that version’s field labels. Select a field to open it in the builder.
Sources
Where tracked visits came from. Choose what to group by under Group visits by: Campaign source, Campaign, Campaign medium, Referrer, Website, Page path, Surface, Device, Browser, Operating system, Country, Language or Identified automation. Sort by Most views, Most conversions or Highest conversion rate.
Select a source to filter the visit figures by it. Unknown covers visits with nothing recorded. Page path is only recorded when the form allows it; see Turn collection off for one form.
Responses
A card for each question with how many entries answered it. Number, rating and scale questions show the mean, median, range and a distribution chart. Choice questions show how often each option was picked; with Multiple choice the shares can add up to more than 100%. Text questions show the latest five answers, each linked to its entry.
Responses use each entry’s own version of the form, so questions that were added, removed or renamed are summarised correctly. Team fields are listed separately. Password answers are never summarised. Hidden value answers are, so only collect attribution you need.
Turn on Include touched respondent drafts to include unfinished entries that someone has started.
Process
Only for forms with stages.
- Workload now: entries in each stage and how many are overdue, as of now. It ignores the date range. Select a stage to see its entries. Workload by owner splits it by owner or group.
- Stage turnaround: for stays that ended in the period, the median and 90th percentile time in each stage, the share finished on time and the share sent back. Undone moves are left out.
- Cycle time: for entries that first reached a closed stage in the period, the median and 90th percentile time from their first stage to that point.
- Approvals: approved, rejected and expired rounds, the median time to decide and the share of rounds that needed a reminder.
The forms list
The project’s form list shows Views · 30 days, Submissions · 30 days and Conversion for each form, over the last 30 calendar days. Views marked “partial” don’t cover all 30 days.
Turn on visit collection
Visit collection is off until an account admin turns it on.
- Open Account settings and select General.
- In Form analytics, turn on Allow consented visit collection.
- Choose Raw visit retention: 30 days, 90 days (recommended), 12 months or 25 months. The default is 90 days.
- Select Save analytics settings.
Shortening retention deletes older visits for good. Your plan also limits how far back reports go, and upgrading doesn’t bring back visits that have been deleted.
Turn collection off for one form
- Open the form in the builder and select Share.
- In the FormWork analytics card, turn off Allow FormWork visit collection.
- Publish the draft.
The same card has Include the embed page path in visit sources, off by default. Turn it on only when your page addresses contain nothing sensitive. Both settings can only be changed on the draft.
What respondents see
On hosted forms, below the form, FormWork asks whether it may count the visit, with Accept analytics and Decline analytics. Nothing is collected until the person accepts. Their choice is remembered in that browser for 180 days and applies to all your account’s forms. Analytics preferences lets them change it at any time; declining after accepting removes the visit in progress.
The question isn’t shown in previews or when your team edits an entry.
If the browser sends Global Privacy Control, FormWork doesn’t collect visits and the question says so.
Embedded forms
On your own website, your consent tool decides. Add analytics="on" to the <formwork-form> element once the visitor has agreed, and set it to off or remove it if they withdraw. FormWork doesn’t show its own question on embedded forms. See Embedding and the JavaScript API.
What is recorded
- No cookies, no visitor IDs that last beyond the visit, and nothing that links one form’s visits to another’s.
- No answers. Only counts and timings, such as views, starts, page changes, time in a field and validation messages shown.
- The website and referring site, campaign (
utm_) parameters, browser, device, language and, where available, country. The page path is only recorded when the form allows it, and never its query string.
Visits can still be blocked by browsers and extensions, so tracked views will usually be lower than real traffic. Submissions are always counted in full.
Plan limits
| Starter | Pro | Ultimate | |
|---|---|---|---|
| History in reports | 30 days | 12 months | 25 months |
| Export CSV | No | Yes | Yes |
| Field interactions | No | No | Yes |
The history limit applies to visits, pages and process figures. Responses can cover any period. See Plans and billing.
Send events to Google Analytics, Google Tag Manager or Meta
FormWork’s own reports don’t need any of this. If you also want form events in Google Analytics 4, Google Tag Manager or Meta, use their analytics extensions. FormWork never loads tracking scripts: browser events only reach tags your website already has, so they work on embedded forms only. For hosted forms, use server conversions.
Set up an extension
- In the project, select Extensions and choose Google Analytics, Google Tag Manager or Meta.
- Select Install extension.
- Enter a Configuration name, such as “Production” or “Test website”, and the Measurement ID, Container ID or Pixel ID.
- For Google Analytics or Meta, turn on Enable server conversions if you want them, and paste the Measurement Protocol API secret or Conversions API access token. Meta also needs a Graph API version. The credential is stored in the project and never sent to browsers.
- Turn on Enable this configuration and select Save configuration.
A configuration can be used by any form in the project. Select New configuration to add another, for example for a test website. Once saved, the page shows a short guide to connect a form and check that events arrive.
Choose it on a form
- Open the form in the builder and select Share.
- In External analytics, choose the configuration for each provider, or Do not use for this form.
- Leave Browser events on to send events from the embedded form. For Google Analytics, Lead conversion also sends
generate_leadon submission. - Publish the draft.
- On your website, add
analytics-events="on"to the<formwork-form>element once the visitor has agreed to these tags, and switch itoffif they withdraw. This is separate fromanalytics, which only controls FormWork’s own visit collection.
What each provider receives:
| Provider | Browser events |
|---|---|
| Google Analytics | formwork_view, formwork_page, formwork_start, formwork_submit and formwork_resume, sent to the chosen property. |
| Google Tag Manager | The same event names, pushed to the page’s data layer. Download the FormWork GTM template from the extension’s guide and import it with Merge. It adds triggers and variables only; add your own tags. |
| Meta | Lead after a confirmed submission, sent to the chosen Pixel. The entry ID is the event ID, so Meta can match it with a server conversion. |
Use either Google Analytics or Google Tag Manager for browser events on a form, not both, so events aren’t counted twice. Events never include answers.
If a configuration is turned off or deleted, forms using it stop sending events. They don’t switch to another configuration.
Server conversions
Server conversions are sent by an automation, so they work for hosted and embedded forms, and for later stage changes. Add one of these automation templates and choose a configuration with server conversions turned on:
- Send submissions to Google Analytics or Send leads to Meta: when the form is submitted.
- Send stage conversions to Google Analytics or Send stage conversions to Meta: when an entry reaches the stage you choose, such as Won or Approved.
FormWork doesn’t know whether a visitor allowed advertising tags, so the templates ask for Hidden value fields that hold it:
- Destination permission (true means permitted) and Permission observation timestamp. Nothing is sent unless permission is
trueand the time is filled in. - For Google Analytics, optionally the GA4 client ID and GA4 session ID, to join the visitor’s Google Analytics session.
- For Meta, Original website URL and Original browser user agent, and at least one of Meta fbc, Meta fbp or Original fbclid (with the click time).
Your website fills these fields, for example with setAnswers(), once the visitor has chosen. Keep the permission field up to date if they change their mind; for stage conversions, your team must too. These automations don’t retry by default. Don’t use the Google Analytics browser Lead conversion and the Google Analytics submission template on the same form; FormWork won’t let you.
Why the numbers differ
FormWork’s reports and your external reports collect, ask permission and attribute visits separately, so their totals won’t match. The Analytics integrations note at the bottom of the Analytics tab lists the providers a form sends to.
Campaign attribution
To keep a visitor’s campaign on their entry, add a Hidden value field and set Fill from the page address, for example to utm_campaign. Common URL parameters offers the usual campaign and click ID names. See Field settings. These answers appear in Responses and in exports like any other answer.
Sources reads the utm_source, utm_medium and utm_campaign parameters from tracked visits by itself, so you don’t need Hidden value fields for that report.
AI assistants
A connected AI assistant can read the same figures, with the same plan limits, to answer questions about a form’s performance.