← Back to FormPorter

How to Migrate Ninja Forms to Gravity Forms (The Easy Way)

April 14, 2026

This is the exact situation that made me build FormPorter. A client needed to move from Ninja Forms to Gravity Forms, and I was looking at a handful of forms that all needed to be rebuilt from scratch. Every field, every label, every notification, every confirmation message. One. At. A. Time.

If you've ever done this manually, you know the feeling. It's not complicated work. It's just slow, repetitive, and really easy to mess up. Miss a required toggle on one field and now the form is live without validation on the email address. Fun times.

Why people make this switch

Ninja Forms is a solid plugin, but I see clients move to Gravity Forms for a few reasons. Sometimes they need payment integrations that work more reliably. Sometimes their developer prefers the Gravity Forms API. Sometimes they're consolidating multiple sites onto one form plugin and Gravity Forms won the vote. Whatever the reason, the forms still need to come with them.

The problem with doing it manually

Ninja Forms exports as .nff files. Gravity Forms imports JSON. They're completely different formats with different field type names, different structures for notifications, different ways of handling name fields (Ninja Forms splits first and last name into separate fields, Gravity Forms combines them into one). You can't just rename the file extension and call it a day.

And there's no built-in migration path. Gravity Forms doesn't have a "import from Ninja Forms" button. Neither does any other plugin, really. So you're stuck doing it by hand.

How FormPorter handles it

FormPorter reads your Ninja Forms .nff export, normalizes all the field types and settings into a common format, and then outputs a Gravity Forms-compatible JSON file. It handles the translation between the two naming conventions automatically. First name and last name fields get merged into a Gravity Forms name field. "listselect" becomes "select." All the little differences that would trip you up if you were doing it manually.

It also carries over your notification emails, confirmation messages, required settings, placeholder text, and dropdown/radio/checkbox choices. The stuff that takes the longest to rebuild by hand.

Step by step

In Ninja Forms, go to your form, click the settings gear, and export it. You'll get an .nff file.

Go to formporter.com. Select "Ninja Forms" as the source and "Gravity Forms" as the target. Upload your .nff file. Hit Convert.

Download the converted JSON. In Gravity Forms, go to Forms, then Import/Export, then Import Forms. Upload the JSON file. Your form should appear with all the fields mapped correctly.

Give it a quick review. Make sure everything looks right. If your original form had conditional logic, you'll need to set that up manually in Gravity Forms since conditional logic works differently between the two plugins. FormPorter will warn you about this before you download.

Works the other way too

Going from Gravity Forms back to Ninja Forms? Same tool, same process, just flip the dropdowns. FormPorter supports all 30 conversion paths between Ninja Forms, Gravity Forms, WPForms, Fluent Forms, Formidable Forms, and Contact Form 7.

Ready to convert your forms?

Try FormPorter