CRM migration
Field-level mapping, validation, and rollback between Wyvern Magic and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Wyvern Magic
Source
Twenty CRM
Destination
Compatibility
7 of 10
objects map 1:1 between Wyvern Magic and Twenty CRM.
Complexity
CModerate
Timeline
2-4 weeks
Overview
Moving from Wyvern Magic to Twenty CRM is a shift from a proprietary, UK-based cloud CRM to an open-source, AGPL-3.0 alternative backed by Y Combinator (S23) with over 44,000 GitHub stars. Wyvern Magic consolidates contacts, companies, deals, and ad booking into a single platform; Twenty structures its data around People, Companies, and Opportunities with a modern TypeScript codebase that teams can self-host or run as a managed cloud service. We handle the dependency order of record migration—Companies first so that Contact associations resolve at insert time, then Deals mapped to Opportunities with pipeline stage probabilities preserved from Wyvern Magic's tenant configuration. Activities (calls, emails, notes, tasks) move as linked records in Twenty's activity timeline, and custom properties migrate as typed fields in Twenty's metadata schema. We do not migrate workflows, automations, ad booking rules, or reporting dashboards; these require rebuild in Twenty's native configuration tools.
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 Wyvern Magic 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.
Wyvern Magic
Contacts
Twenty CRM
Person
1:1Wyvern Magic Contacts migrate to Twenty Person records. Standard fields (name, email, phone, address) map directly. Custom contact properties are inspected during scoping, typed (text, number, date, picklist), and created in Twenty's metadata schema via the /metadata API before import. The original Wyvern Magic contact ID is preserved in a custom field for audit trail. Owner assignments map from Wyvern Magic Owner email to the Twenty workspaceMember resolved during user provisioning.
Wyvern Magic
Companies
Twenty CRM
Company
1:1Wyvern Magic Company records map to Twenty Company. Domain, industry, employee count, and any custom company fields migrate as typed extension fields. We create the Company record before importing any Person records that reference it so that the Company lookup relationship is satisfied at insert time. Address fields on Companies map to Twenty's address compound field.
Wyvern Magic
Deals
Twenty CRM
Opportunities
1:1Wyvern Magic Deals map to Twenty Opportunities. The pipeline and stage configuration is extracted from Wyvern Magic first (stages, probabilities, order), then replicated in Twenty's pipeline settings before Deal records are imported. Closed-won and closed-lost reasons from Wyvern Magic custom fields become Opportunity custom fields in Twenty. Deal amount and close date map to standard Opportunity fields.
Wyvern Magic
Pipeline and Stages
Twenty CRM
Pipeline and Stages
lossyWyvern Magic pipeline definitions (stage names, probabilities, stage order) are extracted separately from Deal records. We create the target pipeline in Twenty first, then map Deal records into the correct stage order. Stage probabilities round to integers as Twenty requires. If Wyvern Magic has multiple pipelines, each becomes a separate Pipeline in Twenty.
Wyvern Magic
Leads
Twenty CRM
Person (unsqualified)
1:1Wyvern Magic Lead records map to Twenty Person records. Lead source, status, and rating fields migrate as custom extension fields on the Person record. Custom lead scoring fields from Wyvern Magic transfer to a custom numeric field in Twenty. The migration does not apply any qualification logic; the customer's Twenty admin reviews the imported Persons and applies Opportunity association based on their own qualification criteria.
Wyvern Magic
Activities (Emails, Calls, Notes, Tasks)
Twenty CRM
Task and Event
1:1Wyvern Magic engagement records (email, call, note, task) migrate as linked Task and Event records in Twenty's activity timeline. Each activity is associated with the parent Person or Opportunity via Twenty's custom schema. Activity timestamps are preserved as ActivityDate. Email body content migrates as Task description. Call duration and disposition migrate as custom fields on the Task record.
Wyvern Magic
Custom Objects
Twenty CRM
Custom Objects
1:1Wyvern Magic custom object schemas are tenant-specific and vary by configuration. We inspect the schema at scoping, generate a custom field map with type inference, and pre-create the equivalent custom object in Twenty via the /metadata API. Any custom object with required fields must have those fields populated before migration; we flag records with missing required fields for customer review before the import phase runs.
Wyvern Magic
Custom Properties (on standard objects)
Twenty CRM
Custom Fields (on standard objects)
lossyCustom fields on Contacts, Companies, Deals, and Leads in Wyvern Magic migrate as extension fields in Twenty. We use a type-inference step to assign the correct data type (text, number, date, picklist) in Twenty's metadata schema. Multi-select picklists in Wyvern Magic map to multi-select picklists in Twenty where supported, or to tag-based fields.
Wyvern Magic
Users / Owners
Twenty CRM
Workspace Members
1:1Wyvern Magic Owner records map to Twenty workspaceMember records. We resolve owners by email match. Active users in Wyvern Magic become active workspaceMembers in Twenty; inactive users become inactive. Any Wyvern Magic Owner without a matching email in the destination requires manual provisioning by the Twenty admin before record migration resumes.
Wyvern Magic
Tags / Labels
Twenty CRM
Tags
lossyWyvern Magic tags applied to Contacts, Deals, and Companies migrate as tag associations in Twenty. Multi-value tag arrays are flattened and upserted as tag records, then linked to the parent Person, Company, or Opportunity via the tag association object. Tag names are preserved exactly to maintain segmentation logic.
| Wyvern Magic | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contacts | Person1:1 | Fully supported | |
| Companies | Company1:1 | Fully supported | |
| Deals | Opportunities1:1 | Mapping required | |
| Pipeline and Stages | Pipeline and Stageslossy | Fully supported | |
| Leads | Person (unsqualified)1:1 | Mapping required | |
| Activities (Emails, Calls, Notes, Tasks) | Task and Event1:1 | Fully supported | |
| Custom Objects | Custom Objects1:1 | Mapping required | |
| Custom Properties (on standard objects) | Custom Fields (on standard objects)lossy | Fully supported | |
| Users / Owners | Workspace Members1:1 | Fully supported | |
| Tags / Labels | Tagslossy | 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.
Wyvern Magic gotchas
Hierarchical calendar approval workflows don't map to flat calendars in modern CRMs
Sponsorship and event objects don't have standard equivalents in most CRMs
Email metrics history is denormalized into contact records
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
Discovery and scoping
We audit the Wyvern Magic tenant across record counts (Contacts, Companies, Deals, Leads, Activities), custom property definitions, pipeline configurations, owner list, and attachment volume. We also identify the target Twenty deployment model (self-hosted or managed cloud) and verify the migration user's permissions to create custom objects via the /metadata API. The discovery output is a written migration scope document with record counts, a preliminary field map, and a Twenty deployment readiness checklist.
Twenty schema provisioning
We pre-create the Twenty destination schema before any record migration begins. This includes standard objects (Person, Company, Opportunity) with standard fields confirmed, custom objects and custom fields created via the /metadata API, pipeline and stage definitions configured to match Wyvern Magic, and tag definitions populated. Schema is validated in a staging workspace before production migration runs.
Data extraction and cleaning
We extract data from Wyvern Magic via the platform's export or API endpoints, starting with the dependency-free records (Companies, then Persons without company associations, then Leads, then Deals, then Activities). During extraction, we apply a deduplication pass on Contacts and Companies using email and domain as dedupe keys, flag records with blank required fields for customer review, and standardize free-text fields that are likely to cause format issues in Twenty (city names, phone number formats, date formats).
Owner and user provisioning
We extract every distinct Wyvern Magic Owner referenced on any record and match by email against the Twenty workspaceMember list. Owners without a matching workspaceMember are listed in a reconciliation report for the customer's Twenty admin to provision before record import continues. Owner references on records are updated to point to the correct workspaceMember ID at transform time.
Production migration in dependency order
We run production migration in the correct dependency order: Companies first, then Persons (with CompanyId resolved), then Leads, then Opportunities (with PersonId and CompanyId resolved and pipeline stage assigned), then Activity records (Tasks and Events linked to the correct Person and Opportunity). Each phase emits a row-count reconciliation report before the next phase begins. Attachments are handled separately based on the customer's chosen re-upload or API approach.
Cutover, validation, and rebuild handoff
We freeze Wyvern Magic writes during cutover, run a final delta migration of any records modified during the migration window, then mark Twenty as the system of record. We deliver a written inventory of every Wyvern Magic workflow, automation, and ad booking rule requiring rebuild in Twenty, along with a pipeline and stage mapping reference document. We support a one-week hypercare window for reconciliation issues. We do not rebuild automations in Twenty's native tools; that work is handled by the customer's admin or a separate implementation engagement.
Platform deep dives
Wyvern Magic
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 4 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 Wyvern Magic and Twenty CRM.
Object compatibility
4 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
Wyvern Magic: Not publicly documented.
Data volume sensitivity
Wyvern Magic 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 Wyvern Magic to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Wyvern Magic 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 Wyvern Magic
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.