CRM migration
Field-level mapping, validation, and rollback between Smart CRM Online and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Smart CRM Online
Source
Odoo CRM
Destination
Compatibility
8 of 12
objects map 1:1 between Smart CRM Online and Odoo CRM.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Smart CRM Online has no public API, no developer portal, and no published schema for custom fields, which means every migration from it is a CSV-first project with manual association reconstruction in the destination. The platform exports flat CSV files where Deals reference Company IDs or Contact names rather than structured foreign-key relationships, so we map those identifiers to Odoo res.partner and crm.lead records before loading. We sequence the import: Companies (as crm.lead.company_id or res.partner), then Contacts (as res.partner), then Deals (as crm.lead mapped to the partner), then Activities linked to the correct record. Custom fields require a discovery-phase export audit because Smart CRM Online does not publish field schemas publicly. We do not migrate automations, workflows, or sequences; we deliver a written inventory of these for the customer's Odoo admin to rebuild in Studio or Python.
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 Smart CRM Online 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.
Smart CRM Online
Company
Odoo CRM
res.partner (company type)
1:1Smart CRM Online Company records map to Odoo res.partner with partner_type set to company. The company name, domain, website, industry, and address fields migrate directly. res.partner is created before any Contact import so that the Contact.partner_id relationship is satisfied at import time. The company ID from Smart CRM Online CSV is preserved as an external reference field for reconciliation during cutover validation.
Smart CRM Online
Contact
Odoo CRM
res.partner (individual type)
1:1Smart CRM Online Contact records map to Odoo res.partner with partner_type set to individual and parent_id set to the matching company res.partner. The contact name, email, phone, mobile, job title, and address fields migrate. We resolve the company association from Smart CRM Online's Company ID column against the res.partner records created in the Company phase. Tags from Smart CRM Online migrate as Odoo tags via res.partner.category_id.
Smart CRM Online
Deal
Odoo CRM
crm.lead (Opportunity)
1:1Smart CRM Online Deal records map to Odoo crm.lead in opportunity stage. The deal name, expected revenue, close date, probability, and description migrate directly. We map the Smart CRM Online pipeline stage name to an Odoo Stage record that we create before import, preserving stage order and win/loss labels. The responsible user maps via email lookup to an Odoo res.users record.
Smart CRM Online
Pipeline Stage
Odoo CRM
crm.stage
lossySmart CRM Online pipeline stages are configurable string values exported with each Deal. We create corresponding crm.stage records in Odoo before Deal import, preserving the full stage sequence, probability percentages, and fold status. Stage names in Smart CRM Online are mapped to Odoo stage names via a discovery-phase configuration table that the customer reviews and approves.
Smart CRM Online
Activity: Call
Odoo CRM
mail.message (chatter thread on crm.lead or res.partner)
1:1Smart CRM Online call logs stored in the activity export attach to the corresponding res.partner or crm.lead record in Odoo using the mail.message model with message_type = notification. We preserve the call date, duration (stored as a custom field on mail.message), and any disposition notes. If Smart CRM Online exports calls as a separate CSV row per call, we batch-insert them as mail.message records in Odoo using XML-RPC batch operations.
Smart CRM Online
Activity: Email
Odoo CRM
mail.message (chatter thread on crm.lead or res.partner)
1:1Smart CRM Online email engagement history migrates to Odoo mail.message records attached to the corresponding crm.lead or res.partner. The email subject, body (plain text or HTML), from address, and timestamp migrate. We resolve the recipient partner_id by matching the email address against the imported res.partner records before inserting each message.
Smart CRM Online
Activity: Meeting
Odoo CRM
calendar.event
1:1Smart CRM Online meeting records migrate to Odoo calendar.event. We map the meeting title, start and end datetime, location, and attendee list to Odoo's event model. Attendees resolve to Odoo res.partner records by email match. If Smart CRM Online stores meeting notes as a text field, those migrate as a mail.message posted on the linked record.
Smart CRM Online
Activity: Note
Odoo CRM
mail.message (note subtype)
1:1Smart CRM Online notes stored in the activity export attach to Odoo crm.lead or res.partner as mail.message records with subtype mail.mt_note. The note body, author, and creation timestamp migrate. We resolve the parent record via the Smart CRM Online object type and record ID columns, matching against the imported IDs for crm.lead and res.partner.
Smart CRM Online
Custom Properties (Contact)
Odoo CRM
ir.model.fields (custom) on res.partner
lossySmart CRM Online custom fields on Contact records require a discovery-phase audit because no public schema exists. We request a full CSV export during scoping, identify all non-standard columns, and create corresponding custom fields on res.partner in Odoo before import. Field types are inferred from the CSV data (text, date, numeric, picklist) and mapped to the appropriate Odoo field type. Unmapped fields are presented to the customer for explicit mapping decisions.
Smart CRM Online
Custom Properties (Deal)
Odoo CRM
ir.model.fields (custom) on crm.lead
lossyCustom fields on Smart CRM Online Deal records are handled identically to Contact custom fields: discovery-phase audit, custom field creation in Odoo, and customer-approved mapping table. Any picklist or multi-select values in Smart CRM Online migrate as selection fields or many2many tags in Odoo depending on the data pattern.
Smart CRM Online
Tag
Odoo CRM
res.partner.category
lossySmart CRM Online tags on Contact and Company records migrate to Odoo res.partner.category entries. Tags are normalized (whitespace trimmed, duplicates merged) and inserted as category records before the Contact import. Each Contact receives the matching category_ids on res.partner.
Smart CRM Online
Owner
Odoo CRM
res.users
1:1Smart CRM Online Deal and Contact owner references (typically a user name or email) are resolved against Odoo res.users by email match during import. Any Smart CRM Online owner without a matching Odoo user is flagged in a reconciliation report and held from import until the customer's Odoo admin provisions the user. Owner assignments on crm.lead and res.partner update after user provisioning.
| Smart CRM Online | Odoo CRM | Compatibility | |
|---|---|---|---|
| Company | res.partner (company type)1:1 | Fully supported | |
| Contact | res.partner (individual type)1:1 | Fully supported | |
| Deal | crm.lead (Opportunity)1:1 | Fully supported | |
| Pipeline Stage | crm.stagelossy | Fully supported | |
| Activity: Call | mail.message (chatter thread on crm.lead or res.partner)1:1 | Fully supported | |
| Activity: Email | mail.message (chatter thread on crm.lead or res.partner)1:1 | Fully supported | |
| Activity: Meeting | calendar.event1:1 | Fully supported | |
| Activity: Note | mail.message (note subtype)1:1 | Fully supported | |
| Custom Properties (Contact) | ir.model.fields (custom) on res.partnerlossy | Fully supported | |
| Custom Properties (Deal) | ir.model.fields (custom) on crm.leadlossy | Fully supported | |
| Tag | res.partner.categorylossy | Fully supported | |
| Owner | res.users1: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.
Smart CRM Online gotchas
No documented API endpoint for programmatic migration
Relational flattening in CSV export breaks object associations
Custom field schema not published, requiring discovery-phase manual audit
No published pricing page creates billing-model ambiguity
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 proof-of-concept export
We request a full data export from Smart CRM Online covering Contacts, Companies, Deals, Pipeline Stages, Activities, and Tags. We audit the export structure: column headers, row counts per object, and the presence or absence of association columns (Company ID, Contact reference). We validate that the export includes all activity types the customer expects to migrate and flag any data completeness gaps. The discovery output is a written migration scope with field-level mapping for all standard columns and a list of custom fields requiring explicit mapping decisions from the customer.
Odoo.sh staging environment provisioning and schema build
We provision an Odoo.sh staging branch connected to the customer's Odoo instance. We create the crm.stage records matching the Smart CRM Online pipeline stage sequence, create any custom fields on res.partner and crm.lead based on the discovery mapping, and configure the CRM pipeline layout in Odoo Studio. If the customer's Odoo instance is on Odoo Online (free tier), we provision a staging database via Database Backup and restore a clean Odoo CRM template for migration testing.
Object mapping and association reconstruction design
We design the mapping table covering every Smart CRM Online column against its Odoo destination. We define the import order (res.partner for Companies first, res.partner for Contacts second with parent_id resolved, crm.lead for Deals with partner_id and company_id resolved, then activities). For the Deal-Contact association, we build a lookup dictionary keyed on Smart CRM Online record ID and resolve the partner_id at import time. We present the mapping table to the customer for approval before any staging migration begins.
Staging migration and reconciliation
We run a full migration into the Odoo.sh staging environment using the production-equivalent data volume. The customer reconciles record counts (Companies in, Contacts in, Deals in, Activities in), spot-checks 25-50 records against the Smart CRM Online source, and validates that stage names, owner assignments, and tag assignments appear correctly in Odoo. Any mapping corrections, stage renames, or owner mismatches are resolved in this phase before production migration begins.
Production cutover and delta migration
We freeze writes in Smart CRM Online, run a final export capturing any records modified during the migration window, and execute the production import into Odoo in dependency order. We run a post-import reconciliation comparing record counts between the Smart CRM Online source export and the Odoo destination. We validate that all Deal records have a populated partner_id and company_id. Owner assignments are finalized by resolving any remaining unmatched owners against the Odoo res.users table.
Automation inventory handoff and hypercare
We deliver a written inventory of every Smart CRM Online workflow, automation, or sequence in scope for rebuild. The inventory lists each automation's trigger, conditions, and actions with a recommended Odoo Studio or Python server-action equivalent. The customer's Odoo admin rebuilds automations post-migration; we do not include workflow rebuild in the standard migration scope. We provide a one-week hypercare window for reconciliation issues raised by the customer's team after go-live.
Platform deep dives
Smart CRM Online
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Smart CRM Online and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Smart CRM Online and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between Smart CRM Online 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
Smart CRM Online: Not publicly documented.
Data volume sensitivity
Smart CRM Online 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 Smart CRM Online to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Smart CRM Online 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 Smart CRM Online
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.