CRM migration
Field-level mapping, validation, and rollback between Resco – Mobility & Productivity and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Resco – Mobility & Productivity
Source
Odoo CRM
Destination
Compatibility
9 of 12
objects map 1:1 between Resco – Mobility & Productivity and Odoo CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Resco – Mobility & Productivity to Odoo CRM is a structural migration that restructures where your data lives. Resco is a mobile extension layer that wraps an underlying Microsoft Dynamics 365, Dataverse, or Salesforce instance — it does not host your CRM data independently. Odoo CRM is a standalone open-source CRM with its own data store, modular ERP integration, and a Field Service application that provides offline-capable mobile operations. We extract the data from the parent CRM via the Resco sync layer, map every entity to an Odoo model (Contacts, Companies, Project Tasks for Work Orders, Documents for attachments), and resolve owner lookups to Odoo Users. Resco inspection questionnaires built in Woodford have no equivalent native object in Odoo and require explicit re-modeling decisions. Resco Guides, which have been discontinued, cannot migrate to any destination. Route Plans generated by Resco's routing engine are configuration artifacts that must be regenerated in Odoo Field Service. We do not migrate sync filters, upload/download conditions, or mobile app publication settings — these are platform-specific configurations that do not transfer across systems.
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 Resco – Mobility & Productivity 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.
Resco – Mobility & Productivity
Account / Company
Odoo CRM
Contact (with company_name field)
1:1Resco mirrors the parent CRM's Account entity directly. We extract Account records from the underlying Dynamics 365, Dataverse, or Salesforce via the Resco integration layer and map them to Odoo Contact records with the company_name field populated. Standard address fields (street, city, state, zip, country) transfer 1:1. If the parent CRM uses Account-Contact separation, we optionally create a separate Odoo Contact record for the company and child Contact records for individuals, depending on the customer's Odoo configuration preference.
Resco – Mobility & Productivity
Contact
Odoo CRM
Contact
1:1Contact records migrate 1:1 to Odoo Contact. Name, email, phone, mobile, job title, department, and address fields transfer directly. We preserve contact ownership by resolving the Resco owner's email to an Odoo User record. Any Resco-specific contact properties not present in the destination CRM are stored as custom fields. Relationship links to Accounts are preserved via the company_name reference on the Odoo Contact record.
Resco – Mobility & Productivity
Work Order
Odoo CRM
Project Task (Field Service)
1:1Resco Work Orders are first-class entities in the Field Service+ layer and map to Odoo Project Tasks within a dedicated Field Service project. We map Work Order status (Scheduled, In Progress, Completed, Cancelled) to Odoo Task stage values, assignment to Odoo User or Team, line items to Task descriptions or Subtasks, and field-captured photos to Odoo Documents attached to the Task. The Work Order's customer asset reference maps to an Odoo Contact or Product record depending on whether the asset is modeled as a Contact (customer asset) or Product (equipment catalog).
Resco – Mobility & Productivity
Inspection Questionnaire Definition
Odoo CRM
Survey (Odoo Survey app)
lossyResco inspection templates are Woodford-configured artifacts with conditional logic branches. We export the questionnaire definition as a structural document and map it to Odoo Survey questions. Because Woodford's branching logic uses JavaScript hooks and Resco-specific condition syntax, the Odoo Survey equivalent requires manual re-modeling by the customer's admin or a consultant. We deliver a written questionnaire inventory with each Woodford question mapped to an equivalent Odoo Survey question type, noting any conditional branching that must be manually rebuilt in Odoo Survey's conditional logic builder.
Resco – Mobility & Productivity
Inspection Questionnaire Response
Odoo CRM
Survey Submission
1:1Individual inspection response records (completed questionnaires with filled answers, photos, and signatures) migrate to Odoo Survey Submission records linked to the parent Work Order Task. Response timestamps, user who completed the inspection, and photo attachments transfer. Conditional answer branches that determine follow-up questions are preserved in the response data even if the conditional logic itself cannot be migrated.
Resco – Mobility & Productivity
Mobile Auditing (Location Tracking Records)
Odoo CRM
Custom Audit Log or Task Description Field
1:1Location tracking records in Resco are stored in the Mobile Auditing entity with Owner set to the initiating user, not the record subject. GPS coordinates (latitude, longitude) and timestamp transfer to Odoo as custom fields on the related Task or Contact record, or into a dedicated Odoo project task used as an audit log. We flag during scoping whether the customer wants full location history preserved (high data volume) or a summary audit trail (low data volume). Route-level location history may need to be condensed to avoid migrating millions of individual GPS pings.
Resco – Mobility & Productivity
Route Plan
Odoo CRM
Odoo Field Service Scheduling
lossyResco Route Plans are optimized sequences of work orders or inspections generated by the Resco routing engine. These are configuration artifacts (scheduling preferences, optimized stop ordering) rather than transactional records and do not have a direct Odoo equivalent. We document each Route Plan's stop sequence, scheduling constraints, and vehicle assignments. The customer's Odoo Field Service administrator rebuilds these as Odoo planning shifts or scheduling rules. Route Plan regeneration is outside the data migration scope.
Resco – Mobility & Productivity
Custom Entity (Woodford-configured)
Odoo CRM
Custom Odoo Model
lossyCustom entities created in Woodford are extracted from the parent CRM as part of the Resco project export. Any entity not mirrored in Odoo requires explicit schema re-creation. We assess each custom entity for Odoo equivalents: Odoo Studio custom fields, Odoo custom models (Python), or third-party Odoo Apps from the Odoo Store. We deliver a custom entity inventory document listing each Woodford entity, its field list, its relationships to standard entities, and a recommended Odoo modeling approach. Schema creation happens in the customer's Odoo instance before data import.
Resco – Mobility & Productivity
Document / Attachment (CRM-linked)
Odoo CRM
Document (Odoo Documents app)
1:1Resco routes documents and photos to the CRM server or to external services (Dropbox, Google Drive, OneDrive, SharePoint). We extract CRM-linked attachments directly from the parent CRM during migration. External storage attachments require explicit customer authorization to access the linked service. Photos captured in the field as Work Order attachments migrate as Odoo IrAttachment records linked to the corresponding Task. SharePoint-linked attachments migrate by re-uploading to Odoo Documents or by configuring an Odoo SharePoint integration if the customer maintains SharePoint post-migration.
Resco – Mobility & Productivity
Activity / Calendar Event
Odoo CRM
Calendar Event + Task
1:1Activities synced through the standard Resco-to-CRM channel migrate to Odoo Calendar Events (meetings, appointments) and Odoo Tasks (calls, to-dos). Calendar Event migrates with title, start datetime, end datetime, location, and attendee list. Call activities migrate as Tasks with a custom Call Duration field. Email activities migrate as Odoo Mail Message records linked to the Contact. We preserve activity timestamps and assignment to maintain the historical activity timeline in Odoo's CRM chatter and calendar views.
Resco – Mobility & Productivity
User / Owner
Odoo CRM
User
1:1Resco user records reference the underlying CRM user identity. We match Resco users by email to Odoo User records. Any Resco user without a matching Odoo User is placed in a reconciliation queue for the customer's admin to provision before record import proceeds. Owner assignments on Contacts, Companies, Work Orders, and Activities are re-mapped to the resolved Odoo User IDs at migration time.
Resco – Mobility & Productivity
Resco Guides (Discontinued)
Odoo CRM
Not migratable
1:1Resco Guides, the step-by-step workflow instruction component for field technicians, has been discontinued and has no migration path to Odoo or any other platform. We flag this during discovery and recommend that the customer document existing Guides content before migration. Replacement options include Odoo Knowledge (internal wiki), Odoo Discuss (for step-by-step instructions in tasks), or a standalone knowledge management tool. Guides content must be rebuilt as documentation; no automated migration is possible.
| Resco – Mobility & Productivity | Odoo CRM | Compatibility | |
|---|---|---|---|
| Account / Company | Contact (with company_name field)1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Work Order | Project Task (Field Service)1:1 | Fully supported | |
| Inspection Questionnaire Definition | Survey (Odoo Survey app)lossy | Fully supported | |
| Inspection Questionnaire Response | Survey Submission1:1 | Fully supported | |
| Mobile Auditing (Location Tracking Records) | Custom Audit Log or Task Description Field1:1 | Mapping required | |
| Route Plan | Odoo Field Service Schedulinglossy | Fully supported | |
| Custom Entity (Woodford-configured) | Custom Odoo Modellossy | Fully supported | |
| Document / Attachment (CRM-linked) | Document (Odoo Documents app)1:1 | Fully supported | |
| Activity / Calendar Event | Calendar Event + Task1:1 | Fully supported | |
| User / Owner | User1:1 | Fully supported | |
| Resco Guides (Discontinued) | Not migratable1: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.
Resco – Mobility & Productivity gotchas
Sync filter misconfiguration causes silent data loss
API call consumption varies dramatically between sync modes
Resco Guides feature discontinued with no migration path
External storage integration is not app-native
Location tracking data is user-owned in the Mobile Auditing entity
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 Resco project audit
We audit the Resco Woodford project configuration to identify all active entities, sync filters, custom mobile forms, questionnaire definitions, and routing configurations. We extract the entity list from the parent CRM (Dynamics 365, Dataverse, or Salesforce) to understand the full data surface. We review upload and download filter conditions for every entity to identify any date-range or owner-based restrictions that could silently exclude records. We document custom entities with their field schemas and relationships. The discovery output is a written migration scope listing every entity to be migrated, excluded, or rebuilt, plus a decision log for GPS history volume, questionnaire logic rebuild, and duplicate merge strategy.
Odoo environment provisioning and schema design
We provision an Odoo environment (Odoo Online sandbox or on-premise staging instance) and design the target schema. This includes activating the CRM, Project, and Field Service apps; creating custom fields on Contact and Task for Resco-specific properties; designing the Work Order Task project structure (stages, teams, tags); and optionally creating a custom audit log model for GPS location history if full history migration is requested. We assess whether Odoo Survey app is installed for questionnaire response migration. Schema is validated in staging before production deployment.
Sandbox migration and reconciliation
We run a full migration into the Odoo staging environment using production-like data volumes extracted from the parent CRM via the Resco sync layer. The customer's operations lead reconciles record counts (Contacts in, Work Orders in, Documents in, Activities in), spot-checks 25-50 records against the source, and validates that GPS coordinates, Work Order assignments, and inspection response data are intact. Any mapping corrections, missing fields, or filter-related exclusions are corrected in the staging environment. The customer signs off the staging migration before production migration begins.
User provisioning and owner reconciliation
We extract every distinct Resco user or parent CRM owner referenced on migrating records and match by email against the Odoo User directory. Any Resco user without a matching Odoo User is placed in a reconciliation queue. The customer's Odoo administrator provisions missing users (active or inactive depending on whether the Resco user is still active). Owner assignments on Work Orders, Contacts, and Activities are re-mapped to resolved Odoo User IDs before the production migration phase begins.
Production migration in dependency order
We run production migration in dependency order: Odoo Users (validated from step 4), Contacts (from Resco Accounts/Companies), Work Orders (mapped to Project Tasks), Inspection Questionnaire Responses (mapped to Survey Submissions), Location Audit records (mapped to custom fields or audit log), Documents and Attachments (migrated as IrAttachment records linked to parent Task or Contact), Activity history (Calendar Events and Tasks), and Custom Entity data (imported to custom Odoo models after schema creation). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and rebuild handoff
We freeze writes to the parent CRM during cutover, run a final delta migration of any records modified during the migration window, then enable Odoo as the system of record for field operations. We deliver the questionnaire inventory document (for Odoo Survey rebuild), the custom entity mapping document (for Odoo Studio or custom module creation), the route plan inventory (for Odoo Field Service scheduling rebuild), and the Resco Guides documentation request (for knowledge base rebuild). We support a one-week hypercare window for reconciliation issues. We do not rebuild Woodford mobile forms as Odoo mobile configurations or rebuild Resco Guides as Odoo Knowledge articles within the migration scope; these are separate configuration or consulting engagements.
Platform deep dives
Resco – Mobility & Productivity
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Resco – Mobility & Productivity and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Resco – Mobility & Productivity and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between Resco – Mobility & Productivity and Odoo CRM.
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
Resco – Mobility & Productivity: Governed by the underlying CRM platform (Dynamics 365, Dataverse, or Salesforce API limits).
Data volume sensitivity
Resco – Mobility & Productivity exposes a bulk API — large-volume migrations stream efficiently.
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 Resco – Mobility & Productivity to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Resco – Mobility & Productivity 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 Resco – Mobility & Productivity
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.