Versioning

Gravity Forms Versioning brings true version control to your forms—so every change is tracked, reviewable, and reversible.

Overview

Each time you save a form, the add-on captures a snapshot you can compare against earlier versions, restore with a click, and export/import as JSON to move changes between environments.

Built for teams managing forms across staging and production, Gravity Forms Versioning helps you ship updates confidently, reduce “what changed?” guesswork, and recover instantly when something goes wrong.

Key Features

  • 🔁 Automatic Version Capture: Creates a new snapshot whenever a form is saved in the admin—so you always have a trail of changes.
  • 🧠 Side-by-Side Comparisons: Compare any two versions to see exactly what changed across fields, settings, confirmations, and notifications.
  • ⏪ One-Click Restore (Rollback): Revert to a prior version instantly, with an automatic safety backup created before the restore.
  • 📦 Export / Import for Deployment: Export a version (or full form history) as JSON and import it on another site to move forms between environments.
  • 🧩 Manual Snapshots + Locks: Capture labeled snapshots with notes, and lock important versions to protect them from deletion or retention cleanup.
  • ⚙️ Smart Storage Controls: Optional duplicate detection (checksum-based) and retention limits help keep history useful without uncontrolled database growth.

How It Works

  1. Install and activate the Gravity Forms Versioning add-on.
  2. Configure Versioning settings (auto-capture behavior, retention, notifications) in Gravity Forms.
  3. Edit your forms as usual—each save can automatically create a new version snapshot.
  4. Open Version History to view versions, compare changes, export/import JSON, or restore a previous state.
  5. Deploy or recover confidently: move changes between environments or roll back instantly when needed.

Provide feedback here

Requirements

  • WordPress 6.0+
  • PHP 7.4+
  • Gravity Forms 2.5+

Documentation

Gravity Forms Versioning Documentation

Gravity Forms Versioning brings version control to your forms.

Key Features

  • Automatic version capture every time a Gravity Forms form is saved (admin-side)
  • Manual snapshots with optional labelsnotes, and a lock to prevent deletion
  • Side-by-side comparison (diff) between any two versions (fields + settings + confirmations + notifications)
  • One-click restore (rollback) to a prior version, with an automatic safety backup captured before restoring
  • JSON export of a single version or all versions for a form (for deployment between environments)
  • JSON import with:
    • form ID mapping support
    • optional “create missing forms”
    • conflict detection / overwrite controls
  • Optional email notifications when forms change
  • Duplicate detection using a SHA-256 checksum (can skip capturing identical versions)
  • Version retention limits per form (with cleanup of old versions); locked versions are retained

Requirements

  • WordPress 6.0+
  • PHP 7.4+
  • Gravity Forms 2.5+

Installation

  1. Upload the plugin folder to /wp-content/plugins/gravityformsversioning/ (or install via Plugins → Add New → Upload Plugin).
  2. Activate Gravity Forms Versioning from the WordPress Plugins screen.
  3. In WordPress, go to Forms → Settings → Versioning to configure:
    • auto-capture behavior
    • retention limits
    • notifications
    • duplicate-skip behavior (if available in settings)
  4. Open any form and go to Form Settings → Version History / Version Control to view history, compare, restore, export, or import versions.

Setup: Configuring Versioning Settings

This add-on stores form snapshots and related metadata in its own database table and captures versions on form saves.

Typical settings you’ll configure in Forms → Settings → Versioning include:

  • Auto-capture on form save (default behavior)
  • Skip duplicate versions (uses a SHA-256 checksum of the form JSON to avoid saving identical snapshots)
  • Max versions per form (retention limit; old versions are cleaned up automatically)
  • Notifications (optional email notifications on changes)

Using the Add-On: Version History (Per Form)

To manage versions for a specific form:

  1. Go to Forms → (choose a form) → Settings → Version History / Version Control.
  2. From this screen you can typically:
    • View version details (including the stored form JSON)
    • Compare two versions (diff)
    • Create a manual snapshot (label/notes/lock)
    • Restore a prior version (one click)
    • Export a version (JSON)
    • Import versions (JSON)

Capturing Versions

Automatic captures

  • A snapshot is captured when a form is saved in the admin.
  • The add-on hooks into Gravity Forms’ form-meta update process to capture a single version per form save.

Manual snapshots

Manual snapshots can be created from the Version History screen and may include:

  • Version Label: a human-friendly name
  • Version Notes: optional notes about what changed
  • Locked: prevents deletion and exempts from retention cleanup until unlocked

Comparing Versions (Diff Viewer)

You can compare two versions side-by-side to see changes across:

  • Form fields (label, description, required, placeholder, choices, conditional logic, etc.)
  • Form settings (title, description, button text, scheduling, honeypot, save & continue, and more)
  • Confirmations
  • Notifications

Restoring (Rollback)

Restoring a version:

  • Replaces the current form configuration with the selected snapshot.
  • Automatically creates a backup version of the current form before applying the restore, so you can revert the restore if needed.

Export / Import (Deploy Between Environments)

Export

You can export:

  • single version (includes metadata like export date, plugin version, GF version, WP version)
  • All versions for a form

Exports are JSON and intended for moving changes between environments (e.g., staging → production).

Import

Import supports scenarios like:

  • Importing versions into the same form ID
  • Mapping imported form IDs to different target form IDs
  • Optionally creating missing forms (if enabled)
  • Overwriting when conflicts exist (if enabled)

Developer Hooks

This plugin exposes action hooks you can use for custom integrations:

  • gf_versioning_after_capture_version
  • gf_versioning_before_restore_version
  • gf_versioning_after_restore_version

Logging & Troubleshooting

If versions aren’t capturing or actions fail:

  • Confirm your site meets WP 6.0+ / PHP 7.4+ / Gravity Forms 2.5+.
  • Verify the current user has permission to edit the target form (imports/restores check capabilities).
  • If duplicate skipping is enabled, saving the form without changes may intentionally create no new version.
  • Check for errors during import (malformed entries, missing forms when “create missing” is disabled, or insufficient permissions).