How to migrate from Typeform to LimeSurvey without losing responses
If you are moving because a Typeform renewal is due, because your data must stay in your own jurisdiction, or because research responses should live on your own servers, plan the move as two separate jobs: rebuilding the surveys in LimeSurvey and archiving past Typeform responses. LimeSurvey does not import Typeform forms, so each survey is recreated by hand, and historical responses are exported from Typeform as JSON or CSV and kept as an archive rather than loaded into the new survey tables. Survey owners usually run the work, often with an IT or platform team handling the server, backups and access. Effort depends on how many surveys you have, how complex their branching and hidden logic is, and how many languages each one needs, so inventory those three things before you estimate anything.
LimeSurvey Community Edition is licensed under GPL v2.0, with the option to use any later GPL version, and it is free to download and self-host, so the recurring cost is the server, its administration and the time your team spends on it. Before you rebuild, decide where it will run and confirm the stack against the requirements in the LimeSurvey repository: PHP 8.1.29 or later with mbstring and PDO drivers, and one of MySQL 8.0, PostgreSQL 14, MariaDB 10.3.38 or MSSQL 2019 or later. Check the LimeSurvey community downloads page for the current stable release and for the support status of the line you install, because the 6.17.19 line reached end of support on August 31, 2026.
The main risk is missing responses during cutover. Pick a switch-over date, keep the Typeform form open and collecting until the LimeSurvey replacement is tested, then export every response up to the cutover point. Typeform's Responses API can lag by roughly 30 minutes, so re-run the export after that window and reconcile counts before you close the old form. Do not switch the public link or embed until a test response has reached the LimeSurvey database and the archive file matches the Typeform count. Ask your provider or internal team to confirm backup schedules for the database and the upload folder, since those hold anything your survey collects.
Which Typeform capabilities map to LimeSurvey and which need rework
This table compares the main Typeform capabilities with what LimeSurvey covers, marking each as clean, needs rework or gap. Read it as a starting inventory for a pilot, not a guarantee, because conversational layout and some logic patterns must be tested on your own surveys before you commit. The main takeaway is that question types and multilingual surveys are well covered, while the look-and-feel and certain logic and integration details need checking.
| Capability | Typeform | LimeSurvey |
|---|---|---|
| Question types | Clean: common types such as multiple choice, rating, dropdown and yes/no | Clean: more than 30 question types, though some Typeform types need a close equivalent |
| Branching and logic | Needs rework: rebuild jump and conditional rules as LimeSurvey conditions | Needs rework: confirm each branch pattern in a pilot before rebuilding the full survey |
| Hidden fields | Needs rework: map URL parameters to LimeSurvey URL and query parameters | Needs rework: test that prefilled values reach the response record correctly |
| Multilingual forms | Needs rework: re-enter translations per language in the new survey | Clean: multilingual surveys in more than 80 languages, with translations kept per survey |
| Conversational layout | Gap: one-question-at-a-time design is a Typeform hallmark | Gap: confirm available themes and whether any layout matches your brand and expectations |
| Response export | Clean: CSV and JSON through the Responses API, with a lag of about 30 minutes | Clean: CSV and statistical exports, with plugins such as ExportR and ExportSTATAxml |
| File uploads | Needs rework: download uploaded files from Typeform and store them in your own system | Needs rework: confirm upload field limits and storage location on your PHP server |
| Embeds and webhooks | Needs rework: replace embed codes and point webhooks to the new endpoint | Needs rework: confirm webhook or API options for your integrations before switching |
| Results and reporting | Needs rework: rebuild summary views and dashboards from exported data | Clean: built-in statistics and response browsing, with data shaped for analysis tools |
What data to archive and which integrations to rebuild
Moving a survey is less about the questions than about what surrounds them: historical responses, uploaded files, and every system that receives data from the form. Each item below needs an owner, a cut-over step and a check that it still works after the switch.
Export responses through the Responses API
Typeform's Responses API returns a form's responses as JSON on each GET request and can filter by submission date. Page through the full history in date windows and store each raw JSON file with the form ID and export timestamp. The API may not include submissions from roughly the last 30 minutes, so run a final pass after the form is closed and before you delete anything. Confirm the response count in the export matches Typeform's own count for the same period.
Keep archives outside the live system
Store raw JSON and a flattened CSV copy in a location separate from both Typeform and the new LimeSurvey server, such as encrypted storage on your own network. The JSON preserves answer structure and hidden fields, while the CSV is easier for analysts. Record a checksum for each file and set retention according to your records policy. Keep a short mapping document that ties Typeform question IDs to the LimeSurvey question codes you create.
Download uploaded files separately
Responses that contain file uploads do not come through the same path as answer data, so treat file downloads as a separate step. Request each file through the file download endpoints, match it to its response ID, and compare file counts and sizes against the responses that reference them. Do not assume files moved because the answer rows did. Confirm the result with a sample of files opened by a second person before the Typeform account is closed.
Rebuild embeds, redirects and thank-you pages
Every website page, intranet page or email that embeds a Typeform link or iframe will break at cut-over. Inventory these places from your content system and any link tracking, then point them at the new LimeSurvey URL. Rebuild redirect rules for old Typeform links so respondents who saved a link still reach the survey, and recreate end-page text and redirect targets. Test each path on a staging copy of the site.
Replace webhooks and notification targets
Typeform webhooks, email alerts and Slack notifications send data to receivers that depend on Typeform's payload format. LimeSurvey does not send responses in that format, so list each receiver, the fields it reads and who maintains it. Build a small receiver or middleware on your side that maps LimeSurvey data to the existing schema, and test it with sample submissions. Confirm the owner of each target before cut-over so no alert is lost.
Feed spreadsheets, CRM and analysis tools
Downstream spreadsheets, CRM feeds and statistical work often read a Typeform export on a schedule. Replace these feeds with exports from LimeSurvey, and check whether the response tables or the ExportR and ExportSTATAxml plugins give the columns and value labels your analysts expect. Those plugins help with analysis in R or Stata, but confirm the plugin versions work with your LimeSurvey release. Recheck column names and date formats in every consumer after the first real export.
The migration sequence from inventory to decommissioning Typeform
This sequence moves each Typeform survey to a LimeSurvey instance you control, with a checked overlap period, a dated cutover and verified archives before any Typeform account is closed. Each step produces a record you can hand to the data owner or an auditor.
Inventory forms, responses and uploaded files
Export a list of every Typeform form in the account, including drafts, closed forms and forms owned by former team members. For each one, record its question count, logic and hidden fields, languages, the number of responses, whether it accepts file uploads, and which webhooks or embeds point at it. The owner of each survey signs off the list. The output is a written inventory with one row per form, which becomes the scope for every later step.
Build and pilot one survey on LimeSurvey
Choose a low-risk survey and rebuild it on a LimeSurvey instance that runs on your own PHP and database server. Recreate the question types, conditional branching, and any second-language version, then test it on a small group of internal respondents on desktop and mobile. Check that answers export cleanly to CSV and that the data owner accepts the layout. The output is a pilot sign-off record that names the survey, the test group, the issues found and how each was fixed.
Rebuild the remaining surveys and translations
Work through the inventory in priority order, rebuilding each form as a LimeSurvey survey with the same question wording, branching and language versions. Where Typeform used conversational styling that LimeSurvey does not reproduce, record the difference and agree it with the owner. Mark each survey as ready only after a reviewer has compared it question by question against the Typeform original. The output is an updated inventory showing the status and reviewer for every survey.
Run both platforms in parallel
Publish the LimeSurvey version alongside the live Typeform form for a defined overlap period agreed with the owners, and keep the two links clearly separated in every channel. Monitor both for response counts, drop-off and support requests. Do not switch respondents to LimeSurvey until the owners agree that results match in both systems. The output is an overlap log with response counts from each platform and any discrepancies that were investigated.
Set a cutover date and run the final Typeform export
Agree a single cutover date per survey, close the Typeform form to new submissions, and update every embed, link, email and webhook to point to LimeSurvey. Wait for the Typeform Responses API lag of about 30 minutes before the final export, so submissions made just before closing are included. Use date filters to pull every response and uploaded file. The output is a cutover record listing the survey, the closing time, the export time and the final response count.
Verify archives with checksums
Store the JSON or CSV exports, uploaded files and the LimeSurvey response data in a location your organization controls. Generate checksums for each archive file, then reopen a sample of records in both formats and compare them with the live counts from the cutover record. Ask an independent reviewer to repeat the check, since a second pair of eyes catches mismatches the owner may miss. The output is an archive manifest with file names, checksums, record counts and the reviewer's signature.
Decide retention and decommission Typeform
Confirm the retention period for the archived responses with your data protection or records team, since legal and policy requirements vary by sector and jurisdiction. Once the archives are verified and retention is set, delete or downgrade the Typeform workspace according to your contract and record that action. Confirm with your vendor what happens to data after the account closes and whether any export is still available. The output is a decommissioning record with the retention decision, the Typeform closure date and the location of the verified archive.
What drives the cost and duration of a LimeSurvey migration
This table lists the factors that set the effort of moving Typeform surveys to self-hosted LimeSurvey, with the reason each one matters and how to keep it under control. Read it as a planning checklist: the biggest levers are the number of surveys to rebuild, how much branching they carry, and whether you run the server yourself or use a managed option. Community Edition is free to download, so most of the budget goes to rebuilding, cutover and ongoing administration.
| Driver | Why it changes effort or cost | How to keep it down |
|---|---|---|
| Number of surveys and forms | Each Typeform form is rebuilt by hand in LimeSurvey, so effort grows with the count of active surveys. | Retire inactive forms before the move and consolidate near-duplicate surveys into one template. |
| Branching and conditional logic | Typeform logic must be re-expressed as LimeSurvey conditions and relevance equations, and complex paths need testing. | Map logic in a spreadsheet first and simplify routes that no longer match current research questions. |
| Number of languages | Each language needs its own translated question text, answer options and testing, and translation review is a separate task. | Limit launch languages to those with real respondent demand and reuse vetted translations. |
| Response history volume | Large exports to CSV or JSON take time to validate, and historical data may need import mapping to new question codes. | Archive older responses as files in a defined format and import only the years that reports need. |
| File uploads | Uploaded files are stored on the server, so storage size, retention and access rules must be planned before cutover. | Download and classify files first, then decide which to keep, move to controlled storage or delete under policy. |
| Integrations and webhooks | Typeform connections to other tools must be rebuilt against LimeSurvey's export, API or plugin options. | Inventory every connected tool and remove those that no longer have an owner. |
| Hosting choice | Self-hosting means server, backup, TLS and monitoring work, while LimeSurvey Cloud moves that work to a subscription with response limits by tier. | Compare the Cloud tiers on the LimeSurvey pricing page against your expected response volume before choosing. |
| PHP and database administration | LimeSurvey needs PHP 8.1.29 or later with mbstring and PDO, plus a supported database, and each upgrade needs testing. | Confirm the stack with your team, document the versions and schedule updates as a recurring task. |
| One-time versus recurring costs | One-time costs are rebuild, cutover and testing. Recurring costs are hosting, administration, backups and upgrades, and any support retainer. | Ask any implementation partner for a fixed scope that separates these two cost groups in the written quote. |
What usually goes wrong in a Typeform to LimeSurvey move
Most failed survey migrations fail at the edges: the last submissions before cutover, logic that looked right in the builder but behaves differently in production, and a server stack that was never planned for the long term. The cards below cover the risks that tend to surface after launch, each with a check to run before you switch respondents over.
Missed responses at cutover
Typeform's Responses API can omit submissions from roughly the last 30 minutes, so a single export taken at the moment you switch links can silently drop respondents who finished just before. Plan a cutover window, keep the Typeform form open and collecting until the export has run, then run a second export filtered by submission date to pick up the late arrivals. Reconcile the response counts in both systems before you close the old form.
Branching errors that go unnoticed
Typeform logic jumps, hidden fields and calculated variables rarely map one to one onto LimeSurvey conditions, relevance equations and assessment rules. A branch that was rebuilt incorrectly will still produce responses, so the error shows up only in the data months later. Walk every path through the survey with test responses, including the rare ones, and compare the question sequence each path reaches in both versions before launch.
Multilingual versions drifting apart
LimeSurvey stores each language of a survey as its own set of text, so an edit to the English wording does not reach the German or French version. Over time the translations describe a different question, and answers from different languages can no longer be compared. Assign one owner for each language, freeze the source text before translation, and check every language version against the same branching test paths.
PHP or database versions out of range
LimeSurvey requires PHP 8.1.29 or later with mbstring and PDO drivers, plus a supported database such as MySQL 8.0, PostgreSQL 14, MariaDB 10.3.38 or MSSQL 2019 or later. A shared host or an older operating system package may not meet these, and the installer or upgrades then fail partway through. Confirm the PHP and database versions on the target server before you import anything, and record them in your runbook.
Running an end-of-support line
The 6.17.19 release of LimeSurvey Community Edition reached end of support on August 31, 2026, while 7.6.0 is the latest stable release. An instance installed from an older package or left unpatched keeps collecting personal data without security fixes. Pin the version you deploy to a current stable release, record the upgrade path in your change process, and schedule a review of the release page before each planned upgrade.
How the move differs for research teams, clinics and multilingual organizations
A small team with a handful of surveys usually cares most about rebuilding a few instruments accurately and getting clean exports for analysis. The scope is narrow: one or two administrators, a single database and a short cut-over period. The main work is re-creating question types and branching in LimeSurvey, which supports more than 30 question types, and planning exports for the statistics software the team already uses. Hosting is the largest change, because a PHP and database server now needs a named owner.
- Question and branching rebuild: Map each Typeform question to a LimeSurvey question type, then recreate logic as conditions. Test every path with sample responses.
- Export plan: Confirm the analysis tool can read LimeSurvey exports. Plugins such as ExportR and ExportSTATAxml are listed for R and Stata workflows.
- Hosting choice: Compare LimeSurvey Cloud, where Basic lists 1,000 responses per month and 1 admin user, with a self-hosted instance. Cloud checkout is in euros.
- Version currency: Install Community Edition 7.6.0, the latest stable release. The 6.17.19 line reached end of support on August 31, 2026.
- Archive first: Export Typeform responses as JSON or CSV before cancelling, since the Responses API may not include submissions from roughly the last 30 minutes.
Before the first survey goes live, confirm with the platform owner who will handle PHP updates, backups and upgrades.
A feedback program running in several languages needs translated instruments that stay in step with the master survey. LimeSurvey supports multilingual surveys in more than 80 languages, so the real questions are how translations are authored, reviewed and versioned. Licensing does not change with the number of languages in Community Edition. The cost driver is translation effort and the quality checks that follow it, so the migration plan should set those steps out early.
- Language set: List every language needed at the start. Confirm each is among the supported languages and test any right-to-left or special character requirements.
- Translation workflow: Decide who translates and who approves. Keep one source survey as the master and review translated text before publishing.
- Branching across languages: Test that conditions and piped answers behave the same in each version, since a translation error can break a skip pattern.
- Merged reporting: Confirm how responses from different language versions appear in exports and whether analysis needs a shared coding frame.
- Hosting region: If respondents are in the EU, check the hosting options. The LimeSurvey Cloud FAQ recommends Germany or Finland for EU customers.
Before the first multilingual launch, confirm the translation process, approval steps and export format with the program owner.
Teams in regulated settings need to show where responses are stored, who can see them and how changes are recorded. Self-hosting places the database, uploaded files and backups in an environment the organization selects, which is the main reason these teams move. DeployOpen prepares systems, controls and evidence for assessments, while independent auditors and certification bodies issue any audit report or certification. The scope therefore includes infrastructure, access and logging, not only the survey itself.
- Data location: Record where responses, uploads, database replicas and backups are stored. Residency often fails at the backup step, so confirm that location too.
- Access control: Define LimeSurvey roles and limit administrator accounts. Cloud tiers list between 1 and 10 admin users, so check how many your process needs.
- Supported stack: Pair PHP 8.1.29 or later, with the mbstring and PDO drivers, with MySQL 8.0, PostgreSQL 14, MariaDB 10.3.38 or MSSQL 2019 or later.
- Logging and evidence: Confirm which administrative actions and response views are logged, and whether those logs can be forwarded to your SIEM.
- Cloud exit terms: If using LimeSurvey Cloud, note that an expired subscription falls back to the Free package and keeps access to collected responses. Confirm contract terms and where data sits afterward.
Ask the security and compliance owners to review this list with the environment owner before any personal or patient data is collected.
Questions buyers ask before moving from Typeform to LimeSurvey
What does a move from Typeform to LimeSurvey cost?
LimeSurvey Community Edition is free to download and self-host under GPL v2.0, so the main costs are people and infrastructure, not licenses. The one-time work is rebuilding each survey in LimeSurvey, including question types, branching, hidden logic and translations, and exporting Typeform responses. The recurring costs are the server, backups, PHP and database upkeep, and staff time for upgrades. Costs rise with the number of surveys, languages and integrations. Ask any implementation partner for a fixed-scope quote that lists each survey, each language and the hosting model, and ask your own team how many hours it can release.
How long does a Typeform to LimeSurvey migration take?
The duration depends mainly on the number of surveys, the complexity of their logic, the number of languages and how much historical data must be preserved. A small set of simple research surveys can move quickly, while a large library with branching and multilingual versions takes longer because each survey must be rebuilt and tested. Plan for a parallel run where Typeform stays open until the last response is exported. Confirm any timeline in writing against a defined list of surveys before work starts.
What does our team need to provide for the migration?
Your team should supply an inventory of every active Typeform survey, its question list, logic rules, hidden fields, thank-you pages and the languages in use. You will also need access to a Typeform account with export rights, a named owner for response data and sign-off on what counts as a complete move. On the infrastructure side, you need a server or cloud account in the region where your data must stay, plus someone who can approve the PHP and database stack. Agree these inputs before the scope is fixed.
Can our own team migrate Typeform surveys to LimeSurvey without help?
A team with web administration skills can rebuild simple surveys in LimeSurvey and run a small test, because the survey editor is browser-based and well documented in the project's community resources. Teams that need to run server hardening, backups, scripted response exports, multilingual quality checks and ongoing upgrades often find that work competes with their existing duties. A realistic test is to rebuild one representative survey with its logic and one translation, then decide whether to continue in-house or engage a partner for a fixed scope.
How do we archive Typeform responses before the account changes?
Export responses while the Typeform account is still active, using the Responses API or the export options in the Typeform interface. The Responses API returns a form's responses as JSON on each GET request and can filter by submission date, but it may not include submissions from roughly the last 30 minutes, so schedule a final export after the cut-over and record the time of each pull. Keep the JSON or CSV files with checksums, a copy of each question's labels and any file downloads in a separate archive. Confirm the file endpoints and retention terms with Typeform's developer documentation before you delete anything.
Which PHP and database versions does LimeSurvey need?
LimeSurvey requires PHP 8.1.29 or later with the mbstring and PDO drivers. Supported databases are MySQL 8.0, PostgreSQL 14, MariaDB 10.3.38 or MSSQL 2019 or later. Check the current requirements in the project's GitHub repository before choosing versions, because minimums change between releases. For new installs, the community downloads page lists Community Edition 7.6.0 as the latest stable release, while the 6.17.19 line reached end of support on August 31, 2026, so plan the server on a supported branch from the start. Confirm the exact PHP extensions with your platform team during the design phase.
Should we choose LimeSurvey Cloud or self-host LimeSurvey?
Choose self-hosting when you need full control of the server, the database and the region where responses are stored, and you have staff to run patching and backups. LimeSurvey Cloud suits teams that prefer a vendor-run service; its regions include Germany, Finland, the UK, the USA, Canada and Australia, with Germany or Finland recommended for EU customers. Cloud plans are priced by responses and administrators, and when a subscription expires the account falls back to the Free package while keeping access to collected responses. Compare both options against your data residency rules and total staff effort, and confirm current terms on the LimeSurvey pricing page.
How DeployOpen scopes and runs a Typeform to LimeSurvey migration
DeployOpen plans and implements the move from Typeform to LimeSurvey inside your own infrastructure, from the PHP and database server to the surveys themselves. Engagements are fixed-scope, so the question inventory, multilingual requirements, export archive and hosting design are agreed in writing before any build work starts.
How we scope
- We inventory every active Typeform form, its question types, branching rules, hidden fields and language versions.
- We agree which surveys are rebuilt, which are retired and which historical responses must be archived before cut-over.
- The written scope names the target hosting location, such as an EU region or your own data center, and the database engine.
How we build
- We install LimeSurvey Community Edition on a PHP and database stack that meets the platform's documented requirements.
- We rebuild question types, conditional logic and multilingual versions, then test each survey end to end before launch.
- We script the export of Typeform responses to JSON or CSV and verify record counts against the source account.
How we hand over
- You receive documentation of the survey inventory, configuration, backup routine and the archive of prior Typeform responses.
- We walk your administrators through survey creation, user roles, exports and the update process for the LimeSurvey release line.
- Your team keeps the instance and data under its own control, with a record of every decision made during the migration.
How we support
- Ongoing support, upgrades and continuous testing are available as a retainer after handover.
- Retainers can cover platform updates, PHP and database maintenance, backup checks and changes to surveys over time.
- Compliance readiness evidence for the survey environment can be prepared, though independent auditors issue any assessment or certification.

