splitforms.com
← Back to the journal

Form Backend Migration Checklist: Fields, Files and Email

Move an existing form to SplitForms with a practical checklist for field mapping, redirects, uploads, email recipients, webhooks, testing and rollback.

Start free — 500 submissionsSee pricing →No card, no time limit. Pro is $5/mo.
Short answer
Migrating an existing HTML form to SplitForms means connecting the new endpoint, preserving visitor field names, mapping provider-specific controls, and verifying files, redirects, notifications and integrations. Use /f/YOUR_ACCESS_KEY for the compatibility endpoint or /api/submit with an access_key field. Keep the previous configuration available until the new production flow passes its checks.
Try it on your own form

Point any HTML form at one endpoint. 500 free submissions — no card, no time limit — and unlimited forms.

Create free account

Record the current contract before changing the URL

List what the visitor sees and what happens after submission. A successful migration preserves both. Write down field names, required inputs, selected options, repeated values, attachment types, recipients, thank-you behavior, autoresponder content and each downstream integration.

Include the deployed page URL and the current endpoint in the handoff. Take a synthetic example of the request and its expected result. A screenshot of the form is useful, but it does not reveal hidden controls or webhook payloads. Use fictitious contact details for fixtures rather than exporting customer messages into a development repository.

Record the current contract before changing the URL
PreserveVerify separately
Visitor field names and valuesProvider-specific hidden control fields
Labels, styling and validationEndpoint and access key
Checkbox and multi-select choicesArray encoding and empty-value behavior
Expected file attachmentsStorage plan, connection and upload limits
Notification workflowRecipients, autoresponder and SMTP settings
CRM mappingWebhook authentication and payload shape

References: SplitForms field reference

Connect the correct endpoint

For the standard API, post to https://splitforms.com/api/submit and include a hidden access_key field. For the compatibility endpoint, post to https://splitforms.com/f/YOUR_ACCESS_KEY. The key in the compatibility URL identifies the form, so you do not need to add a second routing input.

Compatibility is not permission to assume every vendor setting transfers automatically. The /f endpoint translates supported special controls, including common redirect and honeypot aliases. An email template stored in another vendor’s dashboard is not part of your form HTML and needs its own migration.

<form action="https://splitforms.com/f/YOUR_ACCESS_KEY" method="POST">
  <label>Name <input name="name" required></label>
  <label>Email <input type="email" name="email" required></label>
  <label>Message <textarea name="message" required></textarea></label>
  <button type="submit">Send</button>
</form>

References: SplitForms API reference · Migrate from Formspree

Check files, redirects and abuse controls

A file picker can look unchanged while its upload fails. Confirm that the request sends file bytes, the target plan supports uploads and the Storage integration is connected. Open the resulting file from a stored submission. Merely seeing its filename in an email is not sufficient verification.

Check the production thank-you destination and any fields deliberately forwarded to it. Keep private answers out of query strings unless your workflow explicitly requires them and you have considered where URLs are logged. Update the allowed hostname and configure verification for the new backend before accepting live traffic.

References: SplitForms file and field handling · Redirect setup

Recreate the delivery workflow

Set the owner notification recipients and any CC or routing rules in SplitForms. Configure the autoresponder separately from the owner notification. If you use custom SMTP, check that the sender identity and provider credentials belong to the intended account.

For a webhook consumer, compare actual field paths instead of assuming a new vendor uses the old JSON envelope. Update signature verification for SplitForms, and confirm that your receiver handles duplicate deliveries safely. A successful browser response says nothing about whether the final CRM field was mapped correctly.

References: Submission and delivery lifecycle · Verify webhook signatures

Use a concrete acceptance checklist

Run a controlled test after deploying the actual public page, not only the local preview. Agree on who receives that test so it does not become a sales follow-up. Record the time, form name and expected results, then inspect each checkpoint.

Keep the previous action URL and delivery settings in your release notes. If a critical acceptance check fails, restore the previous configuration while you diagnose it. Avoid sending every visitor submission to both systems as an improvised test: that can double notifications and create duplicate CRM contacts.

  • Required inputs reject invalid data with a clear message.
  • Every intended visitor answer appears under the correct field name.
  • Unchecked and repeated choices have the expected meaning.
  • Uploaded files can be opened.
  • The dashboard record, owner notification and autoresponder are checked separately.
  • The thank-you page and any analytics conversion trigger once.
  • The downstream integration stores one record with the expected fields.
  • A failed request preserves visitor input and offers a useful next step.

References: Contact-form launch checks

Frequently asked questions

Can I keep my current form design?

Yes for an HTML or framework form you control. Preserve its markup and styles while changing the submission connection. A hosted form-builder embed may need to be rebuilt.

Does changing the endpoint import old leads?

No. It changes where future submissions go. Export and retain historical records according to your existing workflow; do not assume the endpoint performs a data migration.

Related articles

More practical guidance from guides.

Browse the journal →
Guides

Best MCP Servers for Building Forms with AI Agents (2026)

Ranked MCP servers that let Claude Code, Cursor, and other agents create forms and read subm…

12 min readRead →
Guides

Elementor Form Not Sending Email? 5 Fixes That Work (2026)

Why Elementor form notifications never arrive: the wp_mail root cause, how to confirm it in…

8 min readRead →
Guides

Why mailto: Doesn't Work as a Form Action (and What to Use Instead)

Using action="mailto:[email protected]" opens the visitor's mail app instead of sending anythi…

6 min readRead →

Explore this topic

Start with the overview, then move into focused guides.

OverviewWhat Is a Form Backend? (Complete Guide)Start here →GuideSelf-Hosted vs SaaS Form BackendRead →GuideForm Backend vs Form BuilderRead →GuideWhere Do Form Submissions Go?Read →ReferenceForm backend guideOpen →

Building forms with ChatGPT, Claude, Cursor, or v0? Connect the native MCP server and give your agent a production form backend.

Explore the MCP server →

Give your form a production backend.

One endpoint adds delivery, spam filtering, storage, and integrations. Start with 500 free submissions — no card, no time limit.

Create free accountRead the docs →
Secure checkoutSSL encryptionPrivacyProtected
VISAAMERICANEXPRESSstripe