CRM migration
Field-level mapping, validation, and rollback between InTouch CRM and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
InTouch CRM
Source
Odoo CRM
Destination
Compatibility
8 of 12
objects map 1:1 between InTouch CRM and Odoo CRM.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from InTouch CRM to Odoo CRM is a migration from a modestly documented mid-market CRM to a modular open-source ERP/CRM suite serving over 12 million users. InTouch CRM stores Contacts, Companies, Deals, Activities, and Custom Fields within user-defined Pipelines, with CSV-based import as the primary documented export path. Odoo CRM separates unqualified Leads from Opportunities converted to Contacts attached to Companies, and tightly integrates with the broader Odoo ecosystem (Sales, Accounting, Inventory, Project). We handle the pipeline-stage remapping, parent-record dependency resolution (Company before Contact, Contact before Activity), and custom field translation from InTouch's schema into Odoo field types. Workflows, automations, and custom forms do not migrate as code; we deliver a written inventory of these for your admin to rebuild in Odoo's automation framework or Studio.
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 InTouch CRM 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.
InTouch CRM
Contact
Odoo CRM
Contact or Lead
1:manyInTouch Contacts cover both unqualified prospects and qualified buyers. We split during migration: Contacts with InTouch lifecycle stage of New, Attempting to Contact, or Idle map to Odoo Lead. Contacts with stage of In Progress, Under Offer, or Closed Won map to Odoo Contact attached to a Company. We preserve the original InTouch lifecycle stage as a custom field itcrm_lifecycle_stage__c on both the Lead and Contact for audit and reporting after migration.
InTouch CRM
Company
Odoo CRM
Company
1:1InTouch Company records map directly to Odoo CRM Company. The company name, domain, industry, annual revenue, phone, and address fields transfer one-to-one. Odoo requires Company to be created before any linked Contact import so that the contact_company_id lookup relationship is satisfied at Contact insert time. We sequence the import accordingly.
InTouch CRM
Deal
Odoo CRM
Opportunity
1:1InTouch Deal records map to Odoo CRM Opportunity. The deal name, value, expected close date, and probability transfer. The InTouch pipeline stage maps to an Odoo Stage configured per sales team. Closed Won and Closed Lost reasons from InTouch become custom fields on the Odoo Opportunity. Deals without a linked Company create a placeholder Company in Odoo before the Opportunity is imported.
InTouch CRM
Pipeline
Odoo CRM
Sales Team + Stage
lossyEach InTouch pipeline becomes an Odoo Sales Team with its own stage configuration. We map InTouch stage names to Odoo stage labels and probabilities, and configure the Odoo sales team to use the corresponding stage set. Stage order is preserved by setting the sequence integer on each Odoo stage.
InTouch CRM
Activity (Call, Email, Meeting, Task)
Odoo CRM
Activity
1:1InTouch Activity records (call, email, meeting, task) map to Odoo CRM Activities linked to the parent Contact, Lead, or Opportunity. We resolve the parent record by matching the InTouch record's contact_id or deal_id to the newly inserted Odoo record's external ID, which we store during the Contact and Opportunity import phase. Activity timestamps and descriptions transfer directly.
InTouch CRM
Custom Field
Odoo CRM
Custom Field (via Studio)
lossyInTouch custom fields on Contact, Company, and Deal map to Odoo custom fields created via Odoo Studio before migration begins. Field type translation is required: InTouch text fields map to Odoo char or text fields; InTouch number fields map to Odoo float or integer; InTouch date fields map to Odoo date; InTouch dropdown fields map to Odoo selection fields with equivalent option lists. The customer selects which custom fields are critical to preserve during scoping.
InTouch CRM
Owner
Odoo CRM
User
1:1InTouch Owner records map to Odoo Users by email match. We extract every distinct owner referenced on Contact, Company, Deal, and Activity and match against the destination Odoo instance's User list. Owners without a matching User go to a reconciliation queue for the customer's Odoo admin to provision before record import resumes.
InTouch CRM
Tag
Odoo CRM
Tag
1:1InTouch tags on Contact, Company, and Deal transfer to Odoo Tags. Tag names and colors preserve where the source supports color metadata. Tags migrate as a separate entity after the primary record import so that they can be applied to existing Odoo record IDs.
InTouch CRM
Note
Odoo CRM
Note
1:1InTouch Notes attached to Contacts, Companies, or Deals transfer to Odoo Notes linked via the mail.message model to the parent record. Rich text content converts to Odoo's HTML note format with attachment links preserved as Odoo attachments.
InTouch CRM
Product
Odoo CRM
Product
1:1If InTouch CRM holds product records used in Deals, these map to Odoo Product records. The product name, SKU, unit price, and cost transfer. Products must be created before any Deal-to-Opportunity migration that includes product line items.
InTouch CRM
Form Submission
Odoo CRM
Lead
1:1InTouch form submissions that created Contact records in InTouch map to Odoo Lead records. We preserve the submission source, landing page URL, and UTM parameters as custom fields on the Odoo Lead for attribution and reporting.
InTouch CRM
Workflow Automation
Odoo CRM
Automated Action (written inventory)
lossyInTouch workflow automations (triggers, conditions, and actions defined in the automation builder) do not migrate as code. We audit every active automation, document its trigger object, conditions, and action sequence, and deliver a written inventory recommending equivalent Odoo Automated Actions or server actions for the customer's admin to rebuild in Odoo Studio or Python.
| InTouch CRM | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | Contact or Lead1:many | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline | Sales Team + Stagelossy | Fully supported | |
| Activity (Call, Email, Meeting, Task) | Activity1:1 | Fully supported | |
| Custom Field | Custom Field (via Studio)lossy | Fully supported | |
| Owner | User1:1 | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Product | Product1:1 | Fully supported | |
| Form Submission | Lead1:1 | Fully supported | |
| Workflow Automation | Automated Action (written inventory)lossy | 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.
InTouch CRM gotchas
CSV-based import is the primary documented data path
Stage and pipeline label drift across customer instances
Limited custom-object surface
All-in-one bundling means multiple modules' data must be reconciled
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 data audit
We audit the InTouch CRM account for Contact volume, Company volume, Deal volume, activity history size, pipeline count, custom field inventory, and active automation count. We export a sample CSV to confirm field completeness and identify data quality issues (missing email addresses, duplicate records, inconsistent date formats). The discovery output is a written migration scope with record counts per object, custom field list, pipeline map, and a recommendation on Odoo edition (Community for CRM-only; Enterprise if the customer also needs Sales, Accounting, or Inventory modules).
Odoo configuration and field provisioning
We configure the destination Odoo CRM instance before any data import. This includes creating Odoo Sales Teams matching the InTouch pipeline structure, defining stage sets per team, provisioning custom fields via Odoo Studio (translating InTouch field types to Odoo field types), and setting up the Odoo user list for owner resolution. Configuration is deployed to a staging Odoo database first for validation.
CSV extraction and transformation from InTouch
We extract data from InTouch CRM via the platform's CSV export mechanism. For each object (Contact, Company, Deal, Activity), we run a transformation script that normalizes date formats, resolves lookup IDs, deduplicates on email, and outputs a CSV matching the Odoo import template column headers. We generate a cross-reference table mapping InTouch record IDs to Odoo record IDs as each phase completes.
Staging migration and reconciliation
We run a full migration into a staging Odoo environment using production-equivalent data volume. The customer's operations lead reconciles record counts against the InTouch source, spot-checks 20-40 records manually, and validates that pipeline stages, custom field values, and activity timelines are intact. Any mapping corrections are documented and applied before production migration.
Production migration in dependency order
We run production migration in strict dependency order: Companies (first, no dependencies), Contacts (with CompanyId resolved from the cross-reference table), Leads (with the lifecycle stage split applied), Opportunities (with ContactId, CompanyId, and Sales Team resolved), Activities (with parent ContactId and OpportunityId resolved from the cross-reference table), Tags (applied to existing records), and Notes (linked to parent records). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation rebuild handoff
We freeze InTouch CRM writes during cutover, run a final delta migration of any records modified during the window, then enable Odoo CRM as the system of record. We deliver the automation and workflow inventory document to the customer's admin team with Odoo Studio equivalents for each item. We support a one-week hypercare window for reconciliation issues. We do not rebuild InTouch automations as Odoo Automated Actions inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
InTouch CRM
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 1 of 8 objects need a manual workaround.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across InTouch CRM and Odoo CRM.
Object compatibility
1 of 8 objects need a manual workaround.
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
InTouch CRM: Not publicly documented.
Data volume sensitivity
InTouch CRM 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 InTouch CRM to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your InTouch CRM 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 InTouch CRM
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.