CRM migration

Migrate from Wyvern Magic to Odoo CRM

Field-level mapping, validation, and rollback between Wyvern Magic and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.

Wyvern Magic logo

Wyvern Magic

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

83%

10 of 12

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

Complexity

CModerate

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Wyvern Magic to Odoo CRM is a platform migration that also restructures how deal management and pipeline configuration work. Wyvern Magic stores Deals with a tenant-configurable pipeline model; Odoo CRM uses a stage kanban tied to its crm.team and crm.stage records that must be configured before any Opportunity import. We extract the active pipeline definition from Wyvern Magic, create the matching Odoo CRM pipeline with stage names, sequence order, and probability values, then migrate deal records into the correct stage. Activity history (calls, emails, meetings, notes) migrates as CRM log note records linked to the parent Contact or Opportunity, preserving timestamps and owner assignments. Custom objects and custom properties require pre-creation of the Odoo model schema before any data import. Workflows, marketing automations, and reporting configurations do not migrate; we deliver a written inventory of these for the customer to rebuild in Odoo's studio or with a certified Odoo partner.

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

Odoo CRM logo

Odoo CRM

What's pulling them in

  • Teams choose Odoo CRM for its modular architecture — one base install with one-click app additions means they can adopt CRM alone and add accounting, inventory, or sales later as the business grows.
  • Small businesses pick Odoo because the Community edition is free and open-source, with no per-user or contact limits, allowing full evaluation before committing to a paid Enterprise tier.
  • The drag-and-drop Kanban pipeline and AI lead scoring are highlighted across G2 reviews as concrete features that make lead management faster and more visual than spreadsheet-based workflows.
  • Odoo's native integration with email, live chat, SMS, VoIP, and WhatsApp means inbound leads from multiple channels feed into a single pipeline without third-party middleware.
  • Companies in retail, supply chain, and construction value that Odoo's CRM module shares the same PostgreSQL database and UI as its ERP modules, eliminating data silos between sales and operations.

Object mapping

How Wyvern Magic objects map to Odoo CRM

Each row shows how a Wyvern Magic object lands in Odoo 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

Contact

maps to

Odoo CRM

Contact

1:1
Fully supported

Wyvern Magic Contacts map directly to Odoo CRM Contacts (res.partner with customer_rank set to 1). Standard fields (name, email, phone, street, city, country) migrate as typed fields on res.partner. Custom contact properties from Wyvern Magic (such as industry classifications or custom rating fields) are mapped to custom Char, Selection, or Float fields on the res.partner model that we pre-create via Odoo's Settings > Technical > Models interface before migration. Owner email from Wyvern Magic maps to the user_id field on the Odoo partner record.

Wyvern Magic

Company

maps to

Odoo CRM

Company

1:1
Fully supported

Wyvern Magic Company records map to Odoo CRM Company records (res.partner with customer_rank set to 0 and is_company = True). The Wyvern Magic domain field maps to the website field on res.partner. We create the Company records before Contact import so that the child Contacts can reference the parent Company via the parent_id field on res.partner. Employee count, industry, and any custom company fields migrate as typed custom fields on the res.partner model.

Wyvern Magic

Deal

maps to

Odoo CRM

Opportunity

1:1
Fully supported

Wyvern Magic Deals map to Odoo CRM Opportunities (crm.lead with type = 'opportunity'). The Wyvern Magic dealstage property maps to the stage_id field on crm.lead, which references a crm.stage record. The pipeline assignment from Wyvern Magic maps to a crm.team record that we create and configure before migration. Deal amount, close date, and probability migrate to expected_revenue, date_closed, and the probability field on the Opportunity.

Wyvern Magic

Lead

maps to

Odoo CRM

Lead

1:1
Fully supported

Wyvern Magic Lead records map to Odoo CRM Lead records (crm.lead with type = 'lead'). Lead status, lead source, and any custom lead scoring fields migrate to the crm.lead fields priority, source_id (via crm.lead.source), and a custom float field for imported lead score values. Owner assignments migrate via user_id on crm.lead by email lookup against Odoo User records.

Wyvern Magic

Pipeline

maps to

Odoo CRM

crm.team + crm.stage

lossy
Fully supported

Wyvern Magic pipeline definitions (stage names, probabilities, stage order) are extracted during discovery and recreated in Odoo CRM as crm.team records (one per pipeline) with corresponding crm.stage records (stage_ids on the team). We set sequence values to match Wyvern Magic's stage ordering and probability percentages on each stage. This configuration step is required before any Deal or Opportunity records can be imported.

Wyvern Magic

Activity (calls, emails, meetings, notes, tasks)

maps to

Odoo CRM

CRM Log Note + Calendar Event

1:1
Fully supported

Wyvern Magic Engagement records (email, call, meeting, note, task) migrate to Odoo CRM as crm.lead log notes (mail.message with model = 'crm.lead' and sub_type = 'crm.lead_msg_act') for activities attached to Leads or Opportunities, and as mail.message records linked to res.partner for activities attached to Contacts. Call subtype, duration, and disposition map to custom fields on the log note record. Meeting activities create crm.calendar.event records with start_datetime, stop_datetime, and attendee_ids preserved. All activity timestamps and owner assignments migrate directly.

Wyvern Magic

Owner/User

maps to

Odoo CRM

User

1:1
Fully supported

Wyvern Magic Owner records map to Odoo User records (res.users) by email match. We extract every distinct owner referenced on Contact, Company, Deal, and Lead records and resolve them against the destination Odoo instance's User table. Any Wyvern Magic Owner without a matching Odoo User is placed in a reconciliation queue for the customer's admin to provision before record import resumes. Active/inactive status on the Odoo User controls read/write access post-migration.

Wyvern Magic

Custom Object

maps to

Odoo CRM

Custom Model

1:1
Fully supported

Wyvern Magic custom objects with tenant-specific schemas migrate to Odoo custom models (ir.model records with a custom model definition). We inspect the Wyvern Magic custom object schema during discovery, create the matching Odoo model with the same field types (Char, Integer, Float, Date, Many2one, One2many, Text, Selection), and set up any lookup relationships to standard objects (res.partner, crm.lead) before importing data. Custom object records with required field constraints must have those constraints satisfied during import or the batch fails.

Wyvern Magic

Custom Property

maps to

Odoo CRM

Custom Field on Standard Model

1:1
Fully supported

Wyvern Magic custom fields on standard objects (Contacts, Companies, Deals, Leads) migrate to Odoo custom fields on the corresponding Odoo model (res.partner for Contacts and Companies; crm.lead for Leads and Opportunities). We use Odoo's Settings > Technical > Fields interface to pre-create each custom field with the correct type (Char, Integer, Float, Selection, Date, Datetime, Text, Many2one) inferred from the Wyvern Magic property type during the discovery type-inference step.

Wyvern Magic

Tag/Label

maps to

Odoo CRM

CRM Tag

lossy
Fully supported

Wyvern Magic tags applied to Contacts, Deals, and Companies migrate to Odoo CRM tags (crm.tag records) and are associated to the res.partner and crm.lead records via the crm.tag.rel many-to-many table. Multi-value tag arrays from Wyvern Magic are flattened into multiple crm.tag entries per record. Tag names and tag colors (if stored in Wyvern Magic) are preserved as tag_name and color fields on the crm.tag record.

Wyvern Magic

Attachment (file reference)

maps to

Odoo CRM

Document (ir.attachment)

1:1
Fully supported

Wyvern Magic attachments stored with URL references or file export are migrated as ir.attachment records linked to the parent res.partner or crm.lead record. The attachment name, URL, and associated record reference migrate directly. Large file attachments may require a separate file-migration pass after the record migration, depending on Odoo's attachment storage configuration (file store vs database storage) and the customer's file size limits.

Wyvern Magic

Reporting/Analytics

maps to

Odoo CRM

Not migrated

1:1
Not supported

Historical analytics, dashboards, and report configurations from Wyvern Magic do not migrate. Odoo provides a native CRM dashboard and reporting tool (crm.forecast.report and custom Pivot/Graph views) that the customer configures post-migration. We deliver a written summary of the reporting structure in Wyvern Magic (report types, fields used, filter logic) as a reference guide for rebuilding in Odoo.

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

Odoo CRM logo

Odoo CRM gotchas

High

Odoo.sh version gating blocks assisted migrations from trial

High

Enterprise modules fail to install on Community after database restore

Medium

Custom module view inheritance breaks between Odoo major versions

Medium

Custom fields risk losing their application context on Community

Low

API access for Community is gated behind the Custom Plan

Pair-specific challenges

  • Odoo pipeline stages must be configured before deal import

    Odoo CRM does not auto-create pipeline stages during import. Every stage in the Wyvern Magic pipeline definition must have a matching crm.stage record created in Odoo before any Opportunity records can be inserted. If a Wyvern Magic deal references a stage that does not exist in Odoo, the import batch fails with a foreign-key constraint error. We extract the full pipeline definition (stage names, sequence order, probability percentages, and pipeline assignment) during discovery and pre-create the Odoo pipeline structure before any deal data moves. Migrations that skip this step result in deal records being held in a retry queue, delaying the project by days.

  • Odoo Lead and Contact are separate objects with different required fields

    Odoo CRM maintains a strict separation between Lead (crm.lead with type='lead') and Contact (res.partner). A Lead in Odoo must have a name or company_name and an email or phone; a Contact must have a name. Wyvern Magic's single contact-centric model does not enforce this split, so a flat import of Wyvern Magic Contacts into Odoo Leads will fail if any record lacks the required fields. We run a pre-migration field audit to identify records with missing required Odoo fields and either apply default values (such as a placeholder company_name for individual contacts) or flag them for the customer's admin to resolve before migration.

  • Custom object schemas require Odoo developer-mode access

    Creating custom models in Odoo requires activating developer mode (Settings > Activate Developer Mode) and using the Settings > Technical > Models interface or direct XML data import. Community edition supports this; it is not an Enterprise-only feature. However, any custom field with a Many2one relationship (a lookup to another model) requires that the target model and its access control list (ACL) entries exist before the relationship field is created. We coordinate the schema build order to ensure foreign-key dependencies are satisfied at creation time, not import time.

  • CRM log notes and calendar events have different attachment models

    Wyvern Magic activity attachments (files linked to emails, call recordings, meeting agendas) migrate as mail.message records with ir.attachment links in Odoo. The Odoo attachment storage model (ir_attachment.store_method = 'db' by default) may hit database size limits for large file attachments. We configure the Odoo file storage to use the file store (ir_attachment.store_method = 'file') before migrating attachments larger than 1 MB, or we store a URL reference and leave the actual file in a referenced location if the customer's Odoo instance has storage constraints.

  • Odoo Community edition does not include a native e-signature or document sending module

    Wyvern Magic includes an ad booking and document tracking system that has no direct Odoo Community equivalent. Teams using Wyvern Magic for quote sending and e-signature tracking need to install the Odoo Sign app (a paid Odoo Apps module) or integrate with a third-party e-signature provider (DocuSign, HelloSign) post-migration. We flag any Wyvern Magic documents with e-signature status during scoping and document the Odoo Sign installation steps as a post-migration configuration task.

Migration approach

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

  1. Discovery and Wyvern Magic tenant audit

    We audit the source Wyvern Magic tenant across object types (Contacts, Companies, Deals, Leads, custom objects), active pipeline definitions, custom property schemas, engagement volume (emails, calls, meetings, notes, tasks), owner count, and tag taxonomy. We also identify any tier-gated export restrictions that require a Wyvern Magic plan upgrade before data extraction. The discovery output is a written migration scope document with record counts per object, a preliminary field map, and an Odoo edition recommendation (Community for cost-sensitive migrations, paid plans if the customer needs the Odoo Discuss module, VoIP integration, or advanced forecasting).

  2. Odoo schema pre-creation and pipeline configuration

    We install Odoo CRM in the destination instance and configure the pipeline structure before any data moves. This includes creating crm.team records (one per Wyvern Magic pipeline), creating crm.stage records with correct sequence values and probability percentages matched to the Wyvern Magic stage definition, configuring lead prefix and name formatting rules in Settings, and creating custom fields on res.partner and crm.lead for any Wyvern Magic custom properties. Custom Odoo models for any Wyvern Magic custom objects are created via the Technical > Models interface with field types inferred from the source schema during discovery. All schema work is validated in an Odoo test database before production migration begins.

  3. Data extraction, cleansing, and transformation

    We extract all Wyvern Magic records via the platform's REST endpoints, sequencing by dependency order: Companies first (as parent records for Contacts), then Contacts (with parent_id resolved to the Company record), then Leads, then Deals/Opportunities (with stage_id resolved to the Odoo pipeline stage). Custom objects are extracted last. We run a data quality pass that identifies duplicate records (by email on Contacts, by company domain on Companies), fills missing required fields with defaults where appropriate, and flags records that cannot be imported without manual resolution. Activity history (calls, emails, meetings, notes, tasks) is extracted in a separate pass and held for the engagement migration phase.

  4. Owner reconciliation and User provisioning

    We extract every distinct Wyvern Magic owner email from Contact, Company, Deal, and Engagement records and match against the destination Odoo instance's res.users table. Any owner without a matching Odoo User goes to a reconciliation queue. The customer's Odoo administrator provisions the missing Users (with appropriate access rights per Odoo's access rights model) before record import resumes. This step is mandatory because user_id on res.partner and crm.lead is a required reference for activity attribution.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Companies (res.partner is_company records) first, then Contacts with parent_id resolved, then Leads, then Opportunities with stage_id resolved to the Odoo pipeline, then custom object records. Activity history (calls, emails, meetings, notes, tasks) migrates after the primary record objects as mail.message and crm.calendar.event records linked to the parent crm.lead or res.partner by database ID. Each phase emits a row-count reconciliation report comparing extracted count, transformed count, and imported count. Migrations with over 200,000 activity records use Odoo's batch import with chunking to avoid request timeout errors.

  6. Cutover, validation, and handoff

    We freeze Wyvern Magic write access during cutover, run a final delta migration of any records modified during the migration window, then set the Odoo CRM instance as the system of record. We deliver a written Workflow and Automation Inventory documenting every Wyvern Magic workflow, ad booking rule, and marketing automation with a recommended Odoo alternative (Odoo Studio automation, CRM Activity Rules, or a scheduled action). We do not rebuild automations as Odoo Workflow or Studio automations inside the migration scope; that is a separate engagement or an Odoo partner task. We support a five-business-day hypercare window for reconciliation issues raised by the customer's team.

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.
Odoo CRM logo

Odoo CRM

Destination

Strengths

  • Modular open-source architecture lets teams start with CRM and add ERP apps as needs grow, all sharing one PostgreSQL database.
  • Free Community edition with no contact limits and full source code access means zero licensing cost for evaluation and small deployments.
  • Drag-and-drop Kanban pipeline with AI lead scoring gives a visual, prioritized view of the sales funnel without requiring custom configuration.
  • Native integrations with email, live chat, SMS, VoIP, WhatsApp, and social media feed all inbound leads into a single unified inbox.
  • Active Odoo Community Association (OCA) maintains dozens of community-maintained modules on GitHub for extended functionality.

Weaknesses

  • Gmail and email integration reliability is a recurring complaint — threads drop and conversations scatter across inboxes, disrupting sales team workflows.
  • Enterprise edition pricing stacks quickly: multiple apps at per-user rates ($25–$50/user/month) plus Odoo.sh hosting costs more than many SMBs anticipate.
  • Setup and configuration complexity increases significantly once custom fields, automation rules, and multiple installed modules are in play.
  • Odoo.sh trial databases run on a version (e.g., 18.3) that is not directly migratable to Odoo.sh, blocking the assisted migration path Odoo advertises.
  • Version upgrades between major Odoo releases (e.g., 17→18) frequently break custom module view definitions and XPath expressions, requiring manual remediation.

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 Odoo 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 Odoo 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 Odoo CRM data migrations

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

Can't find your answer?

Walk through your Wyvern Magic to Odoo CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 25,000 Contacts and 5,000 Deals with no custom objects and a single Wyvern Magic pipeline. Migrations with multiple deal pipelines, custom objects, large engagement histories (over 200,000 activity records), or Odoo Community edition destinations move to eight to twelve weeks because of Odoo module installation, crm.team and crm.stage configuration, and custom model pre-creation work. The Wyvern Magic tenant audit and Odoo schema pre-creation typically take the longest single block of time.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Wyvern Magic.
Land in Odoo 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