Migrate Forms to WS Form Pro
TL;DR
- Migrate forms via WS Form > Migrate in WordPress admin
- Import submissions after form migration for automatic field mapping
- Add Cloudflare Turnstile for spam protection (replace old CAPTCHA)
- Verify all actions - check email notifications, redirects, and integrations
- Test thoroughly before removing the old plugin
Supported Source Plugins
WS Form Pro includes a built-in migration tool that supports importing from:
- Gravity Forms
- WPForms
- Contact Form 7
- Ninja Forms
- And others
The migration tool imports forms, submissions, and most field types including file uploads and signatures.
Migration Steps
1. Import the Form
- Navigate to WS Form > Migrate in the WordPress admin
- Select the source plugin (e.g., Gravity Forms, WPForms)
- Choose the form you want to import
- Select Form to import the form structure
- Click Start Import
- Once complete, click Edit Form to review in the layout editor
Source Forms Are Preserved
Your original form will not be changed or deleted during migration. You can reference it if needed.
2. Import Submissions (Optional)
After importing a form, you can migrate historical submissions:
- Click Import Submissions after the form import completes
- WS Form automatically maps fields from the source form
- Review the field mappings and adjust if needed
- Start the submission import
Import Order Matters
Always import the form first - WS Form creates automatic field mappings that make submission imports seamless.
3. Review and Update Form Settings
After migration, manually verify:
- All fields imported correctly
- Field validation rules are intact
- Conditional logic works as expected
- Multi-page forms have correct page breaks
Setting Up Cloudflare Turnstile
Replace legacy CAPTCHA solutions with Cloudflare Turnstile for better UX and spam protection.
1. Create Turnstile Widget in Cloudflare
- Log in to the Cloudflare Dashboard
- Navigate to Turnstile in the sidebar
- Click Add Site
- Enter your Site Name (widget identifier)
- Enter your Domain (can be main domain or subdomain)
- Choose Widget Type:
- Managed (recommended) - Cloudflare decides if challenge is needed
- Non-interactive - Shows loading bar, no user interaction
- Invisible - No visual indicator
- Click Create
- Copy the Site Key and Secret Key
2. Configure WS Form
- Go to WS Form > Settings > Spam Protection
- Paste the Site Key and Secret Key
- Click Save
3. Add Turnstile to Forms
- Edit your migrated form
- Drag the Turnstile field onto your form
- Configure appearance options:
- Theme: Auto, Light, or Dark
- Appearance: Always, Execute, or Interactive Only
- Invalid Feedback Text: Custom error message
- Save and publish the form
Post-Migration Checklist
Verify Submit Actions
After migration, double-check all form actions are configured correctly:
Email Notifications
- Recipient email addresses are correct
- Reply-To is set to the form's email field
- Email subject and body templates are intact
- CC/BCC addresses migrated (if applicable)
Redirects
- Thank you page URLs are correct
- Conditional redirects work as expected
- Pass-through parameters are configured
Integrations
- CRM integrations reconnected (HubSpot, Salesforce, etc.)
- Email marketing connections verified (Mailchimp, etc.)
- Payment gateways configured (Stripe, PayPal)
- Webhook URLs updated if needed
Testing
- Submit a test entry on the live form
- Verify email notifications are received
- Confirm redirect behavior
- Check submission appears in WS Form > Submissions
- Test on mobile devices
Cleanup
Once verified:
- Update any shortcodes/blocks referencing old forms
- Remove old form plugin (after confirming everything works)
- Clear any caching plugins
Troubleshooting
| Issue | Solution |
|---|---|
| Fields missing after import | Some add-on features may not import - add manually in WS Form |
| Conditional logic not working | Recreate complex conditions in WS Form's conditional editor |
| Submissions not importing | Verify field mapping matches between source and destination |
| Turnstile not validating | Check Site Key/Secret Key are correct and domain is whitelisted |