CRM migration

Migrate from Column Case Management to Odoo CRM

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 logo

Column Case Management

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

90%

9 of 10

objects map 1:1 between Column Case Management and Odoo CRM.

Complexity

BStandard

Timeline

5–10 business days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Column Case Management logo

Column Case Management

What's pushing teams away

  • Customization carries a high cost — one reviewer noted that moving to a new version requires paying again to re-apply the same customizations, creating an upgrade cost trap.
  • Enterprise support in large corporate environments with complex security architecture and disparate processes proves difficult to coordinate, even though the vendor is described as receptive to feedback.
  • Organizations seeking a simple, lightweight case tracker find Column's depth of configuration overwhelming for straightforward use cases.
  • Limited public API documentation and unclear bulk-export mechanisms make it difficult for technical teams to evaluate migration paths before committing.

Choosing

Odoo CRM logo

Odoo CRM

What's pulling them in

  • Teams choose Odoo CRM for its modular architecture — one base install with one-click app additions means they can adopt CRM alone and add accounting, inventory, or sales later as the business grows.
  • Small businesses pick Odoo because the Community edition is free and open-source, with no per-user or contact limits, allowing full evaluation before committing to a paid Enterprise tier.
  • The drag-and-drop Kanban pipeline and AI lead scoring are highlighted across G2 reviews as concrete features that make lead management faster and more visual than spreadsheet-based workflows.
  • Odoo's native integration with email, live chat, SMS, VoIP, and WhatsApp means inbound leads from multiple channels feed into a single pipeline without third-party middleware.
  • Companies in retail, supply chain, and construction value that Odoo's CRM module shares the same PostgreSQL database and UI as its ERP modules, eliminating data silos between sales and operations.

Object mapping

How Column Case Management objects map to Odoo CRM

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

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Column 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

maps to

Odoo CRM

res.partner

1:1
Fully supported

Column 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)

maps to

Odoo CRM

res.partner (individual)

1:many
Fully supported

Column 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

maps to

Odoo CRM

ir.model.fields (custom on crm.lead)

1:1
Fully supported

Every 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

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

Column 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

maps to

Odoo CRM

mail.activity

1:1
Fully supported

Column 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

maps to

Odoo CRM

mail.message

1:1
Fully supported

Column 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

maps to

Odoo CRM

crm.team

1:1
Fully supported

Column 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

maps to

Odoo CRM

crm.stage

1:1
Fully supported

Column 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

maps to

Odoo CRM

No equivalent

1:1
Fully supported

Column 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.

Gotchas + challenges

What specifically takes care here

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 logo

Column Case Management gotchas

Medium

Float/Concurrent license scoping affects migration user mapping

Medium

Customization re-application required on major version upgrades

High

No publicly documented REST API with published rate limits

Medium

BMC/Remedy integration creates auto-generated Cases that may duplicate manually entered records

Odoo CRM logo

Odoo CRM gotchas

High

Odoo.sh version gating blocks assisted migrations from trial

High

Enterprise modules fail to install on Community after database restore

Medium

Custom module view inheritance breaks between Odoo major versions

Medium

Custom fields risk losing their application context on Community

Low

API access for Community is gated behind the Custom Plan

Pair-specific challenges

  • Column subject types (witness, victim, suspect) require custom fields — no native Odoo equivalent

    Column's subject model supports role classification (witness, victim, suspect, party, informant) with configurable pick-list values per case type. Odoo's res.partner has no native role or subject-type field. We store the original role in a custom pick-list field (x_subject_type) on res.partner during migration. Your Odoo admin can use this field for filtered views or reporting, but Odoo does not enforce role-based access control on subject types the way Column does. If your team relies on role-based visibility rules for sensitive subject types, those rules must be rebuilt as Odoo record rules after migration.

  • Case custom fields on crm.lead do not auto-copy during Odoo lead-to-opportunity conversion

    Odoo's built-in lead conversion action (converting a crm.lead to crm.opportunity and res.partner) copies only standard fields. Custom fields on crm.lead — including x_case_priority, x_case_type, x_jurisdiction, and x_risk_rating — do not automatically copy to the resulting opportunity or partner. We store the full Column case schema as custom fields on crm.lead with original values preserved. If your team plans to use Odoo's native lead-to-opportunity conversion, you must either extend Odoo's conversion wizard with a custom module to carry x_ fields forward, or build a server action that manually copies them after conversion.

  • Evidence attachment re-attachment requires res_model and res_id repointing post-migration

    Column stores evidence files with direct attachment-to-case linkage including chain-of-custody metadata. Odoo stores attachments in ir.attachment with res_model='crm.lead' and res_id pointing to the parent lead ID. During migration, each ir.attachment record is created with the correct res_model and res_id so links are immediately functional. However, Odoo's document management module (documents app) uses a separate ir.attachment variant with a different resource model (documents.document). If your team uses Odoo Documents alongside CRM, evidence attachments must be repointed to the documents.document model manually or via a post-migration script.

  • Column workflows and automated escalations have no Odoo migration path

    Column Case Management includes an investigative workflow engine that automates task routing, deadline escalation, status transitions, and notification triggers based on case events. Odoo has automation rules and Studio workflows, but they operate on different triggers and conditions. We export your Column workflow definitions as a structured JSON document that your Odoo administrator can use as a functional specification for rebuilding automations in Odoo Studio. Timeline-based escalations, conditional task assignment, and status-change notifications require custom server actions or Odoo Enterprise's advanced automation features.

  • Case priority taxonomy requires custom field — Odoo's native priority is a numeric scale

    Column's priority system typically includes four or five named levels (Critical, High, Medium, Low, or equivalent) with configurable labels per case type. Odoo's native priority field on crm.lead uses a 0-1 decimal scale for star ratings, not a named pick-list. We preserve your original Column priority values in a custom selection field (x_case_priority) on crm.lead. This field integrates with Odoo's kanban view grouping and search filters, but kanban stage coloring and dashboard reporting that use Odoo's native priority star scale will reference the numeric field instead. Odoo Studio can be used to replace the native priority field label with your custom pick-list values in all views.

Migration approach

Six steps for a successful Column Case Management to Odoo CRM data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Context on both ends of the pair

Column Case Management logo

Column Case Management

Source

Strengths

  • Float/Concurrent licensing model significantly reduces cost for organizations with variable caseload sizes.
  • Built-in BMC/Remedy integration auto-populates Cases from IT service desk incidents without manual re-entry.
  • Complete field-level audit trail satisfies compliance requirements for government and law enforcement agencies.
  • Web-based UI with version 9.x performance improvements, including faster search and responsive workflows.
  • Deep vertical coverage across fraud, Medicaid, law enforcement, and internal affairs with pre-built case types.

Weaknesses

  • Customization costs escalate quickly and upgrades may require re-purchasing existing customizations.
  • Limited public API documentation makes programmatic migration and integration development difficult to scope.
  • Enterprise-scale deployments in large organizations face coordination challenges around security and architecture.
  • Low review volume across G2, Capterra, and Gartner makes independent evaluation harder for prospective buyers.
Odoo CRM logo

Odoo CRM

Destination

Strengths

  • Modular open-source architecture lets teams start with CRM and add ERP apps as needs grow, all sharing one PostgreSQL database.
  • Free Community edition with no contact limits and full source code access means zero licensing cost for evaluation and small deployments.
  • Drag-and-drop Kanban pipeline with AI lead scoring gives a visual, prioritized view of the sales funnel without requiring custom configuration.
  • Native integrations with email, live chat, SMS, VoIP, WhatsApp, and social media feed all inbound leads into a single unified inbox.
  • Active Odoo Community Association (OCA) maintains dozens of community-maintained modules on GitHub for extended functionality.

Weaknesses

  • Gmail and email integration reliability is a recurring complaint — threads drop and conversations scatter across inboxes, disrupting sales team workflows.
  • Enterprise edition pricing stacks quickly: multiple apps at per-user rates ($25–$50/user/month) plus Odoo.sh hosting costs more than many SMBs anticipate.
  • Setup and configuration complexity increases significantly once custom fields, automation rules, and multiple installed modules are in play.
  • Odoo.sh trial databases run on a version (e.g., 18.3) that is not directly migratable to Odoo.sh, blocking the assisted migration path Odoo advertises.
  • Version upgrades between major Odoo releases (e.g., 17→18) frequently break custom module view definitions and XPath expressions, requiring manual remediation.

Complexity grading

How hard is this migration?

Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Column Case Management and Odoo CRM.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Column Case Management: Not publicly documented.

  • Data volume sensitivity

    B

    Column Case Management doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Column Case Management to Odoo CRM migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Column Case Management to Odoo CRM data migrations

Answers to the questions buyers ask most during Column Case Management to Odoo CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most Column-to-Odoo CRM migrations complete in 5 to 10 business days for under 50,000 records. Timeline scales with case volume, evidence attachment count, and the number of custom fields per case type. Complex setups with 200,000+ records or multi-department case taxonomies extend to 3 to 4 weeks. The custom field pre-creation step (step 3) and sample migration (step 4) are the longest planning activities.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Column Case Management.
Land in Odoo CRM, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day