CRM migration

Migrate from AgileCase to Odoo CRM

Field-level mapping, validation, and rollback between AgileCase and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.

AgileCase logo

AgileCase

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between AgileCase and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

AgileCase is fundamentally a case-management platform — its core object is the Case, which bundles custom fields, attachments, workflow stages, and client communications under one record. Odoo CRM inverts this model: contacts and companies live in res.partner, while work items live in crm.lead (Leads and Opportunities) with stage pick-lists and activity logging. The migration must therefore perform a structural translation: every AgileCase Case becomes an Odoo crm.lead record, with AgileCase custom fields recreated as custom fields on the crm.lead model using Odoo's ir.model.fields framework. Owner resolution maps AgileCase user emails to Odoo res.users by email match. Attachments are downloaded and re-uploaded to Odoo ir.attachment records linked to the target crm.lead. Workflows, automations, email templates, and audit trails cannot migrate — AgileCase workflow definitions export as JSON for manual Odoo Studio or server-action rebuild, and audit history is preserved as a custom text field (Audit_History__c) for reference. FlitStack runs a test migration against a representative sample before the full cutover, then captures a 24–48h delta window for in-flight records.

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

AgileCase logo

AgileCase

What's pushing teams away

  • User limits of 15 on Professional and 30 on Business force growing firms to migrate when they exceed these thresholds, often mid-workflow.
  • Limited automation and report counts on Professional tier become restrictive as case volume increases, pushing teams toward platforms with fewer structural caps.
  • Enterprise pricing requires custom quotes with no public range, making budget planning difficult and prompting firms to evaluate alternatives with transparent pricing.
  • Workflow automation logic and custom reports do not transfer between platforms, creating significant rebuild effort that makes switching costly and slow.

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 AgileCase objects map to Odoo CRM

Each row shows how a AgileCase 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.

AgileCase

Case

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Every AgileCase Case maps to an Odoo crm.lead record. The Case title becomes the crm.lead name field. The Case description maps to crm.lead description. Original create dates are preserved in a custom field (Original_Create_Date__c) because Odoo's create_date reflects migration time.

AgileCase

Case Stage / Workflow Stage

maps to

Odoo CRM

crm.stage

1:1
Fully supported

AgileCase workflow stages map value-by-value to Odoo crm.stage records. Each AgileCase stage name creates or matches a corresponding Odoo stage in the target pipeline. Stage ordering and probability values are mapped from Odoo stage configuration. If AgileCase uses custom stage labels, they map 1:1 with explicit value mapping.

AgileCase

Client / Contact (within Case)

maps to

Odoo CRM

res.partner

1:1
Fully supported

AgileCase stores client contact details inside the Case record. FlitStack extracts unique contact data to res.partner first (name, email, phone, address), then links the new partner to the crm.lead via the partner_id field. If the same client appears across multiple Cases, Odoo deduplicates by email match to avoid duplicate res.partner records.

AgileCase

Case Owner / Assigned User

maps to

Odoo CRM

res.users (user_id on crm.lead)

1:1
Fully supported

AgileCase user email addresses are matched against Odoo res.users by email. Unmatched owners are flagged before migration — your team either creates the Odoo user first or assigns a fallback owner. This ensures every crm.lead lands with a valid user_id and appears in the correct Odoo sales team.

AgileCase

Case Custom Fields

maps to

Odoo CRM

ir.model.fields (x_ac_ prefix for Community)

1:1
Fully supported

Every AgileCase custom field definition (text, number, date, pick-list, checkbox) is recreated as an Odoo custom field on the crm.lead model before migration. Pick-list fields in AgileCase create Odoo selection fields with the same options. Boolean fields map to Odoo boolean fields. Text fields with length limits map to Odoo char or text fields depending on content length.

AgileCase

Case Attachment / File

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

AgileCase file attachments are downloaded, then uploaded to Odoo ir.attachment records linked to the parent crm.lead via res_model='crm.lead' and res_id set to the migrated lead ID. File names, MIME types, and binary content are preserved. Inline images in Case notes are extracted and rehosted as attachments.

AgileCase

Case Notes / Activity Log

maps to

Odoo CRM

mail.message

1:1
Fully supported

AgileCase activity log entries (internal notes, status changes) are migrated as Odoo mail.message records on the crm.lead, with message_type='comment'. Original timestamps and author email are preserved. This gives Odoo a full historical timeline on the lead without requiring the OdooDiscuss or inbox modules.

AgileCase

Case Email / SMS Communication

maps to

Odoo CRM

mail.message (email) / mail.message (SMS via subtype)

1:1
Fully supported

AgileCase emails and SMS records linked to a Case migrate as mail.message records on the crm.lead. Email threads are reconstructed using subject-line grouping where AgileCase preserves thread context. Odoo's mail.message model supports email headers natively for thread reconstruction, including attachments.

AgileCase

Case Workflow / Automation

maps to

Odoo CRM

No equivalent — manual rebuild required

1:1
Fully supported

AgileCase automations (task creation, email triggers, stage-change scripts) do not transfer. FlitStack exports your AgileCase workflow definitions as a JSON document — each rule's trigger, condition, and action is documented — which your Odoo admin uses as a rebuild reference for Odoo automated actions (Enterprise) or server actions (Community).

AgileCase

Client Portal Data

maps to

Odoo CRM

No equivalent — Odoo Website portal required

1:1
Fully supported

AgileCase client portal entries (shared documents, case status views) have no Odoo CRM equivalent. Odoo Website portal module must be installed for contact-facing case/opportunity visibility. Portal access rules, document sharing, and customer-facing status pages need to be rebuilt in Odoo Website after migration.

AgileCase

Audit Trail (field-change history)

maps to

Odoo CRM

Custom text field (Audit_History__c) on crm.lead

1:1
Fully supported

AgileCase audit trail entries (field name, old value, new value, changed by, timestamp) are serialized into a long-text custom field on each crm.lead. Odoo Community does not have a native audit log UI, so this custom field provides reference-level history for compliance review without requiring Odoo Enterprise.

AgileCase

Tag / Category Label

maps to

Odoo CRM

crm.tag

1:1
Fully supported

AgileCase case categories or tags map to Odoo crm.tag records. A many2many relation (crm_lead_tag_rel) links each crm.lead to its tags. Tag names are preserved exactly. If AgileCase uses hierarchical tags, Odoo's tag model is flat — nested tag structures collapse to the leaf label.

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.

AgileCase logo

AgileCase gotchas

Medium

Audit trail retention is tier-dependent

High

Post-termination 30-day export window in DPA

Medium

Blob storage document extraction requires flattening

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

  • AgileCase workflow definitions require full manual rebuild in Odoo Studio or server actions

    AgileCase automations (Business plan: unlimited) define trigger-condition-action rules tied to its event system. Odoo has no import path for these rules. FlitStack exports your AgileCase automation JSON — each rule's trigger object, condition fields, and action type — so your Odoo admin can rebuild them as Odoo automated actions (Enterprise) or ir.actions.server records (Community). This is the most time-consuming post-migration step for teams with complex stage-change triggers or auto-assignment rules. Budget 1–3 days of Odoo admin time for a 10-automation setup.

  • AgileCase audit trail does not migrate as native history — only as a reference field

    Odoo Community does not have a native audit log that tracks every field change over time. AgileCase's 180-day (Professional) or unlimited (Business) audit trail cannot be mapped to Odoo's mail.message tracking, which only logs explicit chatter messages. FlitStack serializes the audit trail into a long-text custom field (x_ac_audit_history) on each crm.lead. For teams that need searchable audit history in Odoo Community, a custom audit module from the Odoo Apps Store (e.g., 'audit_trail' by OCA) must be installed post-migration — this is a separate configuration step not included in the standard migration scope.

  • Odoo Community custom fields require __import__ or Studio — x_ prefix is enforced

    Odoo Community edition does not allow custom field creation through the UI without Odoo Studio (paid add-on). FlitStack creates custom fields using the XML data migration approach (__import__ via csv) with the required x_ac_ prefix for Community compatibility. If you are on Odoo Community without Studio, field creation via csv import requires the technical user to have write access to ir.model.fields, or you must install Odoo Studio. Enterprise users can create fields directly in Settings > Technical > Database Structure > Fields. This distinction affects who can add new custom fields after migration.

  • AgileCase client portal has no direct Odoo equivalent — portal access must be rebuilt

    AgileCase's built-in client portal lets customers view case status, download shared documents, and submit updates. Odoo CRM does not include a portal by default — it requires the Odoo Website module with the 'portal' access group enabled. Portal contacts must be granted read/write access to their own Opportunities via Access Control List (ACL) rules. Document sharing in Odoo portal uses the same ir.attachment model migrated from AgileCase, but the portal's layout, branding, and notification emails need to be configured separately in Odoo Website.

  • AgileCase multi-company data requires Odoo multi-company rules setup post-migration

    If your AgileCase account manages multiple client companies with separate data isolation, Odoo requires Multi-Company rules in ir.rule to enforce data separation per res.company. Odoo's crm.lead and res.partner models support company_id fields, but the rules must be created and assigned to user groups after migration. FlitStack sets company_id on each migrated record but does not configure multi-company access rules — that requires an Odoo admin with technical access to the Security configuration.

Migration approach

Six steps for a successful AgileCase to Odoo CRM data migration

  1. Inventory AgileCase data: Cases, contacts, custom fields, attachments, and workflows

    FlitStack connects to AgileCase via API (REST or CSV export) and produces a full data inventory: Case count, unique custom field definitions, attachment volume, user list, workflow rule count, and tag taxonomy. We also capture the AgileCase workflow rule definitions as JSON for manual rebuild reference. This step identifies the scope baseline — record volume and custom field count are the primary pricing inputs, and the inventory report becomes the acceptance criteria for the sample migration.

  2. Create Odoo custom fields on crm.lead before data arrives

    Before any data moves, FlitStack creates the Odoo custom fields that mirror every AgileCase custom field definition. For Odoo Community, this uses a csv import to ir.model.fields with the x_ac_ prefix. For Odoo Enterprise with Studio enabled, fields can be created in the UI. Pick-list custom fields get the same option labels as AgileCase. Boolean, date, and number fields are typed to match. This step runs in your Odoo staging or sandbox environment first, then repeats on production.

  3. Extract, deduplicate, and map contacts to res.partner

    FlitStack extracts all unique contact data embedded in AgileCase Cases, deduplicates by email match, and inserts into Odoo res.partner. Email addresses are the primary deduplication key. Each res.partner record is created with name, email, phone, address fields before crm.lead records are inserted. Owner resolution runs in parallel: AgileCase user emails are matched to Odoo res.users records, and any unmatched owners are flagged for your team to create Odoo users or assign a fallback.

  4. Run sample migration with field-level diff

    A representative slice (typically 100–500 Cases spanning all custom field types, attachment types, and workflow stages) migrates to Odoo first. FlitStack generates a field-level diff comparing source AgileCase values against destination Odoo values for every mapped field. You verify that pick-list values rendered correctly, owner assignments resolved, custom field data landed in the right columns, and attachments are accessible on the crm.lead form. Approval of the sample diff unlocks the full migration run.

  5. Full migration run with 24–48h delta pickup window

    The full migration commits all Cases, activities, attachments, and audit trail entries to Odoo. A delta pickup window (24–48 hours from migration start) captures any Cases created or modified in AgileCase during the cutover period. After delta pickup closes, FlitStack generates a reconciliation report comparing source counts against destination record counts. One-click rollback reverts the Odoo environment to pre-migration state if reconciliation fails. The audit log is delivered as a JSON file alongside the migration report.

  6. Deliver workflow export JSON and post-migration handoff documentation

    FlitStack delivers the AgileCase workflow definitions as a structured JSON document listing each automation's trigger, condition, action, and stage context. Your Odoo admin uses this as a rebuild checklist for Odoo automated actions (Enterprise) or server actions (Community). The handoff package also includes: custom field mapping spreadsheet, owner resolution report, attachment inventory, and a 30-day post-migration support window for any data integrity corrections.

Platform deep dives

Context on both ends of the pair

AgileCase logo

AgileCase

Source

Strengths

  • Tiered storage: 50GB on Professional, unlimited on Business with fair-use policy.
  • Audit trail tracking with 180-day minimum retention on Professional tier.
  • REST API, CSV, and Excel import options for data onboarding.
  • Workflow management with task sequences, case plans, and custom scripts.
  • Client-facing portal for status sharing and secure document exchange.

Weaknesses

  • User caps (15 Professional, 30 Business) limit scalability for larger legal departments.
  • Automation and report limits on lower tiers require upgrades as usage grows.
  • No public pricing for Enterprise tier, complicating cost comparisons during vendor evaluation.
  • Workflow definitions and automation rules are not portable between platforms, requiring manual rebuild.
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 AgileCase 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

    AgileCase: Not publicly documented.

  • Data volume sensitivity

    A

    AgileCase exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your AgileCase 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 AgileCase to Odoo CRM data migrations

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

Can't find your answer?

Walk through your AgileCase to Odoo CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most AgileCase to Odoo CRM migrations complete within 48–72 hours of clock time for datasets under 25,000 Cases. Odoo CRM custom field creation (step 2 of our approach) is the longest planning step when AgileCase has 30+ custom field definitions. Datasets exceeding 100,000 Cases, heavy attachment volume (over 10GB total), or complex multi-company configurations extend to 5–8 days. The delta pickup window (24–48 hours) adds to the total calendar time but does not require downtime in AgileCase.

Adjacent paths

Related migrations to explore

Ready when you are

Move from AgileCase.
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