← Back to FormPorter

How to Convert Contact Form 7 to WPForms, Gravity Forms, or Any Other Plugin

April 14, 2026

Contact Form 7 has been around forever. It's free, it works, and it's on something like 5 million WordPress sites. But at some point, most people outgrow it. They want a drag-and-drop builder. They want to see their submissions in the dashboard. They want conditional logic or payment fields or just... a nicer interface.

And that's when the question comes up: how do I get my CF7 forms into something else without starting over?

Why CF7 migrations are different

Most form plugins export as JSON or XML files. Contact Form 7 doesn't really have an "export" button in the same way. Your form is built with shortcode-style tags inside the form editor. It looks something like this:

<label> Your Name
  [text* your-name]
</label>

<label> Your Email
  [email* your-email]
</label>

<label> Your Message
  [textarea your-message]
</label>

[submit "Send"]

That's it. That's your form. And no other plugin can read that format natively.

What to do

Go to Contact Form 7 in your WordPress admin. Open the form you want to migrate. Select all the code in the Form tab and copy it.

Head to formporter.com. Select "Contact Form 7" as the source and pick your target plugin, whether that's WPForms, Gravity Forms, Ninja Forms, Fluent Forms, or Formidable. Paste the shortcode into the text area. Hit Convert.

FormPorter parses the CF7 shortcode syntax, identifies each field type, pulls out the labels and placeholder text, figures out which fields are required (the ones with the asterisk), and builds a properly formatted export file for whatever plugin you're moving to.

A few things to keep in mind

CF7 forms tend to be simpler than what you'd build in Gravity Forms or WPForms, so the conversion is usually clean. But there are a couple things worth knowing.

CF7's mail tab (where you set up the notification email) isn't part of the form markup, so FormPorter can't read it from the shortcode alone. You'll want to set up your notification emails manually in the new plugin after import. Takes about a minute.

If you're using CF7 with third-party plugins like Conditional Fields for Contact Form 7, those conditional rules won't carry over. That's a plugin-on-top-of-a-plugin situation and every form builder handles conditional logic differently.

Why now is a good time to switch

If you've been putting off this migration because you didn't want to rebuild forms by hand, that's the exact reason FormPorter exists. Copy the shortcode, pick your target, convert, import. You could migrate every CF7 form on a site in the time it would take to rebuild one of them manually.

Ready to leave CF7 behind?

Try FormPorter