57. Migration API | Form Forge - Build Forms with AI in Seconds
Download Log in

57. Migration API

Developer Guide

Import forms from Contact Form 7, Gravity Forms, WPForms, and Ninja Forms.

Supported Sources

SourceFormsEntriesDetection Method
Contact Form 7YesNopost_type = 'wpcf7_contact_form'
Gravity FormsYesYesTable wp_gf_form exists
WPFormsYesPaid storage onlypost_type = 'wpforms'
Ninja FormsYesCurrent nf_sub posts + legacy nf3_subs storageTable wp_nf3_forms exists

Running Migration

php
if ( class_exists( 'FORMFORGE_Migration' ) ) {
    $migration = FORMFORGE_Migration::instance();
    // Available sources: 'cf7', 'gravity', 'wpforms', 'ninja'
}

Field Type Mapping (CF7)

CF7 TypeForm Forge Type
texttext
emailemail
telphone
textareatextarea
selectselect
checkboxcheckbox
radioradio
filefile_upload

WPForms file-upload, Ninja Forms file, and Gravity Forms fileupload are also normalized to file_upload. Migration preserves accepted file extensions from CF7 filetypes, WPForms extensions, Ninja nf3_field_meta upload type settings, and Gravity Forms allowedExtensions when those values exist.

For Ninja Forms 3.x, current field metadata is read from wp_nf3_field_meta; placeholders, choice options, required flags, and file upload limits should not be inferred from the base wp_nf3_fields row alone. Required flags may arrive as MySQL BIT(1) bytes and must be decoded before casting to boolean. Current free Ninja Forms submissions are stored as nf_sub posts with _form_id, _seq_num, and _field_ postmeta; older wp_nf3_subs / wp_nf3_sub_meta rows are still imported when present.

Gravity Forms entries store compound fields under sub-input ids such as 1.3, 1.6, or 3.1. Form Forge aggregates supported Name, Address, and checkbox sub-inputs into one readable migrated submission value for the corresponding field label. Gravity Forms field descriptions, CSS classes, admin labels, default confirmation messages, and simple admin/user email notification settings are copied when they map safely. Third-party add-on feeds, payment settings, conditional logic, and provider-specific integration configs are intentionally not migrated.

Post-Migration Steps

  1. Review migrated forms in the builder
  2. Update notification email addresses
  3. Replace old shortcodes in content
  4. Test each form
  5. Deactivate the old form plugin

Forge AI Assistant Online

Hi! I'm the Form Forge AI assistant. Ask me anything about the plugin — setup, features, troubleshooting, or development.

Just now
Powered by Forge AI · Browse docs