CRM migration
Field-level mapping, validation, and rollback between Simply CRM and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Simply CRM
Source
Odoo CRM
Destination
Compatibility
11 of 12
objects map 1:1 between Simply CRM and Odoo CRM.
Complexity
BStandard
Timeline
4–6 weeks
Overview
Simply CRM and Odoo CRM take fundamentally different approaches to data organization. Simply CRM stores contacts, companies, and deals in a flattened model with custom fields accessible at the object level. Odoo CRM separates leads from opportunities, uses res.partner for both contacts and companies, and stores most business data in PostgreSQL-backed models that follow Odoo's XML-RPC API conventions. FlitStack AI extracts Simply CRM data via its REST API, transforms records to match Odoo's crm.lead (for leads) and crm.lead/opportunity (for qualified deals) schema, and loads via Odoo's XML-RPC interface with external IDs for relationship integrity. Activity history — calls, emails, meetings, and notes — migrates to Odoo's mail.message and crm.activity models. Any Simply CRM custom fields that have no Odoo equivalent become ir.model.fields custom definitions created before data lands. Workflows, automations, and email templates do not migrate — FlitStack exports your Simply CRM workflow definitions as a reference document your Odoo administrator uses to rebuild them in Odoo's Automations framework.
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 Simply CRM 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.
Simply CRM
Contact
Odoo CRM
res.partner
1:1Simply CRM contacts map directly to Odoo res.partner records. The primary company link becomes res.partner.parent_id (for company records) or a separate res.partner record of type 'company' linked via parent_id. Unassigned contacts get a placeholder company record created in Odoo. During transformation, FlitStack preserves the contact's original created_date and last_modified timestamp in custom Char fields (create_date_original__c, write_date_original__c) to maintain audit trail continuity after migration.
Simply CRM
Contact
Odoo CRM
crm.lead
1:manyContacts in Simply CRM's early pipeline stages (New, Contacted) map to Odoo crm.lead with type='lead'. Contacts that have progressed past a qualification threshold (Simply CRM's 'Qualified' stage) map to crm.lead with type='opportunity'. Your team specifies the split point during mapping planning.
Simply CRM
Company
Odoo CRM
res.partner
1:1Simply CRM companies map to res.partner records with partner_type='company'. Odoo's parent-child hierarchy for company branches maps from Simply CRM's parent company relationships via the parent_id field. Child companies become separate res.partner records linked to the parent. When a Simply CRM company has no primary contact, FlitStack creates a placeholder contact within that company record to preserve the relationship structure in Odoo's res.partner model.
Simply CRM
Deal / Opportunity
Odoo CRM
crm.lead
1:1Simply CRM deals map to Odoo crm.lead records with type='opportunity'. The crm.lead.stage_id field maps from Simply CRM's pipeline stage, with stage names aligned to Odoo's stage groups (New, Qualified, Proposal Sent, Negotiation, Won, Lost). Deal amount maps to crm.lead.planned_revenue, and the original close date becomes date_deadline. The Simply CRM deal ID is stored in x_source_id for relationship tracing during delta migration runs.
Simply CRM
Pipeline
Odoo CRM
crm.team + stage group
1:1Simply CRM pipelines map to Odoo crm.team records. Each pipeline stage becomes an Odoo crm.stage within the team's pipeline. Odoo's stage groups (Kanban columns) are configured in Settings > CRM > Stages. Multi-pipeline setups in Simply CRM create multiple crm.team records in Odoo.
Simply CRM
Task / Activity
Odoo CRM
mail.message + crm.activity
1:1Simply CRM tasks and logged activities (calls, emails, meetings) map to Odoo mail.message records linked to the parent res.partner or crm.lead. Odoo's subtypes (discussions, emails, calls, meetings) are matched to Simply CRM activity types. Original timestamps and assigned users are preserved via Odoo's create_date and user_id fields.
Simply CRM
Note
Odoo CRM
mail.message
1:1Simply CRM notes on contacts, companies, or deals become Odoo mail.message records with subtype 'Note' linked to the target record. Rich-text formatting is preserved if Simply CRM exports HTML; plain text is stored as-is in the body field. Notes maintain their association to the original record via res_model and res_id, and author information maps from Simply CRM's owner_id to Odoo's author_id using email-based user resolution.
Simply CRM
Attachment / File
Odoo CRM
ir.attachment
1:1File attachments from Simply CRM are downloaded and re-uploaded to Odoo's ir.attachment model, linked to the corresponding res.partner or crm.lead record via res_model and res_id. Odoo's filestore preserves the original filename and content type. Large file handling follows Odoo's 25MB per-file limit.
Simply CRM
User / Owner
Odoo CRM
res.users
1:1Simply CRM users are matched to Odoo res.users by email address. Unmatched users are flagged before migration; your team either creates Odoo accounts first or assigns their Simply CRM records to a fallback user. Active/inactive status is preserved where available.
Simply CRM
Custom Fields
Odoo CRM
ir.model.field (custom)
1:1Simply CRM custom fields without Odoo equivalents require ir.model.field definitions created in Odoo's technical settings before data import. FlitStack generates a custom field creation checklist with field name, type (char, selection, float, date, etc.), and target model (res.partner, crm.lead) for your Odoo admin to pre-configure.
Simply CRM
Workflow / Automation
Odoo CRM
Not migratable
1:1Simply CRM workflows, assignment rules, and email automation do not transfer to Odoo. FlitStack exports workflow definitions as a structured reference document. Odoo Studio's Automations (triggers, server actions, scheduled actions) rebuild these from scratch using the exported definitions as a guide.
Simply CRM
Reports / Dashboards
Odoo CRM
Not migratable
1:1Simply CRM custom reports and dashboards do not migrate — underlying data moves, but visualization configurations are platform-specific and must be rebuilt in Odoo. Odoo's Reporting menu, Pivot, Graph, andkanban views reconstruct reporting from migrated data. FlitStack's sample migration validates data integrity so your team has confidence in the underlying data when rebuilding reports in Odoo.
| Simply CRM | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | res.partner1:1 | Fully supported | |
| Contact | crm.lead1:many | Fully supported | |
| Company | res.partner1:1 | Fully supported | |
| Deal / Opportunity | crm.lead1:1 | Fully supported | |
| Pipeline | crm.team + stage group1:1 | Fully supported | |
| Task / Activity | mail.message + crm.activity1:1 | Fully supported | |
| Note | mail.message1:1 | Fully supported | |
| Attachment / File | ir.attachment1:1 | Fully supported | |
| User / Owner | res.users1:1 | Fully supported | |
| Custom Fields | ir.model.field (custom)1:1 | Mapping required | |
| Workflow / Automation | Not migratable1:1 | Fully supported | |
| Reports / Dashboards | 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.
Simply CRM gotchas
SugarCRM Professional edition gates certain modules
Export discrepancies between screen records and CSV output
Custom field schema varies per installation
Workflow automations do not survive migration
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
Audit Simply CRM API and Odoo environment
FlitStack connects to your Simply CRM instance via REST API using your credentials and performs a schema discovery — exporting all object definitions, custom field names, pipeline configurations, and user accounts. Simultaneously, we inspect your Odoo instance (via XML-RPC) to inventory existing crm.lead stages, res.partner fields, crm.team structures, and installed modules. This phase produces a gap analysis: which Simply CRM fields have no Odoo equivalent, which Odoo custom fields must be pre-created, and which Simply CRM pipelines map to which Odoo teams. The gap analysis is delivered as a shared spreadsheet for your Odoo admin to action before the migration run.
Pre-create Odoo custom fields and configure pipeline stages
Your Odoo administrator creates the custom fields identified in the gap analysis using Settings > Technical > Database Structure > Fields. FlitStack provides the exact field name, Odoo type (Char, Selection, Float, Date, etc.), and target model for each custom field. Simultaneously, Odoo crm.stage records are configured per team to match Simply CRM pipeline stages — stage names, sequence order, and fold status are set to match the source so deal progression history is meaningful after migration. This step runs in parallel with data extraction preparation.
Extract and transform data with relationship resolution
FlitStack extracts contacts, companies, deals, activities, notes, attachments, and users from Simply CRM via REST API. Records are transformed according to the object and field mapping plan: Simply CRM contacts split into res.partner (partner type) and crm.lead (lead/opportunity) records, owner IDs resolve to Odoo user records by email, and company links resolve via external ID lookups. Activity records are linked to parent records using FlitStack's x_source_id custom field. The transformation pipeline generates CSV or JSON files staged for Odoo import, with all relationship IDs pre-resolved.
Run sample migration and generate field-level diff
A representative sample (typically 100–300 records spanning all object types and pipeline stages) is migrated first into a staging environment. FlitStack generates a field-level diff comparing source and destination values, showing discrepancies in custom field mapping, stage assignment, owner resolution, and relationship links. You review the diff with your Odoo admin to validate pipeline-to-team mapping, lead/opportunity split point, and activity subtype classification. Any mapping adjustments are applied before the full run.
Execute full migration with delta-pickup window
Full migration runs against your production Odoo environment via XML-RPC. A delta-pickup window (typically 24–48 hours) runs concurrently — any Simply CRM records modified or created during the cutover window are captured and synced to Odoo before go-live. FlitStack logs every API operation to an audit file. After migration completes, you run reconciliation checks: record counts by object, pipeline stage totals, owner assignment verification, and activity count validation. If reconciliation fails, one-click rollback reverts the Odoo environment to pre-migration state using the FlitStack backup snapshot.
Hand off workflow definitions for Odoo rebuild
FlitStack delivers an exported workflow definitions package: Simply CRM automations exported as a structured JSON document listing trigger events, conditions, and actions for each workflow. Your Odoo administrator uses this package with Odoo Studio Automations (triggers, server actions, scheduled actions) to rebuild the operational logic in Odoo. FlitStack's migration team is available for a consultation call to walk through the rebuild mapping, but the automation rebuild is a separate engagement from the data migration.
Platform deep dives
Simply CRM
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Simply CRM and Odoo CRM.
Object compatibility
1 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
Simply CRM: Not publicly documented.
Data volume sensitivity
Simply CRM 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 Simply CRM to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Simply CRM 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 Simply CRM
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.