How to Track Form Abandonment Without a Form Analytics Tool
You do not need a dedicated form analytics product to find out where people give up on a form. Learn how to measure abandonment with a funnel, two events, and session recordings.
Short answer: track three moments (form seen, form started, form submitted successfully), put them in a funnel, and watch recordings of people who started and did not finish. For long forms, add an event per section. That gives you the rate, the step, and the reason, without a separate form analytics tool.
Table of Contents
- What You Need to Capture
- Step 1: Track the Three Moments
- Step 2: Build the Funnel
- Step 3: Add Sections for Long Forms
- Step 4: Capture Failed Submissions
- Step 5: Watch the Abandoners
- What to Record in a Review
- Key Takeaways
What You Need to Capture
| Moment | Meaning | How |
|---|---|---|
| Seen | The page with the form loaded | Page path |
| Started | First interaction with any field | Custom event, once |
| Submitted | The server accepted the form | Custom event or confirmation page |
| Failed | Submit pressed, error returned | Custom event |
The first three give you the abandonment rate (definition). The fourth tells you how much of it is your fault.
Step 1: Track the Three Moments
Seen needs nothing. A page view is recorded automatically.
Started should fire once, on the first focus inside the form:
const form = document.querySelector("#signup-form");
let started = false;
form.addEventListener("focusin", () => {
if (started) return;
started = true;
deepsync("track", "signup_form_started");
});Submitted belongs in the success handler, after the server responds:
deepsync("track", "signup_form_submitted");If success leads to a unique confirmation page, you can use that page path instead of an event.
Step 2: Build the Funnel
Create a funnel with three steps:
- Form page viewed
signup_form_startedsignup_form_submitted
Now you can read two separate rates:
- Step 1 to 2 is the share who engage at all. A low figure points to the page, the offer, or how long the form looks.
- Step 2 to 3 is completion among those who began. A low figure points to friction inside the form.
Segment by device straight away. Mobile and desktop usually differ a great deal here.
Step 3: Add Sections for Long Forms
For multi-step or long forms, one "started" event is too coarse. Fire an event as each section is completed:
deepsync("track", "application_step_completed", { step: 2 });Use separately named events, such as application_contact_done and application_details_done, if you want each as its own funnel step. The funnel then shows which section loses people.
Avoid tracking every individual field as an event. It creates noise, and recordings show field-level behavior better.
Step 4: Capture Failed Submissions
A validation or server error should send its own event:
deepsync("track", "signup_form_error", { reason: "email_taken" });Send a category, never the value the person typed. Then compare failures with successes. If one reason dominates, you have found a specific fix.
Also look at JavaScript errors on the page. A handler that throws means the form never submits at all, and nothing in your form events will show it.
Check errors before design
A silent submit failure and a confusing form look identical in a funnel. Rule out the bug first.
Step 5: Watch the Abandoners
In DeepSync, click the drop-off number on the "started" step to open the sessions that stopped there. Watch fifteen and note:
- The last field each person touched
- Fields corrected more than once
- Error messages shown, and whether they were visible
- Long pauses before leaving
- On mobile: whether the keyboard covered the button or the error
- Repeated taps on submit
Typed text is masked by default, so you see the interaction without seeing what was entered (PII masking).
What to Record in a Review
| Field or step | Sessions showing a problem | What happened | Fix |
|---|---|---|---|
| Phone number | 6 of 15 | Rejected with spaces, retyped | Accept common formats |
| Password | 4 of 15 | Rules revealed one at a time | Show all rules up front |
| Submit (mobile) | 3 of 15 | Button under keyboard | Scroll into view on focus |
Rank by how often you saw it. Fix the top row, then compare the step 2 to 3 rate over the next two weeks.
Key Takeaways
- Capture seen, started, submitted, and failed.
- Two rates matter: who starts, and who finishes after starting.
- Add section events for long forms, not field events.
- Rule out errors, then watch the people who gave up.
Conclusion
Form abandonment tracking is three events and a habit of watching the sessions. That is enough to find the field that is costing you.
Frequently Asked Questions
Related articles
Stay in the loop
Get the latest insights on product analytics and user behavior delivered to your inbox.



