Migration from Other Platforms
This guide helps you migrate surveys and data from other survey platforms to Cimigo Collect Platform.
🎯 Supported Platforms
We provide migration tools and guides for these popular platforms:
- SurveyMonkey - Automated migration available
- Typeform - Direct import with formatting preservation
- Google Forms - Question and response migration
- Qualtrics - Enterprise migration with professional services
- Mailchimp Surveys - Email campaign survey migration
- Microsoft Forms - Office 365 integration migration
- Custom/Generic - CSV/JSON import capabilities
📋 Pre-Migration Checklist
Before starting your migration, ensure you have:
- Export access to your current platform
- Admin permissions on both platforms
- Survey data backup (responses, settings, themes)
- List of integrations that need to be recreated
- Timeline planned for migration and testing
- Team training scheduled for new platform
🔄 SurveyMonkey Migration
SurveyMonkey is one of our most common migration sources. We provide automated tools to streamline the process.
Step 1: Export from SurveyMonkey
-
Export Survey Structure
# Login to SurveyMonkey and go to each survey
# Navigate to: Design Survey > Export > Export Survey Design
# Choose format: CSV or Summary (PDF) -
Export Response Data
# For each survey: Analyze Results > Export All
# Choose format: Excel (.xlsx) - includes all response data
# Options: Include open-ended responses, metadata -
Export Survey Settings
- Survey logic and branching rules
- Custom themes and branding
- Collector settings and permissions
Step 2: Use Our Migration Tool
// Install our migration CLI tool
npm install -g @cimigo/migration-tool
// Authenticate with both platforms
cimigo-migrate auth --source surveymonkey --target cimigo
// Run migration
cimigo-migrate import \
--source surveymonkey \
--survey-file "./exported-survey.csv" \
--responses-file "./exported-responses.xlsx" \
--preserve-ids \
--dry-run
// Review the migration plan, then execute
cimigo-migrate import --execute
Step 3: Verify and Adjust
After migration, verify:
- All questions imported correctly
- Question types mapped appropriately
- Logic and branching preserved
- Response data integrity maintained
- Custom themes applied
SurveyMonkey Question Type Mapping
| SurveyMonkey Type | Cimigo Type | Notes |
|---|---|---|
| Multiple Choice (Single) | single_choice | Direct mapping |
| Multiple Choice (Multiple) | multiple_choice | Direct mapping |
| Text Box | text | Short text input |
| Comment Box | textarea | Long text input |
| Rating Scale | rating | Star or numeric rating |
| Likert Scale | likert | Agreement/satisfaction scale |
| Matrix/Rating Scale | matrix | Multiple questions in grid |
| Date/Time | date | Date picker |
| File Upload | file_upload | Document/image upload |
📝 Typeform Migration
Typeform's conversational style translates well to our platform with some adjustments.
Step 1: Export from Typeform
# Using Typeform API (recommended)
curl -X GET "https://api.typeform.com/forms/{form_id}" \
-H "Authorization: Bearer YOUR_TOKEN" \
> typeform-export.json
# Or manual export from dashboard
# Go to: Connect > Webhooks > Export responses
Step 2: Convert Typeform Structure
// Use our Typeform converter
const { TypeformConverter } = require('@cimigo/migration-tool');
const converter = new TypeformConverter();
const cimigoSurvey = await converter.convert({
sourceFile: './typeform-export.json',
options: {
preserveLogic: true,
convertTheme: true,
mapQuestionTypes: true
}
});
console.log('Converted survey:', cimigoSurvey);
Step 3: Handle Typeform-Specific Features
Logic Jumps: Typeform's jump logic converts to our conditional logic:
// Typeform logic jump
{
"type": "jump",
"condition": "answer_equals",
"value": "yes",
"target": "question_5"
}
// Converts to Cimigo conditional logic
{
"conditions": [{
"question_id": "q1",
"operator": "equals",
"value": "yes",
"action": "show",
"target_question": "q5"
}]
}
Welcome/Thank You Screens: Convert to survey settings:
{
"welcome_screen": {
"title": "Welcome to our survey",
"description": "This will take about 5 minutes"
},
"thank_you_screen": {
"title": "Thank you!",
"description": "Your responses have been recorded"
}
}
📊 Google Forms Migration
Google Forms migration focuses on question structure and basic response data.
Step 1: Export Google Forms Data
# Method 1: Google Takeout (recommended)
# Go to: takeout.google.com
# Select: Drive > Include Google Forms
# Download and extract
# Method 2: Manual CSV export
# Open form > Responses tab > Create Spreadsheet
# Download as CSV from Google Sheets
Step 2: Convert Google Forms Questions
// Google Forms question mapping
const questionTypeMap = {
'MULTIPLE_CHOICE': 'single_choice',
'CHECKBOX': 'multiple_choice',
'SHORT_ANSWER': 'text',
'PARAGRAPH': 'textarea',
'MULTIPLE_CHOICE_GRID': 'matrix',
'CHECKBOX_GRID': 'matrix',
'LINEAR_SCALE': 'rating',
'DATE': 'date',
'TIME': 'time',
'FILE_UPLOAD': 'file_upload'
};
// Convert form structure
function convertGoogleForm(formData) {
return {
title: formData.title,
description: formData.description,
questions: formData.items.map(item => ({
type: questionTypeMap[item.questionItem.question.choiceQuestion?.type] || 'text',
title: item.title,
required: item.questionItem.question.required,
options: item.questionItem.question.choiceQuestion?.options?.map(opt => opt.value)
}))
};
}
Step 3: Import Response Data
// Import CSV response data
const responses = await csvParser(responseFile);
const convertedResponses = responses.map(response => ({
submitted_at: new Date(response.Timestamp),
answers: Object.keys(response)
.filter(key => key !== 'Timestamp')
.map((question, index) => ({
question_id: `q${index + 1}`,
value: response[question]
}))
}));
🏢 Qualtrics Migration
Qualtrics enterprise migrations require careful planning due to advanced features.
Step 1: Qualtrics Export Process
# Using Qualtrics API (enterprise accounts)
curl -X POST "https://survey-platform.qualtrics.com/API/v3/surveys/{SurveyID}/export-responses" \
-H "X-API-TOKEN: YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"format": "json",
"compress": false,
"includeDisplayOrder": true
}'
Step 2: Advanced Feature Mapping
Blocks and Flow: Qualtrics blocks map to our sections:
// Qualtrics block structure
{
"SurveyElements": [
{
"Element": "BL",
"PrimaryAttribute": "Survey Blocks",
"SecondaryAttribute": "Default Question Block",
"Payload": {
"BlockElements": [
{"Type": "Question", "QuestionID": "QID1"}
]
}
}
]
}
// Converts to Cimigo sections
{
"sections": [
{
"id": "section_1",
"title": "Default Question Block",
"questions": ["q1"]
}
]
}
Advanced Logic: Qualtrics display/skip logic conversion:
// Qualtrics display logic
{
"DisplayLogic": {
"0": {
"LogicType": "Question",
"QuestionID": "QID1",
"QuestionIsInLoop": "no",
"ChoiceLocator": "q://QID1/SelectableChoice/1",
"Operator": "Selected"
}
}
}
// Converts to Cimigo conditional logic
{
"conditions": [{
"question_id": "q1",
"operator": "contains",
"value": "option_1",
"action": "show"
}]
}
Step 3: Professional Migration Services
For complex Qualtrics migrations, we offer professional services:
- Migration Assessment - Analyze your current setup
- Custom Logic Conversion - Advanced branching and piping
- Data Validation - Ensure complete data integrity
- Training and Handoff - Team training on new platform
- Ongoing Support - Post-migration assistance
Contact our enterprise team: enterprise@cimigo.com
📧 Mailchimp Surveys Migration
Migrate email campaign surveys from Mailchimp to standalone surveys.
Step 1: Export Mailchimp Survey Data
// Using Mailchimp API
const mailchimp = require('@mailchimp/mailchimp_marketing');
mailchimp.setConfig({
apiKey: 'your-api-key',
server: 'us1' // your server prefix
});
// Get survey data
const survey = await mailchimp.reports.getSurveyReport(campaignId);
const responses = await mailchimp.reports.getSurveyResponses(campaignId);
Step 2: Convert to Standalone Survey
// Convert Mailchimp poll to Cimigo survey
function convertMailchimpPoll(poll) {
return {
title: poll.title,
questions: [{
type: 'single_choice',
title: poll.question,
options: poll.options.map(opt => opt.text),
required: true
}]
};
}
🏢 Microsoft Forms Migration
Migrate from Microsoft Forms (Office 365) to our platform.
Step 1: Export Microsoft Forms
# Manual export from forms.office.com
# Go to form > Responses > Open in Excel
# Download Excel file with responses
# Or use Microsoft Graph API
curl -X GET "https://graph.microsoft.com/v1.0/me/drive/items/{form-id}" \
-H "Authorization: Bearer {access-token}"
Step 2: Question Type Conversion
const msFormsMapping = {
'choice': 'single_choice',
'multipleChoice': 'multiple_choice',
'text': 'text',
'longText': 'textarea',
'date': 'date',
'time': 'time',
'rating': 'rating',
'likert': 'likert',
'ranking': 'matrix',
'fileUpload': 'file_upload'
};
🔧 Custom Migration
For platforms not directly supported, use our generic import tools.
CSV Import Format
question_id,question_type,question_title,question_required,question_options,logic_conditions
q1,single_choice,"How satisfied are you?",true,"Very Satisfied|Satisfied|Neutral|Dissatisfied",""
q2,text,"Any additional comments?",false,"","q1:equals:Dissatisfied"
q3,rating,"Rate our service",true,"1-5","q1:not_equals:Very Satisfied"
JSON Import Schema
{
"survey": {
"title": "Customer Satisfaction Survey",
"description": "Help us improve our service",
"questions": [
{
"id": "q1",
"type": "single_choice",
"title": "How satisfied are you with our service?",
"required": true,
"options": [
{"id": "opt1", "text": "Very Satisfied"},
{"id": "opt2", "text": "Satisfied"},
{"id": "opt3", "text": "Neutral"},
{"id": "opt4", "text": "Dissatisfied"}
]
}
],
"logic": [
{
"question_id": "q2",
"conditions": [{
"source_question": "q1",
"operator": "equals",
"value": "opt4",
"action": "show"
}]
}
]
},
"responses": [
{
"id": "resp1",
"submitted_at": "2024-01-15T10:30:00Z",
"answers": [
{"question_id": "q1", "value": "opt2"},
{"question_id": "q2", "value": "Great service overall!"}
]
}
]
}
API Import Process
// Import survey structure
const surveyResponse = await fetch('/api/v1/surveys/import', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-token',
'Content-Type': 'application/json'
},
body: JSON.stringify({
source: 'custom',
format: 'json',
data: surveyData,
options: {
preserve_ids: true,
validate_logic: true,
import_responses: true
}
})
});
// Import response data (if separate)
const responsesResponse = await fetch('/api/v1/surveys/{survey-id}/responses/import', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-token',
'Content-Type': 'application/json'
},
body: JSON.stringify({
format: 'json',
responses: responseData
})
});
✅ Post-Migration Validation
After completing your migration, validate the results:
1. Survey Structure Validation
// Verify survey structure
const validation = await fetch(`/api/v1/surveys/${surveyId}/validate`);
const results = await validation.json();
console.log('Validation results:', results);
// Check for:
// - All questions imported correctly
// - Logic conditions working
// - Required fields preserved
// - Question types mapped properly
2. Response Data Integrity
// Verify response data
const originalCount = originalResponses.length;
const importedCount = await fetch(`/api/v1/surveys/${surveyId}/responses/count`);
console.log(`Original responses: ${originalCount}`);
console.log(`Imported responses: ${importedCount}`);
// Spot check random responses
const sampleResponses = await fetch(`/api/v1/surveys/${surveyId}/responses?limit=10&random=true`);
3. Functionality Testing
- Preview survey - Test all questions render correctly
- Logic testing - Verify conditional logic works
- Mobile testing - Check responsive behavior
- Theme validation - Confirm branding applied correctly
- Integration testing - Test webhooks and API endpoints
🆘 Migration Support
Need help with your migration? We're here to assist:
Self-Service Resources
- Migration Video Guides - Step-by-step walkthroughs (coming soon)
- Community Forum - Get help from other users
- GitHub Issues - Report migration bugs
Professional Services
- Migration Assessment - Free evaluation of your migration needs
- White-Glove Migration - We handle the entire process for you
- Custom Development - Build specific migration tools for your platform
- Training and Support - Team training on the new platform
Contact Information
- Email:
migration-support@cimigo.com - Chat: Available in your dashboard (bottom-right corner)
- Phone: Enterprise customers receive dedicated phone support
Ready to migrate? Contact our migration support team at migration-support@cimigo.com to get a customized migration plan for your specific needs.