CRM migration
Field-level mapping, validation, and rollback between Divalto weavy and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Divalto weavy
Source
Odoo CRM
Destination
Compatibility
11 of 12
objects map 1:1 between Divalto weavy and Odoo CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Migrating from Divalto weavy to Odoo CRM begins with a constraint that shapes everything else: Divalto weavy does not publish a public REST API and manages integrations exclusively through Zapier. We cannot read or write to Divalto weavy programmatically, so every migration starts with vendor-coordinated data exports. We work with Divalto support to extract CSV or vendor-portal exports covering Companies, Contacts, Leads, Deals, Activities, and any custom objects built in the Development Studio. Odoo CRM receives this data via its XML-RPC and JSON-RPC API, which supports batch record creation with parent-lookup resolution. Development Studio custom fields require explicit schema audits and Odoo custom field creation before import. Route and itinerary data tied to Divalto weavy's field workforce features have no standard Odoo CRM equivalent and are flagged as excluded from standard scope. We do not migrate Divalto weavy automations or Development Studio workflows; we deliver a written inventory of every automation for the customer's admin to rebuild in Odoo Studio.
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 Divalto weavy 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.
Divalto weavy
Company
Odoo CRM
res.partner (company type)
1:1Divalto weavy Companies map to Odoo res.partner records with company_type set to 'company'. The company name, industry, billing address, and shipping address fields map to Odoo's name, industry_id, and address fields (street, city, zip, country). Odoo's partner model supports multiple addresses per company via the child_ids relationship, which we use to represent Divalto weavy's separate billing and shipping addresses as distinct res.partner records of type 'contact' linked to the parent company.
Divalto weavy
Contact
Odoo CRM
res.partner (individual type)
1:1Divalto weavy Contacts map to Odoo res.partner records with company_type set to 'person' and a parent_id linking to the corresponding company partner. Standard fields (name, email, phone, mobile, job title) map directly. Any custom fields created in the Development Studio are audited during discovery, created as custom res.partner.fields, and mapped explicitly during import. Contact records without a Divalto weavy company association are created as standalone individual partners.
Divalto weavy
Lead
Odoo CRM
crm.lead
1:1Divalto weavy Leads migrate to Odoo crm.lead records in the Lead stage. Odoo's crm.lead model serves both unqualified prospects and qualified opportunities; the customer chooses at migration time whether to convert immediately to Opportunity or keep in Lead. Lead status and source fields from Divalto weavy map to Odoo's stage_id and source_id (utm.source). The original Divalto weavy lead status is preserved in a custom field for reporting continuity.
Divalto weavy
Deal
Odoo CRM
crm.lead (type = opportunity)
1:1Divalto weavy Deals map to Odoo crm.lead records with type set to 'opportunity'. Deal name becomes crm.lead name, deal value maps to planned_revenue, expected close date maps to date_deadline, and stage maps to stage_id (see Pipeline Stage configuration below). Owner resolution is by email match to Odoo res.users.
Divalto weavy
Pipeline Stage
Odoo CRM
crm.stage
lossyDivalto weavy pipeline stages are extracted during discovery and mapped one-to-one to Odoo crm.stage records within the appropriate crm.team. Stage probability percentages from Divalto weavy migrate to stage_sequence values in Odoo. Custom stage names (beyond the standard Divalto weavy lifecycle) are created as new crm.stage records in the destination. The Odoo stage IDs are captured and used as the stage_id foreign key in the Deal-to-Opportunity mapping.
Divalto weavy
Activity (call, meeting, task)
Odoo CRM
mail.activity / calendar.event / crm.phone.call
1:1Divalto weavy Activity records map to Odoo's mail.activity for tasks and calendar.event for meetings and calls. Activity type, date, description, and linked owner migrate directly. Calls optionally map to crm.phone.call if the Odoo CRM Telephony module is installed; otherwise they land as mail.activity with a call-type subtype. The parent record reference (contact, company, or deal) is resolved via the partner_id or opportunity_id foreign key at migration time.
Divalto weavy
User / Team Member
Odoo CRM
res.users
1:1Divalto weavy user records (Standard, Sales, Technician, Full profiles) are mapped to Odoo res.users by email match. Profile assignment from Divalto weavy is stored in a custom field user_profile__c on the Odoo res.users record. Any Divalto weavy user without a matching Odoo user email is placed in a reconciliation queue; the customer's Odoo admin provisions the missing user before record import continues because OwnerId references are required on Opportunity and Activity records.
Divalto weavy
Custom Object (Development Studio)
Odoo CRM
ir.model (custom model)
1:1Every custom object defined in Divalto weavy's Development Studio is audited during discovery. We create the equivalent custom model in Odoo using res.config.settings-based schema creation or a custom Python module, then map all custom fields (with correct field types: char, text, float, integer, date, many2one, many2many) before importing any data that references those objects. Custom objects that represent lookup relationships (e.g., ProductCategory) are mapped to existing Odoo res.partner categories or custom many2one fields to preserve referential integrity.
Divalto weavy
Custom Field (Development Studio)
Odoo CRM
ir.model.fields (custom field)
1:1Development Studio custom fields on Companies, Contacts, Leads, and Deals are created as custom ir.model.fields in Odoo before any record import. We capture the field type, required flag, picklist values, and any validation logic during the schema audit, and reproduce equivalent Odoo field definitions. If a Development Studio field has a picklist of values, we create a corresponding selection field or many2one in Odoo with the same options.
Divalto weavy
Attachment
Odoo CRM
ir.attachment
1:1Document attachments linked to Companies, Contacts, and Deals in Divalto weavy are extracted as files and imported into Odoo ir.attachment. Each ir.attachment record receives res_model set to the target model (res.partner or crm.lead) and res_id set to the migrated record's Odoo ID. File names and original timestamps are preserved in the attachment's name and create_date fields.
Divalto weavy
Note
Odoo CRM
mail.message / note.note
1:1Free-form notes from Divalto weavy migrate to Odoo mail.message records with a note subtype on the parent record, or to note.note records if the Odoo Notes app is active. Note body migrates as HTML with attachments preserved separately.
Divalto weavy
Route / Itinerary Data
Odoo CRM
(not migrated)
1:1Divalto weavy route planning and itinerary data are mobile-first features specific to its field workforce management capabilities. Odoo CRM does not have a native route or itinerary object. If the customer activates the Odoo Field Service Management app (Enterprise tier), route and planning data can be reconstructed manually after migration. We do not include route data in the standard migration package and flag the gap during scoping.
| Divalto weavy | Odoo CRM | Compatibility | |
|---|---|---|---|
| Company | res.partner (company type)1:1 | Fully supported | |
| Contact | res.partner (individual type)1:1 | Fully supported | |
| Lead | crm.lead1:1 | Fully supported | |
| Deal | crm.lead (type = opportunity)1:1 | Fully supported | |
| Pipeline Stage | crm.stagelossy | Fully supported | |
| Activity (call, meeting, task) | mail.activity / calendar.event / crm.phone.call1:1 | Fully supported | |
| User / Team Member | res.users1:1 | Fully supported | |
| Custom Object (Development Studio) | ir.model (custom model)1:1 | Fully supported | |
| Custom Field (Development Studio) | ir.model.fields (custom field)1:1 | Fully supported | |
| Attachment | ir.attachment1:1 | Fully supported | |
| Note | mail.message / note.note1:1 | Fully supported | |
| Route / Itinerary Data | (not migrated)1: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.
Divalto weavy gotchas
No public API documentation for direct migration
Per-user pricing model inflates cost with headcount
Development Studio customizations are non-standard and require explicit mapping
Route and itinerary data has no destination equivalent
Odoo CRM gotchas
Odoo.sh version gating blocks assisted migrations from trial
Enterprise modules fail to install on Community after database restore
Custom module view inheritance breaks between Odoo major versions
Custom fields risk losing their application context on Community
API access for Community is gated behind the Custom Plan
Pair-specific challenges
Migration approach
Discovery and export coordination
We audit the Divalto weavy environment for all CRM objects (Companies, Contacts, Leads, Deals, Activities), Development Studio custom objects and fields, pipeline stage definitions, user list with profile assignments, and attachment inventory. We then coordinate with Divalto support to request full data exports. The customer authorizes the export request, and we receive CSV files or a vendor portal download. This step establishes the exact schema that will map to Odoo and is the longest lead-time item in the project because it depends on Divalto's export responsiveness.
Schema design in Odoo
We design the destination Odoo CRM schema based on the Divalto weavy export schema. This includes creating custom fields on res.partner (for custom Contact fields), on crm.lead (for custom Deal and Lead fields), and as custom ir.model records for any Development Studio custom objects. We configure the crm.stage pipeline stages to match the Divalto weavy stage names and probabilities. All schema changes are deployed into a staging Odoo database first for validation. The owner email-matching configuration between Divalto weavy users and Odoo res.users is set up here.
Sandbox migration and reconciliation
We run a full migration into the staging Odoo database using the production-exported data volume. The customer reconciles record counts (Companies in, Contacts in, Leads in, Deals in, Activities in), spot-checks 20-40 random records against the Divalto weavy source, and validates that pipeline stage assignments and owner assignments are correct. Any field mapping corrections, custom field additions, or stage configuration changes happen in this phase. The customer signs off the staging migration before production migration is scheduled.
Owner reconciliation and user provisioning
We extract every distinct Divalto weavy user referenced on Deals, Activities, and record owner fields and match by email against the Odoo destination's res.users table. Users without a match are placed in a reconciliation queue for the customer's Odoo admin to provision. Because Odoo requires a res.users record for every record owner, this step must be completed and validated before any Opportunity or Activity records can be imported with owner assignments.
Production migration in dependency order
We run production migration in record-dependency order: res.partner (Companies first, then individual Contacts with parent_id resolved to the Company partner), crm.lead (Leads, then Deals with stage_id and user_id resolved), mail.activity and calendar.event (Activities with partner_id and opportunity_id resolved), ir.attachment (files with res_model and res_id pointing to the correct Odoo record). Each phase emits a row-count reconciliation report before the next phase begins. Development Studio custom object records import last, after the standard CRM objects they reference have been created.
Cutover, validation, and automation inventory handoff
We freeze Divalto weavy write access during cutover, run a final delta migration of any records created or modified during the migration window, then enable Odoo CRM as the system of record. We deliver a written inventory of every Divalto weavy Development Studio automation and workflow with its trigger conditions, actions, and a recommended Odoo Studio equivalent. The customer's Odoo admin rebuilds the automations post-migration. We support a one-week hypercare window for reconciliation issues. We do not rebuild Divalto weavy automations as Odoo Studio workflows inside the migration scope; that is a separate engagement.
Platform deep dives
Divalto weavy
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Divalto weavy and Odoo CRM.
Object compatibility
2 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
Divalto weavy: Not publicly documented.
Data volume sensitivity
Divalto weavy 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 Divalto weavy to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Divalto weavy to Odoo 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 Divalto weavy
Other ways to arrive at Odoo 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.