Published

Updated

GravityImport vs GravityMigrate: which add-on do you actually need?

Confused between GravityImport and GravityMigrate? GravityImport handles CSVs into entries; GravityMigrate moves entire Gravity Forms setups between sites.

Both add-ons enable you to “import” data into Gravity Forms, and that’s where the confusion lies. If you’re trying to get data into Gravity Forms but can’t tell which add-on fits the job, this guide will get you to the right answer!

Quick decision guide (pick in 30 seconds)

  • You have a CSV file and want to load its rows as Gravity Forms entries? Use GravityImport.
  • You have an entire Gravity Forms setup on one site and want to move it to another site (forms, entries, feeds, Views, settings, the lot)? Use GravityMigrate.
  • You’re moving a site, but you also have CSV data sitting outside Gravity Forms? You’ll want both. GravityMigrate handles the form/entry transfer; GravityImport pulls the CSV rows in afterward.

The simplest mental model: GravityImport works with spreadsheets, GravityMigrate works with WordPress sites.

What each plugin actually does

GravityImport is a CSV importer for Gravity Forms. You upload a CSV, map its columns to form fields, and the rows become entries. It can drop those rows into an existing form or auto-build a new form whose structure matches your spreadsheet. It’s designed for jobs that start with a flat file: a list of customers, a member directory you exported from another tool, a set of survey responses sitting in a Google Sheet.

GravityMigrate is a site-to-site migration tool. It bundles forms, entries, feed configurations, GravityView Views, file uploads, settings, and even Gravity Flow workflows into a single ZIP file you can download from one site and import into another. It’s designed for jobs that start with a working Gravity Forms install on Site A and end with a copy of that install on Site B. Staging to production. Demo to live. Old domain to new.

Side-by-side comparison

GravityImportGravityMigrate
Primary jobImport CSV rows as entriesMove entire Gravity Forms setups between sites
Source formatCSV filesA ZIP file generated by GravityMigrate on the source site
What it importsForm entries (and metadata when columns are mapped). Can also create a new form to match the CSV structure.Forms, entries, file uploads, feed configurations, GravityView Views, form settings, calculations, Gravity Flow workflows, Nested Forms data, and add-on data
Field mappingYes. You map each CSV column to a form field, or skip itNot applicable. The export/import preserves the original structure
Updates existing entries?Yes. If you include an Entry ID column then matching rows are updatedNo. The migrator creates new forms rather than merging into existing ones
Bulk capabilityBuilt for thousands of rows in one pass; failed rows can be exported as CSV for reviewA single export bundles whatever you select; one-shot transfer per ZIP
Triggers feeds (Mailchimp, Zapier, User Registration, etc.)?Optional, off by default. Toggle “Run feeds for each imported entry”Migrates the feed configurations themselves (not entry-by-entry triggers). Add-ons must be installed and activated on the destination site for the feeds to render
Sends notifications during import?Optional, off by defaultNot a notification-firing tool; it transfers the configuration
ValidationValidates each row; can skip required fields and continue past errorsValidates the ZIP’s integrity; once imported, changes can’t be undone
RequirementsGravity Forms installed and activated on the same siteGravity Forms 2.5 or later, and the same on both source and destination
PricingSold standalone (starting at $99 per year) or bundled in the All Access Pass ($399 per year)Sold standalone (starting at $99 per year) or bundled in the All Access Pass ($399 per year)

Real-world jobs and which product handles each

You need GravityImport when…

  1. You have a list of 5,000 customers in a CSV and need them as entries in an existing customer form. Map columns, click import, done.
  2. You’re starting a directory and have your seed data in a spreadsheet. Upload the CSV and let GravityImport auto-create the form to match.
  3. You need to update existing entries in bulk. Add an Entry ID column to your CSV and GravityImport will switch into update mode for matching rows. (This will override existing entries with the new data).
  4. You’re migrating from another form plugin or CRM (Typeform, Jotform, Formidable, HubSpot) and you’ve exported the data to CSV. GravityImport is the bridge from spreadsheet to Gravity Forms.
  5. You want imported entries to trigger a Mailchimp feed, fire a notification, or run through a User Registration feed. Turn the relevant options on during import and each row runs through your normal Gravity Forms automation.

You need GravityMigrate when…

  1. You’re cloning your staging site into production and want forms, entries, feeds, Views, and settings to land on the live site exactly as they were.
  2. You’re moving a client site to a new domain or host and you don’t want to rebuild every form, feed, and View by hand.
  3. You want one of GravityKit’s online demos on your own site. GravityMigrate has a documented workflow specifically for this.
  4. You want to build a reusable template. Build out a full Gravity Forms-powered application with forms, Views, feeds, workflows, and more. Then bundle it into a ZIP that you can reuse for multiple clients.
  5. You need to bring a Gravity Flow workflow (or a Nested Forms parent/child setup) along with the entries. GravityMigrate carries those configurations across; GravityImport does not.

Frequently asked questions

Can I import forms from another plugin (WPForms, Ninja Forms, Typeform, etc.) into Gravity Forms?

Partly. GravityImport handles the entry data if you can export it to CSV first—that’s the bridge from Typeform, Jotform, WPForms, Ninja Forms, or any other source that produces a spreadsheet. The form structure itself (fields, labels, conditional logic, settings) doesn’t transfer automatically. You’ll need to rebuild the form in Gravity Forms first, then load the CSV against it. GravityMigrate doesn’t help here either; it only moves data between Gravity Forms sites. For complex source forms, GravityImport’s “auto-create form from CSV” option gives you a starting structure you can refine. See our step-by-step guide to importing entries into Gravity Forms for the full workflow.

My forms use add-ons like Gravity Flow, GP Nested Forms, or the Signature add-on—will GravityMigrate carry them across?

GravityMigrate explicitly carries Gravity Flow workflows, Nested Forms parent/child relationships, file uploads, and feed configurations in the migration ZIP. Other add-ons (Signature, Webhooks, etc.) generally travel as part of the form configuration since their data is stored in the entry, but the destination site needs the matching add-on plugin installed and activated before you import, otherwise those fields render empty even though the data is there. For mission-critical migrations, run a test import on a staging site first and verify each add-on’s data renders correctly before cutting over.

I already have forms on the destination site. Will GravityMigrate overwrite them or fail?

Neither. GravityMigrate creates new forms on the destination by default, with fresh form IDs. Your existing forms on the destination site stay untouched, and the imported forms appear alongside them in the Forms list. The trade-off: imported entries land on the new (imported) form, not your existing one. If your goal is “merge new entries into a form I already have”, that’s a GravityImport (CSV) job, not a GravityMigrate one. One thing to watch: importing the same export twice creates duplicate forms on the destination. Back up before importing if you’re not sure whether the import has already run.

Can I use GravityImport on my dev or staging site without burning a license activation?

Yes. GravityKit licenses don’t count development or staging sites against your activation total. The auto-detection happens automatically for common patterns like staging.example.com, dev.example.com, localhost.local, and most managed-host staging URLs. If your staging URL is unusual (custom subdomain, regional domain, or a multisite network), contact support and the team can manually adjust your activation limit.

My GravityImport CSV is hanging or failing partway through. How do I fix it?

Three common causes. First, the CSV file: malformed encoding (non-UTF-8), inconsistent column counts, or unescaped commas inside cells will stall the importer. Re-save the file as UTF-8 from Google Sheets or LibreOffice before re-uploading. Second, server limits: large imports (10,000+ rows) can hit your hosting’s PHP timeout or memory limits. Increase max_execution_time and memory_limit if you can, or split the CSV into smaller batches. Third, plugin conflicts: temporarily deactivate caching, security, and optimization plugins, run the import, then reactivate them. Gravity Forms’ common form issues checklist covers the standard server-side fixes if those don’t resolve it.

Will my entry IDs change after a GravityMigrate import, and could that break saved URLs or redirects?

Yes, entry IDs change. GravityMigrate creates fresh entries on the destination, so an entry that was ID 1247 on the source might land as ID 39 on the destination. The data is the same, but the IDs are renumbered to fit the destination’s existing entry sequence. If you have URLs that reference specific entry IDs (single-entry GravityView URLs, custom redirects, or external integrations holding entry-ID references), those will need to be updated after the migration. The simplest path: run a search-and-replace across your saved URLs after migrating, then click through to verify. For sites where entry IDs are part of public-facing URLs (member directories, ticket trackers), plan a brief redirect window or migrate to a slug-based URL pattern before the migration.