WP Manifestindependent plugin directory
manifest / forms / formpulse

FormPulse

FormPulse — Gravity Forms Analytics & Abandonment Recovery Suite

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/chomachomachoma/formpulse/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Gravity Forms Analytics & Abandonment Recovery Suite

FormPulse turns Gravity Forms into a measurable, recoverable conversion channel. It records how visitors move through your forms — views, starts, field-level drop-off, and completions — and automatically emails a recovery link to visitors who begin a form but never submit.

Features

  • Conversion funnel — per-form views → starts → completions with rates, under Forms → Analytics.
  • Field-level drop-off — see exactly which field visitors abandon at, ranked by drop-off %.
  • Abandonment recovery — auto-saves partial entries every 30s and sends exactly one recovery email per abandoned session with a tokenized link that repopulates the form.
  • Privacy-first — IPs are SHA-256 hashed (never stored raw), sensitive field types are excluded from captured data, and raw-event retention is configurable (default 90 days).
  • Fast dashboard — reads pre-aggregated daily rollups via a REST API; Chart.js is bundled locally (no CDN).

Requirements

  • WordPress 6.8+
  • PHP 8.1+
  • Gravity Forms 2.5+ (tested against 2.10.5)

Installation

  1. Copy the formpulse directory into wp-content/plugins/.
  2. Activate FormPulse in Plugins (Gravity Forms must be active).
  3. Open Forms → Analytics.

Architecture

Layer Class(es)
Bootstrap FormPulse\Plugin, Activator, Deactivator
Schema / data Database\Schema, Database\Repository
Tracking Tracking\Tracker + assets/js/tracker.js
REST API (formpulse/v1) Rest\RestRoutes
Aggregation Analytics\Aggregator (cron), Analytics\FunnelService
Recovery Recovery\AbandonmentService (cron), Mailer, RePopulator, Finalizer
Admin Admin\DashboardPage, Admin\Assets + assets/js/dashboard.js

Data model

Four tables (prefixed {$wpdb->prefix}gf_formpulse_): events (raw funnel/interaction), partial (one upserted row per in-progress session, with recovery token), daily (per-form daily rollup), field_stats (per-form/field/day drop-off rollup).

Cron

  • formpulse_aggregate_daily (hourly) — rolls raw events into daily/field_stats and prunes old raw rows.
  • formpulse_scan_abandoned (every 15 min) — sends recovery emails, one per abandoned session.

REST endpoints (/wp-json/formpulse/v1)

Route Method Auth
/event POST wp_rest nonce
/autosave POST wp_rest nonce
/stats/funnel GET gravityforms_view_entries
/stats/fields GET gravityforms_view_entries

Development

composer install
composer test          # phpunit unit suite
bin/smoke.sh           # activation + REST + table + cron smoke checks

License

GPL-2.0-or-later. See LICENSE.txt.