CRM migration

Migrate from Wyvern Magic to Twenty CRM

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 logo

Wyvern Magic

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

70%

7 of 10

objects map 1:1 between Wyvern Magic and Twenty CRM.

Complexity

CModerate

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Wyvern Magic logo

Wyvern Magic

What's pushing teams away

  • Niche fit — Wyvern Magic is built around marketing-led publishing/events workflows; teams in horizontal SaaS sales find features overweight in some areas and underweight in others.
  • Limited public API documentation and developer community make integration with modern HRIS/marketing stacks slow.
  • Marketing footprint is small; reviewers cite limited online reference material and procurement-readiness documentation.
  • Reporting depth, while described as comprehensive, is structured around the publishing/sponsorship use case rather than horizontal SaaS metrics.
  • Modernization pace is slower than category leaders; UI/UX trails newer CRMs.

Choosing

Twenty CRM logo

Twenty CRM

What's pulling them in

  • Top open-source CRM on GitHub with 40.6K stars, giving teams full source code access and infrastructure ownership without per-feature licensing surprises.
  • Free self-hosting under AGPL-3.0 means unlimited users and custom objects for the cost of cloud infrastructure alone, typically $20–100/month.
  • Pricing page explicitly mocks competitors for charging add-on fees for API access, webhooks, and workflows — transparency that resonates with RevOps teams burned by Salesforce.
  • Unlimited custom objects and fields with no price impact, letting teams shape the data model to their business rather than forcing business into rigid schemas.
  • Modern TypeScript/React/PostgreSQL stack means developer-led teams can extend, self-host, or integrate without fighting legacy architecture.

Object mapping

How Wyvern Magic objects map to Twenty CRM

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

maps to

Twenty CRM

Person

1:1
Fully supported

Wyvern 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

maps to

Twenty CRM

Company

1:1
Fully supported

Wyvern 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

maps to

Twenty CRM

Opportunities

1:1
Mapping required

Wyvern 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

maps to

Twenty CRM

Pipeline and Stages

lossy
Fully supported

Wyvern 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

maps to

Twenty CRM

Person (unsqualified)

1:1
Mapping required

Wyvern 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)

maps to

Twenty CRM

Task and Event

1:1
Fully supported

Wyvern 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

maps to

Twenty CRM

Custom Objects

1:1
Mapping required

Wyvern 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)

maps to

Twenty CRM

Custom Fields (on standard objects)

lossy
Fully supported

Custom 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

maps to

Twenty CRM

Workspace Members

1:1
Fully supported

Wyvern 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

maps to

Twenty CRM

Tags

lossy
Fully supported

Wyvern 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.

Gotchas + challenges

What specifically takes care here

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 logo

Wyvern Magic gotchas

Medium

Hierarchical calendar approval workflows don't map to flat calendars in modern CRMs

Medium

Sponsorship and event objects don't have standard equivalents in most CRMs

Low

Email metrics history is denormalized into contact records

Twenty CRM logo

Twenty CRM gotchas

High

Import order is enforced and critical

High

Export limited to 20,000 records and visible columns only

Medium

Soft-deleted records count toward uniqueness and trigger restores

Medium

API rate limits cap at 200 req/min on Organization tier

Low

No native email sequences — follow-up cadences require external tools

Pair-specific challenges

  • File attachments do not migrate through CSV exports

    Twenty's CSV import tooling does not include file attachments in the migration path. Attachments stored in Wyvern Magic must be re-uploaded manually after migration, migrated via Twenty's API with file storage configuration, or handled through a separate file-migration pass. We flag attachment count and total size during scoping so the customer can decide on the re-upload approach before cutover.

  • Self-hosted Twenty requires manual update management

    Twenty's self-hosted deployment uses a database migration system that has shown issues when skipping intermediate versions (GitHub issue #14705 reports blank CRM views after updating from 1.3.0 to 1.6.7). Teams running Twenty self-hosted must apply updates sequentially rather than jumping versions, and should test updates in a staging environment before production deployment. We document the current Twenty version during scoping and flag if the customer is on a significantly outdated release.

  • Custom object creation requires metadata API scope

    Custom objects in Twenty are created via the /metadata API scoped to workspaceMember. The migration user must have sufficient permissions to call this endpoint and create custom field definitions before importing custom object records. We verify permissions during scoping and configure the migration user role if the customer is running a self-hosted instance with custom permission sets.

  • Data quality issues transfer with the data

    CRM migrations frequently transfer historical data quality problems including duplicate records, inconsistent address formatting, blank required fields, and stale pipeline entries. We flag duplicates during the extraction audit and apply deduplication rules before import, but legacy inconsistencies in free-text fields require customer-side decisions about correction versus preservation. We recommend a data-cleanup pass before migration rather than migrating dirty data into a clean destination platform.

Migration approach

Six steps for a successful Wyvern Magic to Twenty CRM data migration

  1. 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.

  2. 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.

  3. 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).

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

Wyvern Magic logo

Wyvern Magic

Source

Strengths

  • Event and sponsorship management as first-class CRM objects.
  • Marketing-led design with built-in campaign analytics overlay on contact behaviour.
  • Hierarchical shared calendar with approval workflows for sales-team coordination.
  • Sales diary tracking gives managers per-rep activity visibility.
  • UK domain expertise in subscription publishing and sponsorship workflows.

Weaknesses

  • Narrow vertical fit; horizontal SaaS sales teams find the data model awkward.
  • Limited public API and developer documentation.
  • Smaller reference community and procurement documentation.
  • Reporting structure is publishing/sponsorship-centric, not horizontal SaaS-centric.
  • Slower modernization pace than category leaders.
Twenty CRM logo

Twenty CRM

Destination

Strengths

  • AGPL-3.0 open-source license with full source code on GitHub — no vendor lock-in, no sunset risk.
  • Unlimited users and unlimited custom objects on self-hosted, with no feature gating based on headcount.
  • REST and GraphQL APIs available on all paid tiers, not locked behind an enterprise add-on fee.
  • MCP server and webhooks shipped as standard features, not premium upgrades.
  • Modern PostgreSQL-backed data model that developer teams can query, extend, and self-host.

Weaknesses

  • Recent v1.0 release means limited production hardening compared to CRMs with multi-year operational track records.
  • No native email sequencing or sales engagement tools — follow-up cadences require a separate platform.
  • No native two-way email sync or inbox integration, requiring third-party connectors for full activity logging.
  • Self-hosting 'free' pricing hides real infrastructure and DevOps costs that stack up over time.
  • Workflow automation is functional but lacks the complexity needed for sophisticated multi-step sales motions.

Complexity grading

How hard is this migration?

Moderate CRM migration. 4 of 8 objects need a mapping; the rest are 1:1.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Wyvern Magic and Twenty CRM.

  • Object compatibility

    C

    4 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Wyvern Magic: Not publicly documented.

  • Data volume sensitivity

    B

    Wyvern Magic doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Wyvern Magic to Twenty CRM migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Wyvern Magic to Twenty CRM data migrations

Answers to the questions buyers ask most during Wyvern Magic to Twenty CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Migrations land between two and four weeks for accounts under 15,000 Contacts and 3,000 Deals with no custom objects and a clean data state. Migrations with custom objects, multi-pipeline Deal structures, large activity histories (over 200,000 activity records), or self-hosted Twenty deployment setup move to six to ten weeks because of schema discovery time, metadata API configuration, and self-hosted environment validation.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Wyvern Magic.
Land in Twenty CRM, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day