Back to GravityMigrate
GravityMigrate changelog
Release notes for every version we have on record, newest first.
Latest 2.2.0 · 22 Oct 2026
16 versions
Since Jan 2023
2026 10 versions
2.2.0 Latest 22 Oct 2026 1 new1 fixed6 changed
New
- 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").
Fixed
- This release makes migration problems easier to understand and fix, and resolves several issues with migration messages, the date range picker, and AI assistants.
Changed
- 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.
- 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.
- 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.
- Foundation to version 1.38.0.
2.1.2 15 Oct 2026 3 changed
Changed
- This update prevents AI assistants from creating duplicate forms during a migration.
- AI assistants that retried a migration while the first attempt was still running created the same forms twice.
- Foundation to version 1.37.0.
2.1.1 8 Oct 2026 1 new5 changed
New
- 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.
Changed
- This release makes migrating with an AI assistant more reliable.
- Note: GravityMigrate now requires WordPress 6.5 or newer.
- 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.
- Foundation to version 1.35.0.
2.1.0 17 Sep 2026 2 new1 changed
New
- This release adds support for using AI to fully handle your migration. Note: GravityMigrate now requires WordPress 6.2 or newer.
- Added eleven new WordPress Abilities, registered through GravityKit Foundation, each prefixed with gk-gravitymigrate/.
Changed
- 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.
2.0.0 11 Sep 2026 2 new2 improved2 security1 removed25 changed
New
- Added filters (see GravityMigrate filter docs):
- 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.
Improved
- Keyboard navigation and screen reader accessibility. The new interface features much-improved keyboard focus behavior and aria live announcements.
- Improved file naming to prevent guessing file paths.
Security
- 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.
- Hardens access control on the migration endpoints.
Removed
- 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.
Changed
- 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...
- 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.
- 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.
- Migrating forms now requires full administrator access. The wizard, the background jobs and the WP-CLI commands all now require the manage_options capability.
- 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.
- 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.
- 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.
- 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.
1.4.0 27 Aug 2026 1 fixed2 security3 changed
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.
Security
- 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.
- Hardens access control on the migration endpoints.
Changed
- 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.
- Foundation to version 1.30.0.
1.3.1 6 Aug 2026 1 fixed6 changed
Fixed
- This release fixes data-integrity issues when importing entries, including wrong Gravity Wiz Nested Forms references and duplicated entries after resuming an interrupted import.
Changed
- 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.
- Foundation to version 1.28.0.
1.3.0 24 Jul 2026 1 new1 improved1 fixed1 security24 changed
New
- Added filters:
Improved
- Gravity Flow workflow step history was not updated to reference the correct feed after import.
Fixed
- Fixed multiple security issues, including one that could allow unintended access under certain conditions.
Security
- 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.
Changed
- Note: GravityMigrate now requires PHP 7.4 or newer.
- 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.
- 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.
- 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.
- 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.
- Gk/gravitymigrate/import/max-download-bytes, gk/gravitymigrate/import/max-dump-file-size, and gk/gravitymigrate/import/download-timeout adjust the import safety limits for sites that legitimately migrate very large amounts of data.
- Gk/gravitymigrate/export/row modifies a data row's values before it's written to the export dump (e.g. to remap file-upload URLs).
- Gk/gravitymigrate/export/info modifies the export's info.json metadata before it's written.
- Gk/gravitymigrate/import/upload-url modifies the source URL a linked upload is downloaded from during import.
- Foundation to version 1.26.0.
1.2.0 4 Jun 2026 1 fixed1 changed
Fixed
- This release includes internal component updates and bug fixes for improved stability and compatibility.
Changed
- Foundation to version 1.21.0.
1.1.5 14 May 2026 5 changed
Changed
- 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.
- 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.
- Foundation to version 1.18.0.
2025 1 version
1.1.4 30 Oct 2025 1 new8 changed
New
- Added gk/gravitymigrate/remote-request-args filter to modify arguments used in remote HEAD and GET requests when testing source URL accessibility.
Changed
- This update resolves several issues affecting export and import functionality.
- 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.
- Foundation to version 1.6.1.
2024 4 versions
1.1.3 21 Nov 2024 1 fixed2 changed
Fixed
- This hotfix update addresses a non-critical PHP notice in WordPress 6.7 and newer.
Changed
- PHP notice in WordPress 6.7 caused by initializing product translations too early.
- Foundation to version 1.2.21.
1.1.2 1 Oct 2024 1 improved3 changed
Improved
- This update improves compatibility with PHP 8.2 and resolves an import issue.
Changed
- Deprecation warnings in PHP 8.2.
- Error during import caused by missing array keys.
- Foundation and TrustedLogin to versions 1.2.18 and 1.9.0, respectively.
1.1.1 6 Aug 2024 2 changed
Changed
- This update resolves an issue that might interrupt migration.
- Potential error during post meta migration.
1.1.0 30 Jul 2024 1 fixed8 changed
Fixed
- 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.
Changed
- Database cleanup after migration.
- Ability to resume or cancel the import process if it fails due to a network error.
- 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.
- Foundation and TrustedLogin to versions 1.2.17 and 1.8.0, respectively.
2023 1 version
1.0.0 26 Jan 2023 1 changed
Changed
- Launch!
