What this guide covers
- Before you start: what does not transfer
- Step 1 — Export every response
- Step 2 — Audit what you actually have
- Step 3 — Choose the right destination
- Step 4 — Rebuild the forms
- Step 5 — Rebuild logic and calculations
- Step 6 — Reconnect payments
- Step 7 — Reconnect integrations and webhooks
- Step 8 — Find and replace every embed
- Step 9 — The pre-launch QA checklist
- Step 10 — Cut over and monitor
- Seven mistakes that cost people data
- Frequently asked questions
Before you start: what does not transfer
Migrating a form builder is not like migrating a website. There is no import tool that moves an account wholesale, and three categories of asset are lost permanently if you cancel before extracting them.
| Asset | Transfers automatically? | What you must do |
|---|---|---|
| Form structure (questions, order, types) | No | Rebuild manually or via AI generation |
| Response data | No | Export to CSV/XLSX before cancelling |
| Uploaded files | No | Download separately — CSV only contains links |
| Conditional logic | No | Document the branch map, rebuild, test every path |
| Integrations & webhooks | No | List them, then rebuild on the new platform |
| Stripe connection | Account persists | Reconnect on the new tool; test with a real card |
| Live form URLs | No | Replace every embed and link; keep a stub form live |
| Historic analytics | No | Screenshot or export your baseline metrics first |
1Export every response
Open each form in Typeform, go to Results, and download the full response set as CSV or XLSX. Repeat for every form, including ones you think are dead — archived forms hold the historical data your finance or compliance team will eventually ask for.
Handle file uploads separately
Your CSV will contain URLs pointing at Typeform-hosted files, not the files themselves. Those URLs die with the account. If your forms collect documents, CVs, photos or signed agreements, download every file now. For a form with hundreds of uploads this is the longest single task in the migration — start it first and let it run in the background.
Capture your baseline metrics
Before you switch anything, record each form's current view count, start rate and completion rate. Without a baseline you cannot tell whether a post-migration drop is real or imagined, and "it feels like we're getting fewer leads" is not something you can debug.
formname_responses_2026-09-18.csv in a shared folder, not on one person's laptop. Migrations are almost always done by whoever leaves the company next.2Audit what you actually have
Most teams discover during migration that they have three times as many live forms as they thought, and that half of them collect data nobody reads. Build a spreadsheet with one row per form and these columns:
- Form name and live URL
- Where it is embedded — every page, email template, QR code and PDF
- Monthly submissions — the number that decides whether it is worth rebuilding at all
- Has logic? — and how many branches
- Takes payment?
- Integrations — Slack, Sheets, CRM, Zapier, webhooks
- Owner — who notices if it breaks
3Choose the right destination
The best destination depends on why you are leaving. Three patterns cover most migrations.
| Why you are leaving | Best destination | What you gain |
|---|---|---|
| Response caps and cost | forms.app | AI rebuild, 0% payment commission, conditional logic and payments on the free plan |
| You need a process, not just a form | Zoho Forms | Multi-stage approvals, offline capture, per-organisation pricing instead of per-seat |
| Your forms calculate prices or scores | Cognito Forms | The strongest calculation engine in the category, repeating sections, save & resume |
| You want zero cost and nothing else | Google Forms | Unlimited responses, Sheets sync, no payments or AI |
| Your data lives in Notion or Airtable | Fillout | Native two-way sync, partial submission capture |
If you are undecided, our full comparison of 14 Typeform alternatives scores each one on free plan generosity, pricing, payments and compliance. For budget-driven moves specifically, start with the genuinely free options.
4Rebuild the forms
There are two approaches, and the right one depends on form complexity.
AI rebuild — fastest for straightforward forms
Paste your question list into an AI form generator and let it produce the structure, then correct it. forms.app rebuilt our test forms in under a minute each. The corrections needed were consistent: field types for phone and date questions, and required-field flags, which generators over-apply. Our AI form builder comparison covers which tools produce the most accurate first draft.
Manual rebuild — necessary for anything complex
If a form has more than two logic branches, calculations, or payment steps, build it by hand. Reproducing a subtly wrong calculation is worse than spending twenty minutes doing it properly.
Decide about the one-question-per-page format
Typeform's defining characteristic is showing one question at a time. Most alternatives offer both that and a traditional layout. This is a real decision, not a cosmetic one: conversational layout tends to help on long forms and mobile, while a single-page layout tends to be faster for short forms where respondents want to see the whole commitment up front. If your audience is used to conversational, keep it for now and test the change separately after the migration has settled.
5Rebuild logic and calculations
This is where migrations actually break, and it is worth slowing down.
Draw the branch map before you build
On paper or in a doc, list each condition and what it shows or hides. Reading logic out of a live form is much harder than reading it off a map, and you will need the map again when you test.
Rebuild conditions one at a time, testing each
Do not build all the logic and then test. Add one condition, submit a test response down that path, confirm it behaves, then add the next.
Test the paths you did not design for
What happens when someone selects nothing? Enters zero? Goes back and changes an answer after a branch has already been taken? Reverse navigation is where rebuilt logic most often fails.
Verify calculations with edge cases
Zero quantity, maximum quantity, every optional add-on off, every add-on on, and a discount code if you have one. Compare each result against the old form's output before you decommission it.
6Reconnect payments
Your Stripe account survives the migration; the connection between Stripe and the form does not. Reconnect on the new platform, then run a genuine end-to-end test.
- Make one real payment of the smallest amount the form allows, with a real card, and refund it. Test-mode success is not evidence that live mode works.
- Check the money arrives in the right Stripe account — not a test account someone created during setup.
- Confirm the receipt email fires, and that it says what you want it to say.
- Test a declined card and confirm the respondent sees a useful error rather than a blank screen.
- Check the platform commission. Typeform charges no platform fee on Stripe payments, but some alternatives do. forms.app takes 0%; verify on whichever tool you chose, because a percentage fee on every transaction dwarfs the subscription difference.
If you need gateways beyond Stripe — PayPal, Razorpay, Square, regional processors — that is itself a reason to choose the destination carefully. Our 123FormBuilder comparison covers the widest gateway support in the category.
7Reconnect integrations and webhooks
Work through the integration column of your audit spreadsheet. For each one, rebuild it on the new platform and send a test submission through the whole chain — not just to the form's own response table.
- CRM — confirm a test submission creates a record with the fields mapped correctly, not a record with everything in the notes field.
- Spreadsheets — check the column order, which almost never matches, and update any downstream formulas or pivot tables that depend on it.
- Email notifications — verify both the internal alert and the respondent confirmation, and check they are not landing in spam from a new sending domain.
- Webhooks — the payload structure differs between platforms. Anything consuming a Typeform webhook will need its parser updated. Test against your staging endpoint first.
- Zapier or Make — rebuild the trigger, then run the zap once manually before turning it on.
8Find and replace every embed
Search your entire web presence for Typeform references. The strings to look for: typeform.com, embed.typeform.com, form.typeform.com, and any short links you created.
Places people forget
- Email signatures and email marketing templates
- Printed QR codes on posters, menus, packaging and business cards
- PDFs — brochures, proposals, onboarding packs
- Social media bio links and pinned posts
- Paid ad destination URLs, including paused campaigns
- Support macros and canned replies
- Calendar invite descriptions and meeting templates
Handling links you cannot change
Printed QR codes and links inside already-sent emails cannot be updated. The workaround: keep the original Typeform live, strip it back to a single explanatory message, and point its completion redirect or button at the new form. Leave that stub in place for at least 90 days — longer if you have printed material in circulation.
On your own site, add a permanent 301 redirect from any page that hosted the old form to the new one. That preserves whatever search visibility and backlinks the page had accumulated.
9The pre-launch QA checklist
Run every item on a real device before you cut over. Half of these failures only appear outside your own browser.
Function
- Every logic path tested end to end
- Calculations verified against edge cases
- Required fields match the old form exactly
- Validation messages are readable, not codes
- Back-navigation does not corrupt answers
- Submission confirmation displays correctly
Delivery
- Tested on a real phone, not a resized window
- Tested in an incognito window
- Tested by someone who did not build it
- Notification emails arrive and are not in spam
- Data reaches the CRM or sheet with correct mapping
- Analytics and conversion tracking fire on submit
10Cut over and monitor
Run both forms in parallel for a week
Start with your lowest-traffic form. Route half your traffic to the new one if you can; if not, run the new form on a secondary placement. Compare submission counts daily.
Migrate in ascending order of importance
Low-traffic forms first, main lead capture last. By the time you touch the form that matters, you will have found your platform's quirks on forms that do not.
Watch completion rate for two weeks
Compare against the baseline you recorded in step 1. A drop of more than a few percent almost always traces back to a newly required field, a broken embed on one page, or a mobile layout problem.
Keep the Typeform account alive for 30 days
Downgrade it rather than cancelling. It is cheap insurance against the export you did not realise you needed, and it keeps your stub forms working.
Then optimise
Once the migration has settled and numbers are stable, start improving the forms — shorter, clearer, fewer required fields. Our form conversion optimisation guide covers what actually moves completion rates.
Seven mistakes that cost people data
- Cancelling before exporting. The most expensive mistake in this list, and the least recoverable.
- Exporting responses but not the uploaded files. The CSV looks complete. The links inside it stop working when the account closes.
- Migrating the main lead form first. You learn the new platform's quirks on the form that pays the bills.
- Not recording baseline metrics. Without them, every post-migration conversation is guesswork.
- Assuming required-field settings carried over. They do not, and defaults differ between platforms. This is the single most common cause of a completion-rate drop.
- Testing payments in test mode only. Live mode has its own failure modes, particularly around currency and account selection.
- Forgetting the QR codes. Printed material is the one channel you cannot update, and the one people always remember last.
Rebuild your forms in minutes, not days
forms.app's AI generator reproduces a form from a plain-text question list — and its free plan has no per-response cliff to fall off.
Try forms.app Free → Compare all destinations