CRM migration
Field-level mapping, validation, and rollback between SimplyConvert and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
SimplyConvert
Source
Odoo CRM
Destination
Compatibility
13 of 13
objects map 1:1 between SimplyConvert and Odoo CRM.
Complexity
BStandard
Timeline
24–72 hours
Overview
SimplyConvert is a purpose-built legal-intake CRM focused on mass-tort and personal-injury case workflows — its primary objects are Client (the contact record), Case (the matter record), and Referral (the intake source). SimplyConvert's pricing model bills per signed-case event, which becomes unpredictable at volume. Odoo CRM uses crm.lead as its unified lead/opportunity model, res.partner for contacts and companies, and stores stage definitions in crm.stage. We map SimplyConvert Client records to res.partner entries, Case records to crm.lead with a custom x_case_type Char field, and SimplyConvert's referral-source and intake-channel properties to custom fields on crm.lead. Custom fields (statute of limitations, venue, claim amount, case status) require Odoo Studio pre-creation before data lands. Automations — SimplyConvert's case-stage notification triggers and referral routing rules — do not migrate and must be rebuilt in Odoo's server actions and automated actions. We sequence the migration so res.partner records exist before crm.lead records (foreign-key dependency via Odoo's partner_id field), run a sample migration against 50–100 records with field-level diff, then execute the full run with a 24–48h delta pickup for any cases opened during cutover.
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 SimplyConvert 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.
SimplyConvert
Client
Odoo CRM
res.partner
1:1SimplyConvert Client maps directly to Odoo res.partner. The res.partner record stores contact name, email, phone, address, and company association. SimplyConvert clients without a linked company map to res.partner entries with no parent_id; Odoo treats standalone contacts as partners with category_id (tags) for segmentation.
SimplyConvert
Case
Odoo CRM
crm.lead
1:1SimplyConvert Case is the core matter record and maps 1:1 to Odoo crm.lead. The crm.lead model in Odoo holds both lead and opportunity states; we set type='opportunity' for all migrated cases so they appear in the pipeline kanban view. The case name becomes crm.lead name field; case description maps to crm.lead description.
SimplyConvert
Referral
Odoo CRM
crm.lead (custom fields)
1:1SimplyConvert's Referral object carries source, campaign, staff assignment, and intake timestamp. We collapse these into two custom Char fields on crm.lead: x_referral_source and x_intake_channel. The original Referral object creation date is preserved in x_referral_date for attribution continuity. Odoo Automated Actions can be configured to set these fields based on lead source rules post-migration.
SimplyConvert
Case.claim_type
Odoo CRM
crm.lead.x_claim_type (custom field)
1:1SimplyConvert stores matter-type strings (e.g., 'Personal Injury', 'Mass Tort', 'Employment') on the Case record. Odoo CRM has no native claim_type equivalent. We create x_claim_type as a Selection field on crm.lead before migration, populated with the distinct claim_type values found in the source dataset. Admins can adjust the selection list post-migration.
SimplyConvert
Case.statute_of_limitations_date
Odoo CRM
crm.lead.x_sol_date (custom field)
1:1SimplyConvert captures SOL dates on Case records — critical for personal-injury and mass-tort intake workflows. Odoo CRM has no native SOL field. We create x_sol_date as a Date field on crm.lead. During migration we surface SOL-date records in a dedicated Odoo view so attorneys can monitor deadlines; Odoo's calendar integration can be wired to generate reminders post-migration.
SimplyConvert
Case.claim_amount
Odoo CRM
crm.lead.planned_revenue
1:1SimplyConvert stores the estimated or filed claim amount on the Case record. Odoo's closest monetary field is crm.lead planned_revenue (a Monetary field tied to the company currency). We map claim_amount → planned_revenue. Where SimplyConvert uses a placeholder zero for pre-assessment cases, we leave planned_revenue blank to avoid skewing Odoo's revenue forecasts.
SimplyConvert
Case.intake_channel
Odoo CRM
crm.lead.x_intake_channel (custom field)
1:1SimplyConvert tracks how a case entered the funnel ( chatbot, referral partner, organic, paid search). We create x_intake_channel as a Selection field on crm.lead and map each distinct source value to an Odoo selection option. Post-migration, Odoo's utm_source / utm_medium fields can replace this with standard attribution tracking.
SimplyConvert
Case.assigned_staff
Odoo CRM
res.users (via crm.lead.user_id)
1:1SimplyConvert Case records carry an assigned staff member (the attorney or paralegal handling the matter). We match SimplyConvert staff email addresses against Odoo res.users records by email. Unmatched staff are flagged before migration; firms either invite them to Odoo first or assign their cases to a designated fallback user to avoid orphaned records.
SimplyConvert
Case.venue
Odoo CRM
crm.lead.x_venue (custom field)
1:1Mass-tort and personal-injury firms track the court venue (county, district, state) for each case. Odoo CRM has no native venue field. We create x_venue as a Char field on crm.lead and populate it with the venue string from SimplyConvert. For high-volume jurisdictions, this can be promoted to a Selection field with the top 10–20 venues pre-loaded.
SimplyConvert
Document / Attachment
Odoo CRM
ir.attachment
1:1SimplyConvert stores documents per case (intake forms, medical records, correspondence). We re-upload these as ir.attachment records linked to the corresponding crm.lead via res_model='crm.lead' and res_id=<lead_id>. Odoo's document management (Documents app) can be activated post-migration to provide a richer file library for each lead.
SimplyConvert
Case.case_status
Odoo CRM
crm.stage
1:1SimplyConvert Case records carry a status field: Intake, Open, Under Review, Closed, Settled. Odoo CRM stages are defined per sales team in crm.stage. We create a mapping table: SimplyConvert 'Intake' → Odoo 'New', 'Open' → 'Qualified', 'Under Review' → 'Proposal', 'Closed' → 'Won', 'Settled' → 'Lost'. Stage names are configurable per firm's Odoo team settings.
SimplyConvert
Case.create_date
Odoo CRM
crm.lead.create_date
1:1Odoo sets create_date at record insertion time by default. We preserve the original SimplyConvert case creation timestamp in x_original_create_date as a custom Datetime field so reporting continuity is maintained. This is critical for law firms tracking intake volume over time.
SimplyConvert
Client.email
Odoo CRM
res.partner.email
1:1Direct email field map. Odoo validates email format on res.partner; invalid formats are flagged and corrected before migration runs. Duplicate emails (multiple SimplyConvert clients sharing one address) are surfaced for manual resolution — Odoo enforces email uniqueness at the partner level by default.
| SimplyConvert | Odoo CRM | Compatibility | |
|---|---|---|---|
| Client | res.partner1:1 | Fully supported | |
| Case | crm.lead1:1 | Fully supported | |
| Referral | crm.lead (custom fields)1:1 | Fully supported | |
| Case.claim_type | crm.lead.x_claim_type (custom field)1:1 | Fully supported | |
| Case.statute_of_limitations_date | crm.lead.x_sol_date (custom field)1:1 | Fully supported | |
| Case.claim_amount | crm.lead.planned_revenue1:1 | Fully supported | |
| Case.intake_channel | crm.lead.x_intake_channel (custom field)1:1 | Fully supported | |
| Case.assigned_staff | res.users (via crm.lead.user_id)1:1 | Fully supported | |
| Case.venue | crm.lead.x_venue (custom field)1:1 | Fully supported | |
| Document / Attachment | ir.attachment1:1 | Fully supported | |
| Case.case_status | crm.stage1:1 | Fully supported | |
| Case.create_date | crm.lead.create_date1:1 | Fully supported | |
| Client.email | res.partner.email1: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.
SimplyConvert gotchas
Per-conversion billing requires conversion-status audit before migration
No bulk export endpoint forces pagination under strict rate limits
No standalone Contact object requires structural flattening
API key generation requires direct vendor contact
Named litigation groupings not exposed as filterable objects
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 SimplyConvert data volume and custom field inventory
Before any schema work, FlitStack pulls a full export from SimplyConvert via its API: all Client records, Case records, Referral records, and document metadata (file names, URLs, sizes). We count distinct values for claim_type, intake_channel, case_status, and referral_source to pre-build the Odoo selection-option lists. We also flag records with missing required fields (clients without email, cases without a linked client) for your team to clean or confirm before migration. This audit typically runs within 4–8 hours of access being granted.
Create Odoo custom fields on crm.lead via Odoo Studio or data file
Using the field inventory from Step 1, FlitStack generates an Odoo CSV data file (for Settings > Technical > Models > Import) that creates all required custom fields: x_claim_type, x_intake_channel, x_venue, x_sol_date, x_original_create_date, x_source_client_id, x_source_case_id. Your Odoo admin applies this file (or creates fields manually in Odoo Studio) before the migration window. We validate field existence via Odoo's ir.model.fields API before proceeding. If Odoo's Campaign module is active, we also configure the campaign_id link for referral attribution.
Resolve SimplyConvert staff to Odoo res.users by email
SimplyConvert's assigned_staff field carries staff email addresses. FlitStack queries Odoo's res.users table by email to resolve each SimplyConvert staff member to a corresponding Odoo user ID. Staff without a matching Odoo account are listed in a pre-migration report — your team either invites them to Odoo or designates a fallback user to receive those cases. No Case migrates without a resolved user_id; orphan prevention is enforced before the migration run commits.
Migrate res.partner records first, then crm.lead with foreign-key validation
Odoo's crm.lead model requires a valid partner_id (res.partner) for most lead views. We sequence the migration: (1) all Client records → res.partner; (2) all Case records → crm.lead with partner_id lookup from Step 3; (3) all document ir.attachment records linked to the newly created crm.lead IDs. Documents are uploaded last to avoid dangling references. We run a sample migration of 50–100 records first and generate a field-level diff comparing source values to Odoo read-back values — your team reviews this before the full run commits.
Execute full migration with delta-pickup window and audit log
The full migration runs against your Odoo instance. FlitStack maintains a full audit log of every record created: source record ID, destination record ID, field values written, and timestamp. A delta-pickup window (24–48 hours from migration start) captures any new SimplyConvert cases or clients opened during the cutover. After delta-pickup, we run a reconciliation report comparing record counts and a random-sample field-level check. If reconciliation passes, the migration is accepted. If not, one-click rollback reverts all FlitStack-created records from the Odoo database.
Platform deep dives
SimplyConvert
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between SimplyConvert and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across SimplyConvert and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between SimplyConvert 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
SimplyConvert: 300 req/min for List Cases; 2000 req/min for Get Case and Create Case; 200 req/min for Upload Documents and Download Documents; 2000 req/min for all unspecified endpoints.
Data volume sensitivity
SimplyConvert 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 SimplyConvert to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your SimplyConvert 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 SimplyConvert
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.