CRM migration
Field-level mapping, validation, and rollback between Variable Soft CRM and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Variable Soft CRM
Source
Twenty CRM
Destination
Compatibility
7 of 10
objects map 1:1 between Variable Soft CRM and Twenty CRM.
Complexity
CModerate
Timeline
2-4 weeks
Overview
Migrating from Variable Soft CRM to Twenty CRM is a file-based migration with a schema-discovery phase upfront. VSCRM publishes no public API and its internal object schema is not documented externally, so we work from exported CSV or database dumps provided by the customer's VSCRM team. We parse the export to discover field names, data types, and relationships, then recreate those as Twenty custom fields and objects before writing records. VSCRM's separate Lead and Contact objects consolidate into Twenty's unified People object; VSCRM's Company object maps to Twenty's Company object; Deals map to Opportunities. Pipeline stages and custom field definitions require manual translation based on export content. VSCRM workflow automations are server-side only and cannot export; we document every active automation and deliver a rebuild checklist. The migration uses Twenty's REST and GraphQL APIs for data writes, with parent-record resolution ensuring the Company-People and Opportunity-People relationships hold after import.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Variable Soft CRM object lands in Twenty CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Variable Soft CRM
Lead
Twenty CRM
Person
1:manyVSCRM's separate Lead object (distinct from Contact) maps to Twenty's unified Person object. We flag any VSCRM Leads that share an email address with an existing VSCRM Contact during deduplication. The original VSCRM Lead source, status, and owner assignment transfer to custom fields on the Twenty Person record. If VSCRM Lead records represent unqualified prospects only, all Leads land in Twenty as Person records with no associated Company link until manually connected.
Variable Soft CRM
Contact
Twenty CRM
Person
1:1VSCRM Contact records map directly to Twenty Person records. The VSCRM contact's primary company link resolves to a Twenty Company lookup, and lifecycle stage assignments from VSCRM transfer to custom fields on the Person. We run a deduplication pass comparing email addresses across the combined Lead and Contact export before writing to Twenty.
Variable Soft CRM
Company
Twenty CRM
Company
1:1VSCRM Company records map to Twenty Company records. Company domain, address, and industry fields translate to their Twenty equivalents. The Company record must be written before any Person import so that the Person's companyId lookup is satisfied at insert time. VSCRM company records serve as containers for associated Contacts and Deals; we preserve this hierarchy through the Company-Person and Company-Opportunity relationships during import.
Variable Soft CRM
Deal
Twenty CRM
Opportunity
1:1VSCRM Deals map to Twenty Opportunities. The VSCRM deal value maps to Opportunity amount, the pipeline stage maps to Opportunity stageName, expected close date maps to Opportunity closeDate, and owner assignment resolves to a Twenty User by email match. We validate that each Opportunity's linked Person and Company exist in Twenty before writing the Opportunity record.
Variable Soft CRM
Pipeline
Twenty CRM
Pipeline (Opportunity stage configuration)
lossyVSCRM allows multiple named pipelines with custom stages. We extract pipeline names and stage labels from the Deal export and recreate them as Twenty Pipeline stages. Each VSCRM pipeline becomes a distinct stage sequence in Twenty. Stages with no associated Deals are recreated as empty stage containers. The customer confirms stage order and probability values during scoping.
Variable Soft CRM
Activity: Call, Email, Meeting, Task
Twenty CRM
Activity (TimelineEntry)
1:1VSCRM Activities linked to Contacts and Deals map to Twenty Activity records. Activity type (call, email, meeting, task), timestamp, linked entity (Person or Company), and content migrate directly. Activity assignment resolves to a Twenty User by email. Activities without a resolvable linked entity are imported as standalone Activity records and flagged for manual association during customer review.
Variable Soft CRM
Custom Fields
Twenty CRM
Custom Fields
lossyVSCRM custom fields on Contacts, Companies, and Deals are discovered from the export file header row and recreated in Twenty via Settings → Data Model before any record is written. Field type mapping is inferred from VSCRM export data: text strings become Twenty text fields, numbers become number fields, dates become date fields, and multi-select values become select fields. We note any VSCRM custom field that contains data incompatible with its inferred type and flag it for the customer's admin to confirm type selection.
Variable Soft CRM
Custom Objects
Twenty CRM
Custom Objects
1:1If VSCRM export includes custom object records beyond standard Leads, Contacts, Companies, and Deals, we create equivalent custom objects in Twenty before import. Twenty's custom object model supports many-to-one, one-to-many, and many-to-many relations, including relations with attributes on the relationship itself. We configure the custom object schema, its fields, and all relationships before any custom object data is written.
Variable Soft CRM
Workflow Automations
Twenty CRM
Not Migrated
1:1VSCRM workflow automations are stored server-side with no export mechanism. Any email triggers, field-update rules, or assignment automations configured in VSCRM do not carry over. We document every active automation identified during the discovery call and deliver a written rebuild checklist mapping each automation's trigger, conditions, and actions to its recommended equivalent in Twenty's SDK or via a Zapier workflow. Rebuild is the customer's responsibility post-migration.
Variable Soft CRM
Owner/User
Twenty CRM
User
1:1VSCRM Owner records map to Twenty User records. We resolve owners by email address across the export. Any VSCRM Owner without a matching Twenty User is placed in a reconciliation queue for the customer's admin to provision the corresponding Twenty User before migration resumes. Inactive VSCRM owners map to inactive Twenty users.
| Variable Soft CRM | Twenty CRM | Compatibility | |
|---|---|---|---|
| Lead | Person1:many | Fully supported | |
| Contact | Person1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline | Pipeline (Opportunity stage configuration)lossy | Fully supported | |
| Activity: Call, Email, Meeting, Task | Activity (TimelineEntry)1:1 | Fully supported | |
| Custom Fields | Custom Fieldslossy | Mapping required | |
| Custom Objects | Custom Objects1:1 | Mapping required | |
| Workflow Automations | Not Migrated1:1 | Not supported | |
| Owner/User | User1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Variable Soft CRM gotchas
No public REST API documentation exists
Workflow automations are not portable
Data model not externally documented
Free tier data portability is unclear
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
Export facilitation and data discovery
We confirm VSCRM export access by testing the export tool in the customer's account. If the export is not self-serve (free tier or support-ticket gated), we draft a support request template for the customer to submit to VSCRM. We receive the exported files (CSV or database dump) and perform a discovery pass: record counts per object, field header inspection, data type sampling, relationship identification (linked entity IDs), and duplicate estimation. We surface any export gaps—omitted fields, truncated records, or missing relationships—for the customer to address before migration design begins.
Schema discovery and Twenty workspace setup
From the VSCRM export header row, we compile the list of discovered fields across Leads, Contacts, Companies, Deals, and Activities. We infer data types from content sampling and map each field to a Twenty field type (text, number, date, select, relation, link, email, phone). We create all custom fields via Twenty's Settings → Data Model before any record import. If VSCRM exports contain custom objects, we create the equivalent custom objects and relationships in Twenty at this stage. The Twenty workspace is configured in the customer's target environment (cloud or self-hosted) and we validate that API access is functioning.
Mapping design and deduplication strategy
We design the mapping document: VSCRM Lead and Contact objects both map to Twenty Person; VSCRM Company maps to Twenty Company; VSCRM Deal maps to Twenty Opportunity. We apply deduplication rules—email-based dedupe for Person records, domain-based dedupe for Company records. For VSCRM Leads that share an email with a VSCRM Contact, we apply a customer-confirmed rule (keep both as separate Person records, or merge into one). Pipeline stage labels from the Deal export map to Twenty Opportunity stageName values. Owner email addresses map to Twenty User lookups. The mapping document is reviewed and signed off by the customer's admin before test migration begins.
Test migration into Twenty target environment
We run a full test migration into the customer's Twenty target environment using production-like data volume. The customer reconciles record counts (Persons in, Companies in, Opportunities in, Activities in), spot-checks 20-30 records against the VSCRM source, and confirms field-level accuracy. Any mapping corrections, missed custom fields, or relationship gaps surface here and are resolved before production migration. Owner reconciliation also completes at this stage: any VSCRM Owner without a matching Twenty User is flagged for the admin to provision.
Production migration in dependency order
We run production migration in dependency order: Companies first (standalone, no dependencies), then Persons (with Company lookups resolved), then Opportunities (with Person and Company lookups resolved), then Activities (with Person and Opportunity lookups resolved), then custom object records last. Each phase emits a row-count reconciliation report before the next phase begins. We use Twenty's REST and GraphQL APIs for writes with batch chunking and error retry logic. Any records that fail import are logged with error reason, corrected, and retried before cutover.
Cutover, validation, and automation handoff
We freeze VSCRM writes during the cutover window, run a final delta migration for any records modified during migration, then enable Twenty as the system of record. We deliver the automation rebuild checklist documenting every VSCRM workflow rule and recommending a Twenty SDK or Zapier approach for each. We conduct a post-migration validation pass comparing record counts and sampling record accuracy in Twenty against the VSCRM source. We provide a one-week hypercare window for reconciliation issues. Workflow rebuild, admin training, and integration configuration are outside standard migration scope.
Platform deep dives
Variable Soft CRM
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 6 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Variable Soft CRM and Twenty CRM.
Object compatibility
6 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Variable Soft CRM: Not publicly documented — typical SaaS limits assumed and confirmed during scoping..
Data volume sensitivity
Variable Soft CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Variable Soft CRM to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Variable Soft CRM to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Variable Soft CRM
Other ways to arrive at Twenty CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.