Formhawk
Formhawk is a privacy-first form conversion analytics and health monitoring plugin for WordPress.
It helps answer two practical questions:
- Are my forms working?
- Where do visitors abandon them before submitting?
Formhawk automatically discovers eligible frontend forms, measures conversion and friction, monitors form health, and stores analytics locally in WordPress as aggregate statistics.
No external Formhawk account or cloud analytics service is required.
Current features
- Automatic detection of Contact Form 7 forms.
- Automatic detection of standard HTML
<form>elements. - Detection of forms inserted dynamically after page load, including AJAX and popup forms.
- Form view tracking when a form enters the viewport.
- Form start tracking on first interaction.
- Field interaction tracking without reading field values.
- Observed form submission tracking.
- Server-confirmed Contact Form 7 success tracking.
- Contact Form 7 mail failure tracking through server-side hooks.
- Contact Form 7 validation failures by field.
- Contact Form 7 aborted submission failures.
- Form abandonment tracking for started forms left without completion.
- Last interacted field before abandonment.
- Validation error counts by field.
- Views, starts, submissions, abandonments and failures.
- Conversion and abandonment rates.
- Average time from form start to a terminal event.
- Last confirmed success and last failure timestamps.
- Per-form health states: Collecting, Healthy, Warning and Critical.
- Warnings for started forms with no submissions and viewed forms with no starts.
- Critical state when a newer failure exists after the last confirmed success.
- Conversion-drop detection against the previous comparable period.
- 7-day, 30-day and 90-day analytics views.
- Forms overview dashboard and detailed per-form analytics.
- Field-level abandonment and validation friction reports.
- Global WordPress
wp_mail()success/failure health signals. - Manual
wp_mail()diagnostic test. - Local daily aggregate analytics storage with no raw visitor event log.
- Automatic daily retention cleanup.
- Configurable retention: 30, 90, 180 or 365 days.
- Optional complete data removal on uninstall.
- WordPress Privacy Policy helper text integration.
- No cookies,
localStorageorsessionStoragetracking. - No visitor IDs, session IDs, IP addresses or user-agent storage.
- No form field values, entered email addresses, names or message contents stored.
- No email recipient, subject or message body storage.
- Same-origin REST event ingestion with a signed site token.
- Batched frontend event delivery.
- Dependency-free frontend tracker.
MutationObserversupport for dynamically inserted forms.IntersectionObserversupport for actual form-view detection.data-formhawk-ignoreto exclude individual forms.data-formhawk-titleanddata-formhawk-idfor generic form identification.formhawk_tracking_disabledfilter to disable tracking programmatically.formhawk_event_recordedaction for integrations and extensions.
Privacy by design
Formhawk is intentionally built without visitor-level analytics.
Temporary per-form state exists only in JavaScript memory for the current page. Formhawk creates no analytics cookies or persistent browser identifiers.
The local WordPress database stores aggregate counts and static metadata needed for reports, such as form identifiers, page paths, field names and field labels.
Formhawk does not intentionally store visitor responses, names, email addresses, phone numbers, message contents, IP addresses, visitor IDs, session IDs, user agents, email recipients, email subjects or email message bodies.
No Formhawk analytics data is sent to an external Formhawk service.
Contact Form 7 integration
Contact Form 7 receives the deepest integration in the current release. Formhawk combines frontend behavior analytics with server-side Contact Form 7 hooks for confirmed mail success, mail failures, validation failures and aborted submissions.
Standard HTML forms
Formhawk automatically monitors eligible standard HTML forms. For generic forms, the browser submit event is recorded as an observed submission attempt.
There is no universal browser API that can verify whether every custom server-side handler ultimately saved or delivered a lead, so Formhawk does not claim a confirmed success where it cannot verify one.
Mail health
Formhawk monitors WordPress wp_mail_failed and wp_mail_succeeded events without storing message contents or recipients.
A successful wp_mail() event means WordPress/PHPMailer accepted the message for sending without an immediate error. It does not guarantee final inbox delivery.
