GravityMigrate Changelog

Release notes and version history for GravityMigrate . Migrate all Gravity Forms data between sites, including forms, entries, settings, Views, feeds, and file uploads, and import forms from other form plugins.

2.2.0 on October 22, 2026

This release makes migration problems easier to understand and fix, and resolves several issues with migration messages, the date range picker, and AI assistants.

✨ Improved

  • Clearer messages when a migration's progress can't be followed or its requests are redirected, explaining what was detected, the likely causes, and what to do next.

🐛 Fixed

  • When a single sign-on service or a firewall redirected the site's background requests (admin-ajax.php), starting, cancelling, or loading a migration showed only "Failed to fetch", and a failed Cancel reloaded the page without explanation.
  • While a background migration's progress could not be followed, the migration screen pointed to a Background Jobs page that is hidden unless turned on, blamed WP-Cron even when it was running, said the migration was still working when it could not tell, and did not show paused migrations as paused.
  • When moving forms between plugins, forms whose request got no answer were marked "Could not be added" even though they may have been added (they are now marked "Not confirmed").
  • On WordPress 6.9 and 7.0, AI assistants calling a GravityMigrate ability without input, such as "list bundles", got an error.
  • When WordPress was set to a language other than English, the entry date range picker showed its buttons and labels, such as "Today" and "Clear date range", in English.

🔧 Updated

Version 2.2.0 permalink

2.1.2 on October 15, 2026

This update prevents AI assistants from creating duplicate forms during a migration.

🐛 Fixed

  • AI assistants that retried a migration while the first attempt was still running created the same forms twice.

🔧 Updated

Version 2.1.2 permalink

2.1.1 on October 8, 2026

This release makes migrating with an AI assistant more reliable.

Note: GravityMigrate now requires WordPress 6.5 or newer.

🐛 Fixed

  • Migrating with an AI assistant is more reliable: a retry can now skip forms that were already migrated, an import or export that can't run in the background is refused instead of stalling, and a bundle someone put in the imports folder is never overwritten.
  • An AI assistant now explains how to turn on bundle import or reset in the GravityKit MCP, and says to use the GravityMigrate screen for importing a password-protected bundle.

💻 Developer Updates

  • Added a skip_already_migrated input to the gk-gravitymigrate/migration-analyze and gk-gravitymigrate/migration-run abilities. Both now return a skipped list of the forms left out, each with form and existing_form_id.

🔧 Updated

Version 2.1.1 permalink

2.1.0 on September 17, 2026

This release adds support for using AI to fully handle your migration. Note: GravityMigrate now requires WordPress 6.2 or newer.

🚀 Added

  • Ask an AI assistant to do your migration. If you use an AI assistant like Claude, you can now connect it to your site with the GravityKit MCP and just ask it to move your forms. Do a dry-run without changing anything, move forms between multiple form plugins, or fully pack up a whole site's Gravity Forms data to move somewhere else.

💻 Developer Updates

  • Added eleven new WordPress Abilities, registered through GravityKit Foundation, each prefixed with gk-gravitymigrate/.
Version 2.1.0 permalink

2.0.0 on September 11, 2026

You can now migrate forms between Gravity Forms and seven top form plugins (import and export), the interface has been fully redesigned, migrations can now run in the background, and exports can include uploaded files in the downloaded bundle. The release also includes security enhancements; we recommend updating to the latest version. Read the 2.0 release post.

🚀 Added

  • Migrate forms between Gravity Forms and seven other form plugins, in both directions: Contact Form 7, Fluent Forms, Formidable Forms, Forminator, Ninja Forms, WPForms, and WS Form. Field types, labels, required fields, choices and their stored values, placeholders, default values, conditional logic, notifications and confirmations are all migrated where the destination supports them. Learn more about migrating from other forms.
    • Anything the destination plugin cannot represent is reported on screen during the migration rather than dropped silently. Contact Form 7, for example, has no conditional logic, time field or password field, so those are named as they are converted;
  • Background migrations. Imports and exports no longer need you to keep the tab open.
  • Exports can carry the uploaded files inside them. This allows you to generate migration files from sites that are unreachable. Read about bundling files.
  • Gravity Forms Signature Add-On files are now migrated with their entries.

✨ Improved

  • Keyboard navigation and screen reader accessibility. The new interface features much-improved keyboard focus behavior and aria live announcements.
  • The browser's Back and Forward buttons move through the wizard, and a step can be linked to or reloaded without losing your place.
  • Settings are no longer carried across by default, and overwriting the destination's settings asks for confirmation first.
  • Gravity Flow activity history now imports on destinations that do not have Gravity Flow installed yet.

🔒 Security

  • Migrating forms now requires full administrator access. The wizard, the background jobs and the WP-CLI commands all now require the manage_options capability.
  • Improved file naming to prevent guessing file paths.
  • Hardens access control on the migration endpoints.
  • Secures how a migration file's contents are handled when they are written into the destination site, so a file from an untrusted source cannot modify the site.
  • Refuses a file whose name hides a disallowed extension behind an allowed one, such as photo.php.png, wherever a migration file names the files it carries.

🐛 Fixed

  • Leaving the page during a migration your browser is running now frees the site immediately, instead of refusing the next import for two minutes with "an import is already in progress". If a run was interrupted some other way, the Confirm step says so and counts down, rather than letting you press Import and be turned away. Your uploaded file is kept either way.
  • Reloading or closing the tab during a migration your browser is running now asks you to confirm first, and says so on the screen instead of describing every migration as running in the background. A migration that cannot be resumed no longer keeps asking on every later page, and a migration that was refused before it started is no longer offered for resume.
  • Canceling an import that was running in the browser could leave "an import is already in progress" showing for two minutes if the server stopped the request while it was still deleting the uploaded file. The site is now free for a new import before the file is removed.
  • A form submitted by a visitor during an import could conflict with the migration entry IDs.
  • An export that was abandoned part way left its record of processed posts behind, so every later export silently left those pages and posts out while still reporting success.
  • A Gravity Wiz Nested Forms field pointing at a form that was not in the migration file could halt the import.
  • An export carried some settings that were not selected.
  • An export could stop partway when a single uploaded file could not be read. That file is now left out of the migration file and named as left out after the export finishes.

💻 Developer Updates

  • Added filters (see GravityMigrate filter docs):
    • gk/gravitymigrate/background/enabled turns background migrations off, or forces the browser-driven path.
    • gk/gravitymigrate/export/batch-size adjusts how much an export processes per step.
    • gk/gravitymigrate/cron/clear-import-interval and gk/gravitymigrate/cron/clear-export-interval change how long staged import files and finished exports are kept.
    • gk/gravitymigrate/import/signature/source-url modifies the URL a Signature Add-On image is fetched from during import.
    • gk/gravitymigrate/export/file-size-limit sets how many bytes of uploaded files an export packages inside the migration file. Files past the limit stay on the source site and are downloaded during the import.
    • gk/gravitymigrate/export/max-candidate-files caps how many uploaded files an export considers packaging (default: 20,000).
    • gk/gravitymigrate/import/packaged-file-types widens the file types an import will accept out of a migration file. It cannot widen what counts as safe: the disallowed extensions are not filterable.
  • WP CLI adds --include-files to the wp gk migrate export command to package the uploaded files inside the migration file. See the CLI docs.
Version 2.0.0 permalink

1.4.0 on August 27, 2026

This release adds live progress reporting to the WP-CLI migration commands, improves security, and fixes exporting on some hosting configurations. We recommend updating to the latest version.

🔒 Security

  • Hardens access control on the migration endpoints.

🐛 Fixed

  • Fixes exporting on sites where WordPress cannot write files directly as the web user, such as running the WP-CLI commands as a user other than the one that owns the site's files.

💻 Developer Updates

  • wp gk migrate status now reports a running import's progress, including the current phase, how much has been processed, percent complete, and an estimated time remaining.
    • Use wp gk migrate status --watch to follow a running import until it finishes.

🔧 Updated

Version 1.4.0 permalink

1.3.1 on August 6, 2026

This release fixes data-integrity issues when importing entries, including wrong Gravity Wiz Nested Forms references and duplicated entries after resuming an interrupted import.

🐛 Fixed

  • Imported entry meta and notes could attach to the wrong entries when the destination site's new entry IDs overlapped the imported entries' original IDs — breaking Gravity Wiz Nested Forms parent references, among other data.
  • Issues with imports that were interrupted and resumed:
    • Gravity Wiz Nested Forms child entries could end up pointing at the wrong parent entry and parent form;
    • The same batch of entries could be imported twice after the connection dropped mid-transfer.
  • Importing Gravity Flow data without selecting entries skipped the Gravity Wiz Nested Forms relationship update for the entries it brought along.

🔧 Updated

Version 1.3.1 permalink

1.3.0 on July 24, 2026

This release adds WP-CLI support for running migrations from the command line and dramatically speeds up imports and exports, fixes a range of import and export bugs, and patches several security issues. We recommend updating to the latest version.

Note: GravityMigrate now requires PHP 7.4 or newer.

🚀 Added

  • WP-CLI commands for scripting migrations without the browser UI:
    • wp gk migrate export exports forms, entries, Views, and other data to a portable ZIP, with options to filter by form or data type, limit by date range, encrypt the ZIP, and rewrite URLs for the destination site.
    • wp gk migrate import imports a bundle, with options to filter forms/data or skip file uploads.
    • wp gk migrate inspect previews a bundle's forms, data types, and source URL without importing it.
    • wp gk migrate status reports migration state, including whether an import is in progress or a previous import stalled.
    • wp gk migrate reset clears stuck migration state.

✨ Improved

  • Imports and exports are now up to 28x faster, especially for large migrations on sites with many posts.
  • The ZIP uploader now explains why an import file cannot be read.

🔒 Security

  • Fixed multiple security issues, including one that could allow unintended access under certain conditions.

🐛 Fixed

  • Nested Forms (Gravity Wiz) parent/child relationships could be remapped using entries from other forms during import.
  • Multiple files uploaded to the same field could overwrite each other during import, resulting in lost files.
  • Gravity Flow workflow step history was not updated to reference the correct feed after import.
  • A PHP warning could occur while exporting posts whose GravityView content (Views, widgets) referenced a form.
  • Entry references in imported Views or pages could point at the wrong entries, including when an imported form failed to import and left a gap in entry IDs.
  • Gravity Forms and GravityKit plugin settings migration could fail.
  • Import no longer aborts entirely when a form, GravityView View, or Multiple Forms join references a form that was deleted at the source or wasn't included in the import.
  • A View whose connected form was not included in the export was dropped during import, leaving its page showing a shortcode for a View that no longer existed. The View now imports with its form connection cleared.
  • Imported entries kept a link to a post (where the entry was submitted from) that was not part of the export, which could attach the entry to an unrelated imported View or page.
  • An import that stops part way no longer leaves the importer locked, so a corrected file can be imported right away.
  • The export screen offered Gravity Flow data on sites that have Gravity Flow feeds but no workflow history to export.

💻 Developer Updates

🔧 Updated

Version 1.3.0 permalink

1.2.0 on June 4, 2026

This release includes internal component updates and bug fixes for improved stability and compatibility.

🔧 Updated

Version 1.2.0 permalink

1.1.5 on May 14, 2026

This release resolves a fatal error caused by reactivating other GravityKit plugins alongside GravityMigrate, an export failure on certain configurations, and import files that wouldn't fully clear on the first click.

🐛 Fixed

  • Exporting could fail with a "Server returned an invalid response" error on certain configurations.
  • The Remove button for uploaded import files could require a second page reload to fully clear them.
  • A PHP fatal error in the admin menu could occur when another GravityKit product was reactivated while GravityMigrate was active.

🔧 Updated

Version 1.1.5 permalink

1.1.4 on October 30, 2025

This update resolves several issues affecting export and import functionality.

🐛 Fixed

  • Forms in the Trash being shown in the Export Forms list.
  • Forms were being eagerly loaded on unrelated requests.
  • "Uploads & Files" may be inaccessible if the source site has a redirect (for example, HTTP to HTTPS).
  • PHP error "Undefined array key 0" when database query returns no results during import.
  • Source URL accessibility check now falls back to GET request when HEAD request returns 400 or 405 status codes.
  • Broken export file link when WordPress is configured to use remote storage (e.g., Amazon S3) for uploads.

💻 Developer Updates

  • Added gk/gravitymigrate/remote-request-args filter to modify arguments used in remote HEAD and GET requests when testing source URL accessibility.

🔧 Updated

Version 1.1.4 permalink

1.1.3 on November 21, 2024

This hotfix update addresses a non-critical PHP notice in WordPress 6.7 and newer.

🐛 Fixed

  • PHP notice in WordPress 6.7 caused by initializing product translations too early.

🔧 Updated

Version 1.1.3 permalink

1.1.2 on October 1, 2024

This update improves compatibility with PHP 8.2 and resolves an import issue.

🐛 Fixed

  • Deprecation warnings in PHP 8.2.
  • Error during import caused by missing array keys.

🔧 Updated

Version 1.1.2 permalink

1.1.1 on August 6, 2024

This update resolves an issue that might interrupt migration.

🐛 Fixed

  • Potential error during post meta migration.
Version 1.1.1 permalink

1.1.0 on July 30, 2024

This release adds post-migration database cleanup and import resume/cancel functionality, fixes various migration issues, and updates internal components for improved performance and compatibility.

🚀 Added

  • Database cleanup after migration.
  • Ability to resume or cancel the import process if it fails due to a network error.

🐛 Fixed

  • Forms feeds were not being migrated.
  • Migrating the form that has the same name as one of the existing forms would prevent that form from being saved until it is renamed.
  • 500 Internal Server Error when importing with "Uploads & Files" and "Gravity Flow Data" options checked.
  • Voting, rating, and commenting not working on migrated form entries.
  • Migrated GravityView Views were referencing old form IDs, requiring manual updating.

🔧 Updated

Version 1.1.0 permalink