CRM migration
Field-level mapping, validation, and rollback between Column Case Management and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Column Case Management
Source
Odoo CRM
Destination
Compatibility
9 of 10
objects map 1:1 between Column Case Management and Odoo CRM.
Complexity
BStandard
Timeline
5–10 business days
Overview
Column Case Management structures data around investigative cases, subjects, evidence records, documents, and tasks — with a flexible custom-field engine and built-in workflow automation for routing, escalation, and case progression. Odoo CRM uses crm.lead for investigative and lead records, crm.opportunity for deal and sales pipeline records, and res.partner for contacts and organizations, with a separate document management layer (ir.attachment) and activity tracking (mail.activity). The migration carries Column cases to Odoo crm.lead records, subjects to res.partner, case-related documents to ir.attachment linked by resource model, and case custom fields to custom fields on crm.lead. Investigative-specific workflows, automations, and caseflow logic do not have Odoo equivalents and must be rebuilt in Odoo Studio or via custom server actions. We use Odoo's XML-RPC API for data import, respecting PostgreSQL transaction boundaries to maintain relational integrity across partner-to-lead links and ensuring that subject associations, evidence attachments, and activity history remain connected after migration. The approach includes pre-migration planning, custom field pre-creation, sample migration with field-level diff, full data migration with delta-pickup, and post-migration validation.
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 Column Case Management 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.
Column Case Management
Case
Odoo CRM
crm.lead
1:1Column cases map directly to Odoo crm.lead records. The crm.lead model serves as the destination for all investigative case data — title, description, priority, case type, assigned department, and case status are stored as fields on the lead. Original Column case ID is preserved in x_source_case_id custom field for traceability.
Column Case Management
Subject
Odoo CRM
res.partner
1:1Column subjects representing individuals involved in cases map to Odoo res.partner records. Core contact information — including name, email address, phone number, street address, and organization name — transfers as standard res.partner fields. Subjects flagged as organizations map with company_name populated and is_company set to True, while individual subjects map with individual=True to enable proper name handling through Odoo's firstname addon.
Column Case Management
Subject (person)
Odoo CRM
res.partner (individual)
1:manyColumn subjects are split by type during migration. Individual persons become res.partner records with individual=True, using Odoo firstname addon conventions to split the full name into separate firstname and lastname fields. Organization-type subjects become res.partner records with is_company=True, storing the organization name in the standard name field rather than splitting it.
Column Case Management
Case Custom Fields
Odoo CRM
ir.model.fields (custom on crm.lead)
1:1Every Column case custom field (case_priority, case_type, department_code, risk_rating, statute_of_limitation, incident_date, closure_date, referral_source, jurisdiction, sensitive_flag) requires a corresponding custom field on crm.lead. Fields are pre-created in Odoo Settings > Technical > Models before migration begins. Pick-list fields use selection type with value-by-value mapping.
Column Case Management
Evidence / Attachment
Odoo CRM
ir.attachment
1:1Column evidence files and document attachments migrate to Odoo ir.attachment records. Each attachment is linked to the parent crm.lead via res_model='crm.lead' and res_id=<lead_id>. Evidence classification metadata (evidence_type, chain_of_custody) is preserved as custom fields on crm.lead or as tags on the attachment record.
Column Case Management
Task / Activity
Odoo CRM
mail.activity
1:1Column tasks assigned to cases become Odoo mail.activity records linked to crm.lead. The activity type, due date, summary description, assigned user, and completion status map directly to activity_type_id, date_deadline, summary, user_id, and done fields respectively. Incomplete tasks are migrated as pending activities to preserve ongoing work items for your team.
Column Case Management
Case Comment / Note
Odoo CRM
mail.message
1:1Column case notes and comments migrate as Odoo mail.message records attached to the crm.lead. The author field is resolved by matching user email addresses to existing Odoo res.users records. The body content preserves original formatting from Column including line breaks and basic text styling. The create_date timestamp is set to match the original Column note timestamp for complete audit continuity and chronological accuracy.
Column Case Management
Team / Department
Odoo CRM
crm.team
1:1Column departments and investigation teams map to Odoo crm.team records. The team name and member list transfer during migration, with team members linked by email-matched res.users records. Teams that do not have direct Odoo equivalents are flagged during the planning phase for manual assignment decisions post-migration.
Column Case Management
Case Status / Stage
Odoo CRM
crm.stage
1:1Column case status values (Open, In Progress, Pending Review, Closed, Archived) map to Odoo crm.stage records. The stage IDs are created in Odoo before migration, and each crm.lead.stage_id is set by value mapping during the import. Stage transition dates are preserved in custom datetime fields on crm.lead.
Column Case Management
Workflow / Automation
Odoo CRM
No equivalent
1:1Column workflow rules, automated escalations, and task-routing logic do not have a direct Odoo equivalent. We export workflow definitions as a structured JSON document for reference. Odoo automation rules, server actions, or Studio workflows must be rebuilt post-migration by your Odoo administrator.
| Column Case Management | Odoo CRM | Compatibility | |
|---|---|---|---|
| Case | crm.lead1:1 | Fully supported | |
| Subject | res.partner1:1 | Fully supported | |
| Subject (person) | res.partner (individual)1:many | Fully supported | |
| Case Custom Fields | ir.model.fields (custom on crm.lead)1:1 | Fully supported | |
| Evidence / Attachment | ir.attachment1:1 | Fully supported | |
| Task / Activity | mail.activity1:1 | Fully supported | |
| Case Comment / Note | mail.message1:1 | Fully supported | |
| Team / Department | crm.team1:1 | Fully supported | |
| Case Status / Stage | crm.stage1:1 | Fully supported | |
| Workflow / Automation | No equivalent1: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.
Column Case Management gotchas
Float/Concurrent license scoping affects migration user mapping
Customization re-application required on major version upgrades
No publicly documented REST API with published rate limits
BMC/Remedy integration creates auto-generated Cases that may duplicate manually entered records
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
Discover and document Column schema
We connect to the Column API (or exported CSV/JSON backup) and catalog the full object inventory: case records, subject records, evidence attachments, custom fields, pick-list values, and workflow definitions. This step produces a Schema Inventory Report listing every object and field with its Column data type, sample values, and record count. The report identifies all custom fields that need pre-creation in Odoo and flags workflow artifacts for the rebuild-export deliverable.
Build Column-to-Odoo mapping plan
Using the Schema Inventory Report, we produce a detailed mapping plan covering every object and field: cases to crm.lead, subjects to res.partner, evidence to ir.attachment, tasks to mail.activity. Custom field creation instructions (field name, type, pick-list values) are documented for Odoo Studio setup. The mapping plan also specifies owner-resolution rules, stage value mapping, and document link strategy. You review and approve the plan before any data moves.
Pre-create Odoo custom fields and stages
Before migration begins, your Odoo administrator (or our team with admin credentials) creates all custom fields identified in the mapping plan: x_case_priority, x_case_type, x_jurisdiction, x_risk_rating, x_subject_type, x_incident_date, x_closure_date, x_statute_of_limitation, x_source_case_id, x_original_create_date, and evidence-type fields. Case status values are pre-loaded as crm.stage records. Odoo stage IDs are noted in the mapping plan so the import script can resolve stage names to IDs during data load.
Run sample migration with field-level diff
A representative slice — typically 100 to 500 records spanning cases across multiple types, subjects with varied roles, evidence attachments, and task records — migrates first. We generate a field-level diff comparing source values in Column against destination values in Odoo for every mapped field. You verify that case priority, case type, subject roles, document links, and task assignments match the original records. Unmatched fields are corrected in the mapping plan before the full run.
Execute full migration with delta-pickup and rollback readiness
The full dataset migrates via Odoo's XML-RPC API with PostgreSQL transaction boundaries preserving relational integrity across partner-to-lead links. A delta-pickup window of 24 to 48 hours captures any records created or modified in Column during the cutover. All operations are logged in an audit record. If post-migration reconciliation reveals data integrity issues, one-click rollback reverts Odoo to the pre-migration state. The workflow export JSON is delivered alongside the migration report for your Odoo admin to use as a rebuild specification.
Platform deep dives
Column Case Management
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 Column Case Management 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
Column Case Management: Not publicly documented.
Data volume sensitivity
Column Case Management 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 Column Case Management to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Column Case Management 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 Column Case Management
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.